Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1
- BOOL __userpurge dataXFer_0x04@<eax>(unsigned int a1@<eax>, int arg0, int a2)
- {
- BOOL result; // eax
- int v4; // ebx
- int v5; // eax
- unsigned int v6; // ecx
- int v7; // ecx
- int v8; // [esp-Ch] [ebp-Ch]
- if ( a1 < 9 )
- return 0;
- if ( a1 != *(unsigned __int16 *)(arg0 + 7) + 9 )
- return 0;
- v4 = sub_45A010(*(_BYTE *)(arg0 + 2), *(_BYTE *)(arg0 + 1));
- if ( !v4 )
- return 0;
- v5 = *(_DWORD *)(arg0 + 3);
- v6 = *(_DWORD *)(v4 + 12);
- if ( v5 == v6 || v5 + (unsigned int)*(unsigned __int16 *)(arg0 + 7) > v6 )
- {
- v8 = a2;
- goto LABEL_18;
- }
- if ( v5 != *(_DWORD *)(v4 + 64) )
- {
- v6 = a2;
- v8 = a2;
- LABEL_18:
- sub_459D90(v4, v6, v8);
- dataXFer_0x06(v4);
- return 0;
- }
- *(_BYTE *)(v4 + 52) |= 4u;
- *(_BYTE *)(v4 + 61) = a2;
- qmemcpy(
- (void *)(*(_DWORD *)(arg0 + 3) + *(_DWORD *)(v4 + 68)),
- (const void *)(arg0 + 9),
- *(unsigned __int16 *)(arg0 + 7));
- *(_DWORD *)(v4 + 64) += *(unsigned __int16 *)(arg0 + 7);
- sub_459DC0(v4);
- if ( *(_DWORD *)(v4 + 64) != *(_DWORD *)(v4 + 12) )
- return 1;
- if ( CRC32(v7, *(_DWORD *)(v4 + 68), *(_DWORD *)(v4 + 12)) != *(_DWORD *)(v4 + 16) )
- {
- *(_DWORD *)(v4 + 64) = 0;
- LABEL_12:
- *(_BYTE *)(v4 + 52) &= 0xFBu;
- dataXFer_0x06(v4);
- return 1;
- }
- result = openMapFile(v4);
- if ( result )
- goto LABEL_12;
- *(_BYTE *)(v4 + 52) = 8;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement