Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed int __cdecl sub_899A40(int a1, int a2, int a3)
- {
- int i; // ebx@1
- int *v4; // esi@1
- int v5; // edx@3
- int v6; // edx@4
- int v7; // edi@6
- int v8; // eax@8
- char *v10; // edx@10
- int v11; // ecx@11
- int v12; // eax@14
- int v13; // esi@14
- unsigned int v14; // edx@14
- unsigned int v15; // ebx@15
- unsigned int v16; // edx@17
- int v17; // ecx@17
- int v18; // eax@17
- int v19; // eax@20
- int *v20; // [sp+Ch] [bp-4h]@14
- int v21; // [sp+1Ch] [bp+Ch]@3
- unsigned int v22; // [sp+20h] [bp+10h]@14
- i = a1;
- v4 = (int *)a2;
- if ( *(_DWORD *)(a2 + 8) != 6 )
- v4 = (int *)((int (__cdecl *)(int, int))loc_899ED0)(a1, a2);
- v5 = *(_DWORD *)(a1 + 28);
- v21 = *v4;
- if ( v5 == *(_DWORD *)(a1 + 36) )
- {
- v6 = ((int (__cdecl *)(int))loc_7A99C0)(a1);
- }
- else
- {
- v6 = v5 + 24;
- *(_DWORD *)(a1 + 28) = v6;
- }
- v7 = a3;
- *(_DWORD *)(v6 + 4) = v4;
- *(_DWORD *)v6 = v4 + 4;
- *(_DWORD *)(v6 + 12) = *(_DWORD *)(a1 + 32) + 16 * *(_BYTE *)(v21 + 8);
- *(_DWORD *)(v6 + 20) = 0;
- *(_DWORD *)(v6 + 16) = a3;
- *(_DWORD *)(a1 + 12) = v4 + 4;
- if ( *(_DWORD *)(a1 + 16) - *(_DWORD *)(a1 + 32) <= 16 * *(_BYTE *)(v21 + 8) )
- sub_7A9A20(a1, *(_BYTE *)(v21 + 8));
- v8 = v21 + 20;
- if ( !*(_BYTE *)(v21 + 6) )
- {
- *(_DWORD *)(*(_DWORD *)(a1 + 28) + 8) = *(_DWORD *)v8 - v8 + 12 - *(_DWORD *)(*(_DWORD *)v8 - v8 + 12);
- return 0;
- }
- v10 = (char *)(v8 ^ *(_DWORD *)v8);
- if ( v10 - 680097491 >= (char *)&off_1241D7C[18] + 3 )
- {
- v11 = 0;
- }
- else
- {
- v11 = ((int (__cdecl *)(int))v10)(a1);
- if ( v11 < 0 )
- return 2;
- }
- v12 = *(_DWORD *)(a1 + 28);
- v13 = *(_DWORD *)(v12 + 4);
- v20 = (int *)(v12 - 24);
- v14 = *(_DWORD *)(a1 + 32);
- v22 = *(_DWORD *)(a1 + 32);
- if ( v7 )
- {
- v15 = *(_DWORD *)(a1 + 32) - 16 * v11;
- do
- {
- if ( v15 >= v14 )
- break;
- v16 = v15;
- v17 = v13;
- v15 += 16;
- v13 += 16;
- *(_DWORD *)v17 = *(_DWORD *)v16;
- *(_DWORD *)(v17 + 4) = *(_DWORD *)(v16 + 4);
- v18 = *(_DWORD *)(v16 + 8);
- v14 = v22;
- *(_DWORD *)(v17 + 8) = v18;
- --v7;
- }
- while ( v7 );
- for ( i = a1; v7 > 0; v13 += 16 )
- {
- --v7;
- *(_DWORD *)(v13 + 8) = 0;
- }
- }
- *(_DWORD *)(i + 28) = v20;
- v19 = *v20;
- *(_DWORD *)(i + 32) = v13;
- *(_DWORD *)(i + 12) = v19;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement