Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __usercall sub_522EB0<eax>(int a1<eax>)
- {
- int v1; // esi@1
- int v2; // ecx@1
- int v3; // edi@1
- unsigned int v4; // edi@1
- unsigned int v5; // edi@1
- unsigned int v6; // edi@1
- unsigned int v7; // ebx@1
- int v8; // ecx@2
- int v9; // ecx@3
- unsigned int v10; // edi@3
- unsigned int v11; // edi@3
- unsigned int v12; // edi@3
- int v13; // ebx@4
- int v14; // ecx@6
- unsigned int v15; // edi@6
- unsigned int v16; // edi@6
- unsigned int v17; // edi@6
- int v18; // ebx@7
- int v19; // ecx@9
- unsigned int v20; // edi@9
- unsigned int v21; // edi@9
- unsigned int v22; // edi@9
- unsigned int v23; // ebx@9
- int v24; // ecx@10
- int v25; // ecx@11
- unsigned int v26; // edi@11
- unsigned int v27; // edi@11
- unsigned int v28; // edi@11
- unsigned int v29; // ebx@11
- int v30; // ecx@12
- int v31; // ecx@13
- unsigned int v32; // edi@13
- unsigned int v33; // edi@13
- unsigned int v34; // edi@13
- unsigned int v35; // ebx@13
- int v36; // ecx@14
- int v37; // ecx@15
- unsigned int v38; // edi@15
- unsigned int v39; // edi@15
- unsigned int v40; // edi@15
- unsigned int v41; // ebx@15
- int v42; // ecx@16
- int v43; // ecx@17
- unsigned int v44; // edi@17
- unsigned int v45; // edi@17
- unsigned int v46; // edi@17
- unsigned int v47; // ebx@17
- int v48; // ecx@20
- unsigned int v49; // edi@20
- unsigned int v50; // edi@20
- unsigned int v51; // edi@20
- unsigned int v52; // ebx@20
- int v53; // ecx@23
- int v54; // ebx@23
- int v55; // esi@23
- unsigned int v57; // [sp+Ch] [bp-1Ch]@23
- int v58; // [sp+10h] [bp-18h]@19
- unsigned int v59; // [sp+14h] [bp-14h]@3
- int v60; // [sp+18h] [bp-10h]@1
- int v61; // [sp+1Ch] [bp-Ch]@1
- unsigned int v62; // [sp+20h] [bp-8h]@1
- bool v63; // [sp+27h] [bp-1h]@2
- v1 = a1;
- (*(void (__stdcall **)(int *, signed int, signed int))(**(_DWORD **)(a1 + 4) + 44))(&dword_5CCCD8, 1, 16);
- (*(void (__stdcall **)(int, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(v1 + 1196, 4, 1);
- v2 = *(_DWORD *)(v1 + 4);
- v3 = *(_DWORD *)(v1 + 1196);
- v60 = 179;
- v62 = 179;
- v61 = 1;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v2 + 44))(&v61, 4, 1);
- v4 = v61 + ((unsigned int)(v3 + 2137939259) >> 1) + ((v3 + 2137939259) << 31);
- (*(void (__stdcall **)(int *, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v5 = v60 + (v4 >> 1) + (v4 << 31);
- (*(void (__stdcall **)(unsigned int *, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v6 = v62 + (v5 >> 1) + (v5 << 31);
- v7 = 0;
- if ( v62 )
- {
- do
- {
- v8 = *(_DWORD *)(v1 + 4);
- v63 = *(_BYTE *)(v1 + v7 + 64) != 0;
- (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v8 + 44))(&v63, 1, 1);
- ++v7;
- v6 = v63 + (v6 >> 1) + (v6 << 31);
- }
- while ( v7 < v62 );
- }
- v9 = *(_DWORD *)(v1 + 4);
- v61 = 2;
- v60 = 380;
- v62 = 95;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v9 + 44))(&v61, 4, 1);
- v10 = v61 + (v6 >> 1) + (v6 << 31);
- (*(void (__stdcall **)(int *, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v11 = v60 + (v10 >> 1) + (v10 << 31);
- (*(void (__stdcall **)(unsigned int *, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v12 = v62 + (v11 >> 1) + (v11 << 31);
- v59 = 0;
- if ( v62 )
- {
- v13 = v1 + 244;
- do
- {
- (*(void (__stdcall **)(int, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(v13, 4, 1);
- v12 = *(_DWORD *)v13 + (v12 >> 1) + (v12 << 31);
- v13 += 4;
- ++v59;
- }
- while ( v59 < v62 );
- }
- v14 = *(_DWORD *)(v1 + 4);
- v61 = 3;
- v60 = 48;
- v62 = 12;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v14 + 44))(&v61, 4, 1);
- v15 = v61 + (v12 >> 1) + (v12 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v16 = v60 + (v15 >> 1) + (v15 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v17 = v62 + (v16 >> 1) + (v16 << 31);
- v59 = 0;
- if ( v62 )
- {
- v18 = v1 + 972;
- do
- {
- (*(void (__stdcall **)(int, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(v18, 4, 1);
- v17 = *(_DWORD *)v18 + (v17 >> 1) + (v17 << 31);
- v18 += 4;
- ++v59;
- }
- while ( v59 < v62 );
- }
- v19 = *(_DWORD *)(v1 + 4);
- v61 = 4;
- v60 = 1388;
- v62 = 347;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v19 + 44))(&v61, 4, 1);
- v20 = v61 + (v17 >> 1) + (v17 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v21 = v60 + (v20 >> 1) + (v20 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v22 = v62 + (v21 >> 1) + (v21 << 31);
- v23 = 0;
- if ( v62 )
- {
- do
- {
- v24 = *(_DWORD *)(v1 + 4);
- v63 = *(_BYTE *)(v1 + v23 + 624) != 0;
- (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v24 + 44))(&v63, 1, 1);
- ++v23;
- v22 = v63 + (v22 >> 1) + (v22 << 31);
- }
- while ( v23 < v62 );
- }
- v25 = *(_DWORD *)(v1 + 4);
- v61 = 5;
- v60 = 28;
- v62 = 7;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v25 + 44))(&v61, 4, 1);
- v26 = v61 + (v22 >> 1) + (v22 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v27 = v60 + (v26 >> 1) + (v26 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v28 = v62 + (v27 >> 1) + (v27 << 31);
- v29 = 0;
- if ( v62 )
- {
- do
- {
- v30 = *(_DWORD *)(v1 + 4);
- v63 = *(_BYTE *)(v1 + v29 + 1020) != 0;
- (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v30 + 44))(&v63, 1, 1);
- ++v29;
- v28 = v63 + (v28 >> 1) + (v28 << 31);
- }
- while ( v29 < v62 );
- }
- v31 = *(_DWORD *)(v1 + 4);
- v61 = 6;
- v60 = 228;
- v62 = 57;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v31 + 44))(&v61, 4, 1);
- v32 = v61 + (v28 >> 1) + (v28 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v33 = v60 + (v32 >> 1) + (v32 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v34 = v62 + (v33 >> 1) + (v33 << 31);
- v35 = 0;
- if ( v62 )
- {
- do
- {
- v36 = *(_DWORD *)(v1 + 4);
- v63 = *(_BYTE *)(v1 + v35 + 1027) != 0;
- (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v36 + 44))(&v63, 1, 1);
- ++v35;
- v34 = v63 + (v34 >> 1) + (v34 << 31);
- }
- while ( v35 < v62 );
- }
- v37 = *(_DWORD *)(v1 + 4);
- v61 = 7;
- v60 = 84;
- v62 = 21;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v37 + 44))(&v61, 4, 1);
- v38 = v61 + (v34 >> 1) + (v34 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v39 = v60 + (v38 >> 1) + (v38 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v40 = v62 + (v39 >> 1) + (v39 << 31);
- v41 = 0;
- if ( v62 )
- {
- do
- {
- v42 = *(_DWORD *)(v1 + 4);
- v63 = *(_BYTE *)(v1 + v41 + 1084) != 0;
- (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v42 + 44))(&v63, 1, 1);
- ++v41;
- v40 = v63 + (v40 >> 1) + (v40 << 31);
- }
- while ( v41 < v62 );
- }
- v43 = *(_DWORD *)(v1 + 4);
- v61 = 8;
- v60 = 84;
- v62 = 21;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v43 + 44))(&v61, 4, 1);
- v44 = v61 + (v40 >> 1) + (v40 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v45 = v60 + (v44 >> 1) + (v44 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v46 = v62 + (v45 >> 1) + (v45 << 31);
- v47 = 0;
- if ( v62 )
- {
- v59 = v1 + 1108;
- do
- {
- v58 = *(_DWORD *)v59;
- (*(void (__stdcall **)(int *, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v58, 4, 1);
- v59 += 4;
- ++v47;
- v46 = v58 + (v46 >> 1) + (v46 << 31);
- }
- while ( v47 < v62 );
- }
- v48 = *(_DWORD *)(v1 + 4);
- v61 = 9;
- v60 = 4;
- v62 = 1;
- (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v48 + 44))(&v61, 4, 1);
- v49 = v61 + (v46 >> 1) + (v46 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
- v50 = v60 + (v49 >> 1) + (v49 << 31);
- (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
- v51 = v62 + (v50 >> 1) + (v50 << 31);
- v52 = 0;
- if ( v62 )
- {
- v59 = v1 + 1192;
- do
- {
- v58 = *(_DWORD *)v59;
- (*(void (__stdcall **)(int *, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v58, 4, 1);
- v59 += 4;
- ++v52;
- v51 = v58 + (v51 >> 1) + (v51 << 31);
- }
- while ( v52 < v62 );
- }
- v53 = *(_DWORD *)(v1 + 4);
- ++*(_DWORD *)(v1 + 1200);
- v54 = v1 + 1200;
- (*(void (__stdcall **)(int, signed int, signed int))(*(_DWORD *)v53 + 44))(v1 + 1200, 4, 1);
- v55 = *(_DWORD *)(v1 + 4);
- v57 = (*(_DWORD *)v54 + (v51 << 31) + (v51 >> 1)) ^ 0x96696996;
- return (*(int (__thiscall **)(int, unsigned int *, signed int, signed int))(*(_DWORD *)v55 + 44))(v55, &v57, 4, 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement