Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char __userpurge sub_D5ABE0<al>(char a1<al>, int a2<ecx>, int a3, int a4, int a5, int a6)
- {
- int v6; // ebp@1
- int v7; // edi@1
- int v8; // esi@1
- char v9; // bl@3
- char v10; // al@4
- int v11; // edi@14
- int v12; // ST0C_4@14
- int v13; // ST10_4@14
- int v14; // eax@15
- int v15; // eax@15
- char v16; // bl@17
- int v17; // esi@19
- char result; // al@23
- int v33; // ecx@24
- char v34; // al@25
- int v35; // esi@30
- int v36; // eax@31
- int v37; // eax@31
- int v38; // ebx@34
- int v39; // edi@34
- int v40; // esi@34
- int v41; // ST10_4@35
- int v42; // eax@35
- int v43; // eax@36
- int v51; // esi@43
- int v66; // [sp-8h] [bp-5Ch]@39
- int v67; // [sp-4h] [bp-58h]@39
- char v68; // [sp+10h] [bp-44h]@3
- int v69; // [sp+14h] [bp-40h]@24
- int v70; // [sp+18h] [bp-3Ch]@30
- int v71; // [sp+1Ch] [bp-38h]@14
- int v72; // [sp+20h] [bp-34h]@15
- int v73; // [sp+24h] [bp-30h]@11
- int v74; // [sp+28h] [bp-2Ch]@19
- int v75; // [sp+2Ch] [bp-28h]@41
- char v76; // [sp+34h] [bp-20h]@23
- char v77; // [sp+40h] [bp-14h]@34
- int v78; // [sp+44h] [bp-10h]@34
- int v79; // [sp+48h] [bp-Ch]@34
- int v80; // [sp+4Ch] [bp-8h]@34
- v6 = a4;
- v8 = a3;
- v7 = a2;
- a4 = 0;
- LOBYTE(a4) = 1;
- if ( !(unsigned __int8)sub_D5AB40(a5, a1) )
- LOBYTE(a4) = 0;
- sub_662250(&v68, (int)&unk_154AF3F);
- v9 = 1;
- if ( !(unsigned __int8)sub_662080(&v68)
- || (sub_662250(&a6, (int)"*"), v9 = 3, v10 = sub_662080(&a6), LOBYTE(a3) = 1, !v10) )
- LOBYTE(a3) = 0;
- if ( v9 & 2 )
- {
- v9 &= 0xFDu;
- sub_661600(&a6);
- }
- if ( v9 & 1 )
- {
- v9 &= 0xFEu;
- sub_661600(&v68);
- }
- if ( (_BYTE)a3 )
- {
- sub_72F400(*(_DWORD *)v6);
- sub_72F680((int)&v73, v7, 0);
- if ( v73 )
- {
- if ( !(*(_BYTE *)(v73 + 4) & 2) )
- {
- if ( !(unsigned __int8)sub_6989B0() )
- {
- sub_65FC90(dword_1E19864, 0);
- v11 = v71;
- sub_706710(&v73);
- sub_523A40(v11, v12, v13);
- sub_65FCF0(&v71);
- }
- }
- v72 = (int)"..\\..\\..\\source\\Main\\System\\GameObjectTerrain.cpp";
- v71 = 130;
- v15 = sub_660DA0(&a3, 0);
- v14 = sub_6600A0(104, &v71, *(_DWORD *)v15);
- if ( v14 )
- sub_711A00(v14);
- sub_711670(&v73);
- sub_550600(v8 + 208);
- sub_47FC00(&v73);
- v16 = a4;
- }
- else
- {
- v16 = 0;
- }
- v17 = v74;
- if ( v74 )
- {
- _EAX = v74 + 4;
- _ECX = -1;
- __asm { lock xadd [eax], ecx }
- if ( _ZF )
- {
- (*(void (__thiscall **)(int))(*(_DWORD *)v17 + 4))(v17);
- _ECX = v17 + 8;
- _EDX = -1;
- __asm { lock xadd [ecx], edx }
- if ( _ZF )
- (*(void (__thiscall **)(int))(*(_DWORD *)v17 + 8))(v17);
- }
- }
- sub_72F2F0(&v76);
- result = v16;
- }
- else
- {
- v33 = *(_DWORD *)(v8 + 232) - *(_DWORD *)(v8 + 228);
- v69 = v8 + 224;
- if ( v33 & 0xFFFFFFF8 || (sub_662250(&a6, (int)"*"), v9 |= 4u, v34 = sub_6620E0(&a6), LOBYTE(a3) = 1, !v34) )
- LOBYTE(a3) = 0;
- if ( v9 & 4 )
- sub_661600(&a6);
- if ( (_BYTE)a3 )
- {
- v35 = v8 + 208;
- v70 = v35;
- if ( !*(_DWORD *)v35 )
- {
- v74 = (int)"..\\..\\..\\source\\Main\\System\\GameObjectTerrain.cpp";
- v73 = 146;
- v37 = sub_660DA0(&a3, 0);
- v36 = sub_6600A0(104, &v73, *(_DWORD *)v37);
- if ( v36 )
- sub_711A00(v36);
- sub_550600(v35);
- }
- v78 = 0;
- v79 = 0;
- v80 = 0;
- sub_692DB0(&v77);
- sub_662250(&v68, (int)&unk_154AF4E);
- sub_662250(&a3, (int)"Mirage.terrain-group ");
- sub_733430(&a6, &a3, &v68);
- sub_661600(&a3);
- sub_661600(&v68);
- v40 = v79;
- v39 = v78;
- v71 = v79;
- v38 = sub_661560(&a6);
- sub_72F400(*(_DWORD *)v6);
- if ( v39 != v40 )
- {
- do
- {
- v41 = v39;
- v39 += 4;
- sub_6621F0(v41);
- v42 = sub_661640(&a6);
- if ( !sub_662920(v42) )
- {
- v43 = sub_661640(&a3);
- sub_662250(&v68, v38 + v43);
- sub_72F680((int)&v73, (int)&v68, 0);
- sub_661600(&v68);
- if ( v73 )
- {
- if ( !(*(_BYTE *)(v73 + 4) & 2) )
- {
- if ( !(unsigned __int8)sub_6989B0() )
- {
- v66 = v73;
- v67 = v74;
- if ( v74 )
- {
- _EAX = v74 + 4;
- _ECX = 1;
- __asm { lock xadd [eax], ecx }
- }
- sub_65FC90(dword_1E19864, 0);
- sub_523A40(v75, v66, v67);
- sub_65FCF0(&v75);
- }
- }
- sub_47FC00(&v73);
- sub_717D70(&v76);
- sub_711670(&v73);
- }
- v51 = v74;
- if ( v74 )
- {
- _EDX = v74 + 4;
- _EAX = -1;
- __asm { lock xadd [edx], eax }
- if ( _ZF )
- {
- (*(void (__thiscall **)(int))(*(_DWORD *)v51 + 4))(v51);
- _ECX = v51 + 8;
- _EDX = -1;
- __asm { lock xadd [ecx], edx }
- if ( _ZF )
- (*(void (__thiscall **)(int))(*(_DWORD *)v51 + 8))(v51);
- }
- }
- }
- sub_661600(&a3);
- }
- while ( v39 != v71 );
- }
- sub_72F2F0(&v76);
- sub_661600(&a6);
- sub_40E180(&v77);
- }
- result = a4;
- }
- return result;
- }
Add Comment
Please, Sign In to add comment