Advertisement
Pr0nogo

Untitled

Jan 13th, 2021
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. // 1
  2. BOOL __userpurge dataXFer_0x04@<eax>(unsigned int a1@<eax>, int arg0, int a2)
  3. {
  4. BOOL result; // eax
  5. int v4; // ebx
  6. int v5; // eax
  7. unsigned int v6; // ecx
  8. int v7; // ecx
  9. int v8; // [esp-Ch] [ebp-Ch]
  10.  
  11. if ( a1 < 9 )
  12. return 0;
  13. if ( a1 != *(unsigned __int16 *)(arg0 + 7) + 9 )
  14. return 0;
  15. v4 = sub_45A010(*(_BYTE *)(arg0 + 2), *(_BYTE *)(arg0 + 1));
  16. if ( !v4 )
  17. return 0;
  18. v5 = *(_DWORD *)(arg0 + 3);
  19. v6 = *(_DWORD *)(v4 + 12);
  20. if ( v5 == v6 || v5 + (unsigned int)*(unsigned __int16 *)(arg0 + 7) > v6 )
  21. {
  22. v8 = a2;
  23. goto LABEL_18;
  24. }
  25. if ( v5 != *(_DWORD *)(v4 + 64) )
  26. {
  27. v6 = a2;
  28. v8 = a2;
  29. LABEL_18:
  30. sub_459D90(v4, v6, v8);
  31. dataXFer_0x06(v4);
  32. return 0;
  33. }
  34. *(_BYTE *)(v4 + 52) |= 4u;
  35. *(_BYTE *)(v4 + 61) = a2;
  36. qmemcpy(
  37. (void *)(*(_DWORD *)(arg0 + 3) + *(_DWORD *)(v4 + 68)),
  38. (const void *)(arg0 + 9),
  39. *(unsigned __int16 *)(arg0 + 7));
  40. *(_DWORD *)(v4 + 64) += *(unsigned __int16 *)(arg0 + 7);
  41. sub_459DC0(v4);
  42. if ( *(_DWORD *)(v4 + 64) != *(_DWORD *)(v4 + 12) )
  43. return 1;
  44. if ( CRC32(v7, *(_DWORD *)(v4 + 68), *(_DWORD *)(v4 + 12)) != *(_DWORD *)(v4 + 16) )
  45. {
  46. *(_DWORD *)(v4 + 64) = 0;
  47. LABEL_12:
  48. *(_BYTE *)(v4 + 52) &= 0xFBu;
  49. dataXFer_0x06(v4);
  50. return 1;
  51. }
  52. result = openMapFile(v4);
  53. if ( result )
  54. goto LABEL_12;
  55. *(_BYTE *)(v4 + 52) = 8;
  56. return result;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement