// Decompiled from acclient.exe — chunk 0x004D0000 // Ghidra 12.0.4 + pyghidra headless // --- FUN_004d0100 at 0x004D0100 (size: 156) --- undefined4 * __thiscall FUN_004d0100(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004be3a0(param_2,param_3); param_1[0x193] = 0; param_1[0x194] = 0; param_1[0x195] = 0; param_1[0x196] = 0; param_1[0x197] = 0; param_1[0x198] = 0; param_1[0x199] = 0; param_1[0x19a] = 0; param_1[0x19b] = 0; param_1[0x19c] = 0; param_1[0x19d] = 0; param_1[0x19e] = 0; param_1[0x19f] = 0; param_1[0x1a0] = 0; param_1[0x1a1] = 0; param_1[0x1a2] = 0; param_1[0x1a3] = 0; *param_1 = &PTR_FUN_007bb870; param_1[0x17e] = &PTR_FUN_007bb5c8; param_1[0x17f] = &PTR_LAB_007bb5c4; return param_1; } // --- FUN_004d0210 at 0x004D0210 (size: 464) --- void __fastcall FUN_004d0210(int param_1) { char cVar1; FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x65c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x660) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x664) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x668) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x66c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x670) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x674) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x678) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x67c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x680) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x684) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x688) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x68c) + 0x18))(1); return; } (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x65c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x660) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x664) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x668) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x66c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x670) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x674) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x678) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x67c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x680) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x684) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x688) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x68c) + 0x18))(0); return; } // --- FUN_004d03e0 at 0x004D03E0 (size: 42) --- void __thiscall FUN_004d03e0(int param_1,undefined4 param_2,undefined4 param_3) { (**(code **)(*(int *)(param_1 + -0x5f8) + 0x138))(); FUN_004c0610(param_2,param_3); return; } // --- FUN_004d0410 at 0x004D0410 (size: 56) --- undefined4 * __thiscall FUN_004d0410(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bb870; param_1[0x17e] = &PTR_FUN_007bb5c8; param_1[0x17f] = &PTR_LAB_007bb5c4; FUN_004be490(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d0450 at 0x004D0450 (size: 19) --- void FUN_004d0450(void) { FUN_00460270(0x10000051,&LAB_004d01e0); return; } // --- FUN_004d0470 at 0x004D0470 (size: 897) --- void __fastcall FUN_004d0470(int *param_1) { int *piVar1; int *piVar2; int iVar3; FUN_00460990(0x1000007e,param_1 + 0x193); FUN_004bf710(); piVar2 = (int *)FUN_00463c00(0x1000062c); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x194] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000062e); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x195] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000630); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x196] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000632); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x197] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000062b); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x198] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000062d); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x199] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000062f); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x19a] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000631); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x19b] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000624); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x19c] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000626); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x19d] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000628); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x19e] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000062a); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x19f] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000623); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x1a0] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000625); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x1a1] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000627); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x1a2] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000629); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x1a3] = iVar3; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { piVar1 = param_1 + 0x17e; (**(code **)(*piVar2 + 4))(0x4dd1ef,piVar1); (**(code **)(*piVar2 + 4))(0x4dd244,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f5,piVar1); (**(code **)(*piVar2 + 4))(0x186ab,piVar1); (**(code **)(*piVar2 + 4))(0x4dd256,piVar1); (**(code **)(*piVar2 + 4))(0x186a8,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f4,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f8,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f0,piVar1); (**(code **)(*piVar2 + 4))(0x4dd26e,piVar1); (**(code **)(*piVar2 + 4))(0x4dd22d,piVar1); (**(code **)(*piVar2 + 4))(0x4dd22e,piVar1); (**(code **)(*piVar2 + 4))(0x4dd22f,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1fb,piVar1); (**(code **)(*piVar2 + 4))(0x4dd25e,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1e8,piVar1); } FUN_00465f90(1); FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d07eb. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d0ef0 at 0x004D0EF0 (size: 156) --- undefined4 * __thiscall FUN_004d0ef0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004c08d0(param_2,param_3); param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; param_1[0x195] = 0; param_1[0x196] = 0; *param_1 = &PTR_FUN_007bbaa0; param_1[0x17e] = &PTR_FUN_007bb0f0; param_1[0x17f] = &PTR_LAB_007bb0e4; return param_1; } // --- FUN_004d1000 at 0x004D1000 (size: 464) --- void __fastcall FUN_004d1000(int param_1) { char cVar1; FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(1); return; } (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(0); return; } // --- FUN_004d11d0 at 0x004D11D0 (size: 42) --- void __thiscall FUN_004d11d0(int param_1,undefined4 param_2,undefined4 param_3) { (**(code **)(*(int *)(param_1 + -0x5f8) + 0x138))(); FUN_004c0e80(param_2,param_3); return; } // --- FUN_004d1200 at 0x004D1200 (size: 56) --- undefined4 * __thiscall FUN_004d1200(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bbaa0; param_1[0x17e] = &PTR_FUN_007bb0f0; param_1[0x17f] = &PTR_LAB_007bb0e4; FUN_004c07a0(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d1240 at 0x004D1240 (size: 19) --- void FUN_004d1240(void) { FUN_00460270(0x10000056,&LAB_004d0fd0); return; } // --- FUN_004d1260 at 0x004D1260 (size: 859) --- void __fastcall FUN_004d1260(int *param_1) { int *piVar1; int iVar2; FUN_004c0960(); FUN_00460990(0x1000007e,param_1 + 0x186); if (param_1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = param_1 + 0x17f; } (**(code **)(*DAT_008f958c + 8))(9,2,piVar1); if (param_1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = param_1 + 0x17f; } (**(code **)(*DAT_008f958c + 8))(9,1,piVar1); if (param_1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = param_1 + 0x17f; } (**(code **)(*DAT_008f958c + 8))(9,4,piVar1); if (param_1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = param_1 + 0x17f; } (**(code **)(*DAT_008f958c + 8))(9,3,piVar1); if (param_1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = param_1 + 0x17f; } (**(code **)(*DAT_008f958c + 8))(9,6,piVar1); if (param_1 == (int *)0x0) { piVar1 = (int *)0x0; } else { piVar1 = param_1 + 0x17f; } (**(code **)(*DAT_008f958c + 8))(9,5,piVar1); piVar1 = (int *)FUN_00463c00(0x100006df); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x187] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006e1); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(9); } param_1[0x188] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006e3); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x189] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006e5); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(9); } param_1[0x18a] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006de); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(9); } param_1[0x18b] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006e0); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(9); } param_1[0x18c] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006e2); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(9); } param_1[0x18d] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006e4); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(9); } param_1[0x18e] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006d7); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[399] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006d9); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[400] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006db); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x191] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006dd); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x192] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006d6); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x193] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006d8); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x194] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006da); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x195] = iVar2; piVar1 = (int *)FUN_00463c00(0x100006dc); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x196] = iVar2; piVar1 = (int *)FUN_0043c680(); (**(code **)(*piVar1 + 4))(0x4dd1f0,param_1 + 0x17e); FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d15b5. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d1a00 at 0x004D1A00 (size: 146) --- undefined4 * __thiscall FUN_004d1a00(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004db000(param_2,param_3); param_1[0x181] = 0; param_1[0x182] = 0; param_1[0x183] = 0; param_1[0x184] = 0; param_1[0x185] = 0; param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; *param_1 = &PTR_FUN_007bbf78; param_1[0x17e] = &PTR_FUN_007bbcd0; return param_1; } // --- FUN_004d1b10 at 0x004D1B10 (size: 464) --- void __fastcall FUN_004d1b10(int param_1) { char cVar1; FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x608) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x608) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x60c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x610) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x618) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(1); return; } (**(code **)(**(int **)(param_1 + 0x608) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x608) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x60c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x610) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x618) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(0); return; } // --- FUN_004d1ce0 at 0x004D1CE0 (size: 46) --- undefined4 * __thiscall FUN_004d1ce0(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bbf78; param_1[0x17e] = &PTR_FUN_007bbcd0; FUN_004db070(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d1d10 at 0x004D1D10 (size: 19) --- void FUN_004d1d10(void) { FUN_00460270(0x10000053,&LAB_004d1ae0); return; } // --- FUN_004d1d30 at 0x004D1D30 (size: 741) --- void __fastcall FUN_004d1d30(int *param_1) { int *piVar1; int *piVar2; int iVar3; FUN_004db140(); FUN_00460990(0x1000007e,param_1 + 0x181); piVar2 = (int *)FUN_00463c00(0x1000068c); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x182] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000068e); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x183] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000690); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x184] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000692); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x185] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000068b); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x186] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000068d); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x187] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000068f); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x188] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000691); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x189] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000684); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18a] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000686); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18b] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000688); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18c] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000068a); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18d] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000683); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18e] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000685); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[399] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000687); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[400] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000689); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x191] = iVar3; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { piVar1 = param_1 + 0x17e; (**(code **)(*piVar2 + 4))(0x4dd1fd,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1e6,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1fe,piVar1); (**(code **)(*piVar2 + 4))(0x186b1,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f0,piVar1); } FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d200f. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d26f0 at 0x004D26F0 (size: 146) --- undefined4 * __thiscall FUN_004d26f0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004bd510(param_2,param_3); param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; param_1[0x195] = 0; param_1[0x196] = 0; *param_1 = &PTR_FUN_007bc450; param_1[0x17e] = &PTR_FUN_007bc1a8; return param_1; } // --- FUN_004d2810 at 0x004D2810 (size: 46) --- undefined4 * __thiscall FUN_004d2810(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bc450; param_1[0x17e] = &PTR_FUN_007bc1a8; FUN_004bd5d0(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d2840 at 0x004D2840 (size: 19) --- void FUN_004d2840(void) { FUN_00460270(0x1000004f,&LAB_004d27d0); return; } // --- FUN_004d2860 at 0x004D2860 (size: 737) --- void __fastcall FUN_004d2860(int *param_1) { int *piVar1; int *piVar2; int iVar3; FUN_004bdca0(); FUN_00460990(0x1000007e,param_1 + 0x186); piVar2 = (int *)FUN_00463c00(0x1000065c); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x187] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000065e); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x188] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000660); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x189] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000662); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x18a] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000065b); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18b] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000065d); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18c] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000065f); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18d] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000661); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18e] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000654); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[399] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000656); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[400] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000658); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x191] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000065a); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x192] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000653); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x193] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000655); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x194] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000657); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x195] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000659); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x196] = iVar3; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { piVar1 = param_1 + 0x17e; (**(code **)(*piVar2 + 4))(0x4dd1f8,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f0,piVar1); (**(code **)(*piVar2 + 4))(0x4dd21f,piVar1); (**(code **)(*piVar2 + 4))(0x4dd25c,piVar1); } FUN_00465f90(1); FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d2b3b. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d2ee0 at 0x004D2EE0 (size: 137) --- undefined4 * __thiscall FUN_004d2ee0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004cdd60(param_2,param_3); param_1[0x196] = 0; param_1[0x197] = 0; param_1[0x198] = 0; param_1[0x199] = 0; param_1[0x19a] = 0; param_1[0x19b] = 0; param_1[0x19c] = 0; param_1[0x19d] = 0; param_1[0x19e] = 0; param_1[0x19f] = 0; param_1[0x1a0] = 0; param_1[0x1a1] = 0; param_1[0x1a2] = 0; param_1[0x1a3] = 0; param_1[0x1a4] = 0; param_1[0x1a5] = 0; *param_1 = &PTR_FUN_007bc7c8; param_1[1] = &PTR_LAB_007bc690; return param_1; } // --- FUN_004d3000 at 0x004D3000 (size: 457) --- void __fastcall FUN_004d3000(int param_1) { char cVar1; int iVar2; iVar2 = FUN_0055e1d0(); if (iVar2 != 0) { FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x65c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x660) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x664) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x668) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x66c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x670) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x674) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x678) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x67c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x680) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x684) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x688) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x68c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x690) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x694) + 0x18))(1); return; } } (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x65c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x660) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x664) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x668) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x66c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x670) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x674) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x678) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x67c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x680) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x684) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x688) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x68c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x690) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x694) + 0x18))(0); return; } // --- FUN_004d31d0 at 0x004D31D0 (size: 125) --- void FUN_004d31d0(int param_1,undefined4 param_2) { int iVar1; char cVar2; int iVar3; undefined4 unaff_retaddr; iVar1 = param_1; iVar3 = FUN_00429a00(); if (iVar3 == 0x10000080) { if (*(int **)(iVar1 + 4) != (int *)0x0) { cVar2 = (**(code **)(**(int **)(iVar1 + 4) + 0x88))(¶m_1); if (cVar2 != '\0') { FUN_004f4820(unaff_retaddr); } } } else { if (iVar3 != 0x10000081) { FUN_004f3d40(iVar1,param_2); return; } if (*(int **)(iVar1 + 4) != (int *)0x0) { cVar2 = (**(code **)(**(int **)(iVar1 + 4) + 0x88))(¶m_1); if (cVar2 != '\0') { FUN_004f48a0(unaff_retaddr); return; } } } return; } // --- FUN_004d3280 at 0x004D3280 (size: 19) --- void FUN_004d3280(void) { FUN_00460270(0x10000050,&LAB_004d2fb0); return; } // --- FUN_004d3ae0 at 0x004D3AE0 (size: 146) --- undefined4 * __thiscall FUN_004d3ae0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004c0620(param_2,param_3); param_1[0x17f] = 0; param_1[0x180] = 0; param_1[0x181] = 0; param_1[0x182] = 0; param_1[0x183] = 0; param_1[0x184] = 0; param_1[0x185] = 0; param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; *param_1 = &PTR_FUN_007bce10; param_1[0x17e] = &PTR_FUN_007bcb68; return param_1; } // --- FUN_004d3bf0 at 0x004D3BF0 (size: 45) --- void FUN_004d3bf0(int *param_1) { if ((param_1[2] == 1) && (*param_1 == 0x100000fa)) { FUN_00479f40(1); } FUN_004c0710(param_1); return; } // --- FUN_004d3c20 at 0x004D3C20 (size: 464) --- void __fastcall FUN_004d3c20(int param_1) { char cVar1; FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x600) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x600) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x604) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x608) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x60c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x610) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x618) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(1); return; } (**(code **)(**(int **)(param_1 + 0x600) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x600) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x604) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x608) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x60c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x610) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x618) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(0); return; } // --- FUN_004d3df0 at 0x004D3DF0 (size: 46) --- undefined4 * __thiscall FUN_004d3df0(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bce10; param_1[0x17e] = &PTR_FUN_007bcb68; FUN_004c0690(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d3e20 at 0x004D3E20 (size: 19) --- void FUN_004d3e20(void) { FUN_00460270(0x10000052,&LAB_004d3bc0); return; } // --- FUN_004d3e40 at 0x004D3E40 (size: 683) --- void __fastcall FUN_004d3e40(int *param_1) { int *piVar1; int iVar2; thunk_FUN_004639a0(); piVar1 = (int *)FUN_00463c00(0x1000064c); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x180] = iVar2; piVar1 = (int *)FUN_00463c00(0x1000064e); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x181] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000650); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x182] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000652); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x183] = iVar2; piVar1 = (int *)FUN_00463c00(0x1000064b); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x184] = iVar2; piVar1 = (int *)FUN_00463c00(0x1000064d); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x185] = iVar2; piVar1 = (int *)FUN_00463c00(0x1000064f); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x186] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000651); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(2); } param_1[0x187] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000644); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x188] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000646); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x189] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000648); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x18a] = iVar2; piVar1 = (int *)FUN_00463c00(0x1000064a); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x18b] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000643); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x18c] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000645); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x18d] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000647); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[0x18e] = iVar2; piVar1 = (int *)FUN_00463c00(0x10000649); if (piVar1 == (int *)0x0) { iVar2 = 0; } else { iVar2 = (**(code **)(*piVar1 + 0x94))(3); } param_1[399] = iVar2; FUN_00460990(0x1000007e,param_1 + 0x17f); piVar1 = (int *)FUN_0043c680(); if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 4))(0x4dd1f0,param_1 + 0x17e); } FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d40e5. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d47e0 at 0x004D47E0 (size: 146) --- undefined4 * __thiscall FUN_004d47e0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004ab630(param_2,param_3); param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; param_1[0x195] = 0; param_1[0x196] = 0; param_1[0x197] = 0; param_1[0x198] = 0; param_1[0x199] = 0; param_1[0x19a] = 0; *param_1 = &PTR_FUN_007bd2e8; param_1[0x17e] = &PTR_FUN_007bd040; return param_1; } // --- FUN_004d4930 at 0x004D4930 (size: 464) --- void __fastcall FUN_004d4930(int param_1) { char cVar1; FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x65c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x660) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x664) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x668) + 0x18))(1); return; } (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x65c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x660) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x664) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x668) + 0x18))(0); return; } // --- FUN_004d4b00 at 0x004D4B00 (size: 46) --- undefined4 * __thiscall FUN_004d4b00(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bd2e8; param_1[0x17e] = &PTR_FUN_007bd040; FUN_004adbd0(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d4b30 at 0x004D4B30 (size: 19) --- void FUN_004d4b30(void) { FUN_00460270(0x1000004c,&LAB_004d48c0); return; } // --- FUN_004d4b50 at 0x004D4B50 (size: 767) --- void __fastcall FUN_004d4b50(int *param_1) { int *piVar1; int *piVar2; int iVar3; FUN_004ada20(); FUN_00460990(0x1000007e,param_1 + 0x18a); piVar2 = (int *)FUN_00463c00(0x1000067c); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x18b] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000067e); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18c] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000680); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18d] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000682); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18e] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000067b); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[399] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000067d); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[400] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000067f); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x191] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000681); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x192] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000674); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x193] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000676); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x194] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000678); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x195] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000067a); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x196] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000673); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x197] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000675); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x198] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000677); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x199] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000679); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x19a] = iVar3; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { piVar1 = param_1 + 0x17e; (**(code **)(*piVar2 + 4))(0x4dd1e7,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1ed,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1ee,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1ef,piVar1); (**(code **)(*piVar2 + 4))(0x4dd255,piVar1); (**(code **)(*piVar2 + 4))(0x186a8,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f0,piVar1); } FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d4e49. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d5400 at 0x004D5400 (size: 146) --- undefined4 * __thiscall FUN_004d5400(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004cd540(param_2,param_3); param_1[0x184] = 0; param_1[0x185] = 0; param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; *param_1 = &PTR_FUN_007bd7c0; param_1[0x17e] = &PTR_FUN_007bd518; return param_1; } // --- FUN_004d5520 at 0x004D5520 (size: 464) --- void __fastcall FUN_004d5520(int param_1) { char cVar1; FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x618) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(1); return; } (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x614) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x618) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x61c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x620) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x624) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x628) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x62c) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x634) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x638) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x63c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x640) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(0); return; } // --- FUN_004d56f0 at 0x004D56F0 (size: 46) --- undefined4 * __thiscall FUN_004d56f0(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bd7c0; param_1[0x17e] = &PTR_FUN_007bd518; FUN_004cd600(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d5720 at 0x004D5720 (size: 19) --- void FUN_004d5720(void) { FUN_00460270(0x1000004e,&LAB_004d54e0); return; } // --- FUN_004d5740 at 0x004D5740 (size: 715) --- void __fastcall FUN_004d5740(int *param_1) { int *piVar1; int *piVar2; int iVar3; FUN_004cd7f0(); FUN_00460990(0x1000007e,param_1 + 0x184); piVar2 = (int *)FUN_00463c00(0x1000066c); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x185] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000066e); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x186] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000670); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x187] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000672); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x188] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000066b); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x189] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000066d); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18a] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000066f); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18b] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000671); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18c] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000664); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18d] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000666); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18e] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000668); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[399] = iVar3; piVar2 = (int *)FUN_00463c00(0x1000066a); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[400] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000663); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x191] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000665); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x192] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000667); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x193] = iVar3; piVar2 = (int *)FUN_00463c00(0x10000669); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x194] = iVar3; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { piVar1 = param_1 + 0x17e; (**(code **)(*piVar2 + 4))(0x4dd1f8,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1fb,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f0,piVar1); } FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d5a05. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d5ba0 at 0x004D5BA0 (size: 146) --- undefined4 * __thiscall FUN_004d5ba0(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004f6740(param_2,param_3); param_1[0x184] = 0; param_1[0x185] = 0; param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; *param_1 = &PTR_FUN_007bdc98; param_1[0x17e] = &PTR_FUN_007bd9f0; return param_1; } // --- FUN_004d5cb0 at 0x004D5CB0 (size: 46) --- void FUN_004d5cb0(int param_1) { int iVar1; int iVar2; iVar1 = param_1; iVar2 = FUN_00429a00(); if (((iVar2 == 0x10000080) || (iVar2 == 0x10000081)) && (*(int **)(iVar1 + 4) != (int *)0x0)) { (**(code **)(**(int **)(iVar1 + 4) + 0x88))(¶m_1); } return; } // --- FUN_004d5ce0 at 0x004D5CE0 (size: 46) --- undefined4 * __thiscall FUN_004d5ce0(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bdc98; param_1[0x17e] = &PTR_FUN_007bd9f0; FUN_004f67d0(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d5d10 at 0x004D5D10 (size: 19) --- void FUN_004d5d10(void) { FUN_00460270(0x10000054,&LAB_004d5c80); return; } // --- FUN_004d5d30 at 0x004D5D30 (size: 715) --- void __fastcall FUN_004d5d30(int *param_1) { int *piVar1; int *piVar2; int iVar3; FUN_004f6970(); FUN_00460990(0x1000007e,param_1 + 0x184); piVar2 = (int *)FUN_00463c00(0x100006ae); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(2); } param_1[0x185] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006b0); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x186] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006b2); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x187] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006b4); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x188] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006ad); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x189] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006af); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18a] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006b1); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18b] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006b3); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(9); } param_1[0x18c] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006a6); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18d] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006a8); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x18e] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006aa); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[399] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006ac); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[400] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006a5); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x191] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006a7); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x192] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006a9); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x193] = iVar3; piVar2 = (int *)FUN_00463c00(0x100006ab); if (piVar2 == (int *)0x0) { iVar3 = 0; } else { iVar3 = (**(code **)(*piVar2 + 0x94))(3); } param_1[0x194] = iVar3; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { piVar1 = param_1 + 0x17e; (**(code **)(*piVar2 + 4))(0x4dd1f8,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1fb,piVar1); (**(code **)(*piVar2 + 4))(0x4dd1f0,piVar1); } FUN_00465f90(0xd); /* WARNING: Could not recover jumptable at 0x004d5ff5. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(*param_1 + 0x138))(); return; } // --- FUN_004d6420 at 0x004D6420 (size: 53) --- void FUN_004d6420(int *param_1) { if ((*param_1 == 0x1000004a) && (param_1[2] == 0x10000003)) { FUN_0046e3e0(param_1[1]); } FUN_00462420(param_1); return; } // --- FUN_004d6460 at 0x004D6460 (size: 182) --- void __fastcall FUN_004d6460(int *param_1) { int iVar1; uint uVar2; undefined4 uVar3; int iVar4; param_1[2] = 0; if ((param_1[1] & 0x80000000U) != 0x80000000) { if ((*param_1 != 0) && (uVar2 = param_1[1] & 0x7fffffff, -1 < (int)(uVar2 - 1))) { do { uVar3 = FUN_0042dc80(); FUN_0042de30(uVar3); FUN_0042e590(); uVar2 = uVar2 - 1; } while (uVar2 != 0); } return; } iVar1 = *param_1; if (iVar1 != 0) { iVar4 = *(int *)(iVar1 + -4); if (-1 < iVar4 + -1) { do { FUN_0042e590(); iVar4 = iVar4 + -1; } while (iVar4 != 0); } operator_delete__((void *)(iVar1 + -4)); } *param_1 = 0; param_1[1] = 0; return; } // --- FUN_004d6520 at 0x004D6520 (size: 77) --- void __fastcall FUN_004d6520(int *param_1) { int iVar1; int iVar2; if (((param_1[1] & 0x80000000U) == 0x80000000) && (iVar1 = *param_1, iVar1 != 0)) { iVar2 = *(int *)(iVar1 + -4); if (-1 < iVar2 + -1) { do { FUN_0042e590(); iVar2 = iVar2 + -1; } while (iVar2 != 0); } operator_delete__((void *)(iVar1 + -4)); } return; } // --- FUN_004d6570 at 0x004D6570 (size: 286) --- undefined4 __thiscall FUN_004d6570(int *param_1,uint param_2) { uint *puVar1; uint uVar2; uint *puVar3; int iVar4; uVar2 = param_2; if ((uint)param_1[2] <= param_2) { if (param_2 <= (param_1[1] & 0x7fffffffU)) { return 1; } if (param_2 == 0) { FUN_004d6460(); return 1; } puVar3 = (uint *)thunk_FUN_005df0f5(param_2 * 0x90 + 4); if (puVar3 != (uint *)0x0) { puVar1 = puVar3 + 1; *puVar3 = param_2; FUN_00401000(puVar1,0x90,param_2,FUN_0042dc80); if (puVar1 != (uint *)0x0) { if (*param_1 != 0) { param_2 = param_1[2]; if (-1 < (int)(param_2 + -1)) { iVar4 = (param_2 + -1) * 0x90; do { FUN_0042de30(*param_1 + iVar4); iVar4 = iVar4 + -0x90; param_2 = param_2 + -1; } while (param_2 != 0); } if (((param_1[1] & 0x80000000U) == 0x80000000) && (iVar4 = *param_1, iVar4 != 0)) { param_2 = *(int *)(iVar4 + -4); if (-1 < (int)(param_2 + -1)) { do { FUN_0042e590(); param_2 = param_2 + -1; } while (param_2 != 0); } operator_delete__((void *)(iVar4 + -4)); } } *param_1 = (int)puVar1; param_1[1] = uVar2 | 0x80000000; return 1; } } } return 0; } // --- FUN_004d6690 at 0x004D6690 (size: 72) --- undefined4 * __thiscall FUN_004d6690(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_00472670(param_2,param_3); param_1[0x17e] = &PTR_FUN_007ccb60; *param_1 = &PTR_FUN_007be0c8; param_1[0x17e] = &PTR_FUN_007bde20; param_1[0x180] = 0; param_1[0x181] = 0; param_1[0x182] = 0; return param_1; } // --- FUN_004d6830 at 0x004D6830 (size: 89) --- void __fastcall FUN_004d6830(undefined4 *param_1) { undefined4 *puVar1; int *piVar2; puVar1 = param_1 + 0x17e; *param_1 = &PTR_FUN_007be0c8; *puVar1 = &PTR_FUN_007bde20; FUN_00465fb0(3); piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0xc))(puVar1); } param_1[0x17f] = 0; FUN_004d6520(); *puVar1 = &PTR_FUN_007ccb60; FUN_0043c610(); FUN_004726c0(); return; } // --- FUN_004d68c0 at 0x004D68C0 (size: 324) --- void __thiscall FUN_004d68c0(int *param_1,char param_2,char param_3,wchar_t *param_4) { wchar_t _Ch; undefined *puVar1; wchar_t *pwVar2; wchar_t *pwVar3; LONG LVar4; LONG *lpAddend; int iVar5; wchar_t *pwVar6; pwVar6 = (wchar_t *)*param_1; iVar5 = *(int *)(pwVar6 + -2) + -1; if (param_2 != '\0') { _Ch = *pwVar6; while ((_Ch != L'\0' && (pwVar2 = wcschr(param_4,_Ch), pwVar2 != (wchar_t *)0x0))) { _Ch = pwVar6[1]; pwVar6 = pwVar6 + 1; iVar5 = iVar5 + -1; } } if ((param_3 != '\0') && (iVar5 != 0)) { pwVar2 = pwVar6 + iVar5 + -1; do { pwVar3 = wcschr(param_4,*pwVar2); if (pwVar3 == (wchar_t *)0x0) break; iVar5 = iVar5 + -1; pwVar2 = pwVar2 + -1; } while (iVar5 != 0); } pwVar2 = (wchar_t *)*param_1; if ((pwVar6 == pwVar2) && (iVar5 == *(int *)(pwVar2 + -2) + -1)) { iVar5 = InterlockedDecrement((LONG *)(param_4 + -8)); } else { InterlockedIncrement((LONG *)(pwVar2 + -8)); puVar1 = (undefined *)*param_1; if (puVar1 != PTR_DAT_00818340) { LVar4 = InterlockedDecrement((LONG *)(puVar1 + -0x10)); if ((LVar4 == 0) && ((undefined4 *)(puVar1 + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(puVar1 + -0x14))(1); } lpAddend = (LONG *)(PTR_DAT_00818340 + -0x10); *param_1 = (int)PTR_DAT_00818340; InterlockedIncrement(lpAddend); } if (iVar5 != 0) { FUN_00402490(pwVar6,iVar5); } LVar4 = InterlockedDecrement((LONG *)(pwVar2 + -8)); if ((LVar4 == 0) && (pwVar2 + -10 != (wchar_t *)0x0)) { (*(code *)**(undefined4 **)(pwVar2 + -10))(1); } iVar5 = InterlockedDecrement((LONG *)(param_4 + -8)); } if ((iVar5 == 0) && (param_4 + -10 != (wchar_t *)0x0)) { (*(code *)**(undefined4 **)(param_4 + -10))(1); } return; } // --- FUN_004d6a10 at 0x004D6A10 (size: 30) --- void * __thiscall FUN_004d6a10(void *param_1,byte param_2) { FUN_004d6830(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d6a30 at 0x004D6A30 (size: 19) --- void FUN_004d6a30(void) { FUN_00460270(0x10000016,&LAB_004d6890); return; } // --- FUN_004d6a50 at 0x004D6A50 (size: 583) --- void __fastcall FUN_004d6a50(int param_1) { bool bVar1; int *piVar2; undefined4 uVar3; int *piVar4; undefined4 *puVar5; int iVar6; LONG LVar7; char cVar8; wchar_t *pwVar9; wchar_t *pwStack_14; int local_10; uint local_c; int iStack_8; int iStack_4; if (*(int *)(param_1 + 0x5fc) != 0) { bVar1 = false; local_c = 0; if (*(int *)(param_1 + 0x608) != 0) { local_10 = 0; do { piVar2 = (int *)FUN_0045e520(0,0x10000012,0x1000004a); if (piVar2 != (int *)0x0) { piVar2 = (int *)(**(code **)(*piVar2 + 0x94))(0xc); if (piVar2 != (int *)0x0) { FUN_0042e980(&pwStack_14,0); iVar6 = DAT_00837750; InterlockedIncrement((LONG *)(DAT_00837750 + -0x10)); FUN_004d68c0(0,1,iVar6); FUN_0046a740(&pwStack_14); FUN_00466d20(&DAT_0081c5a0); iVar6 = *piVar2; uVar3 = FUN_0069fe70(); uVar3 = FUN_0069fe60(uVar3); (**(code **)(iVar6 + 0x30))(uVar3); FUN_004686b0(); iVar6 = *piVar2; uVar3 = FUN_0069fe60(piVar2[0x181]); (**(code **)(iVar6 + 0x30))(uVar3); if (0 < *(int *)(*(int *)(param_1 + 0x5fc) + 0x610)) { piVar4 = (int *)FUN_0046dc50(0); iStack_4 = (**(code **)(*piVar4 + 0x94))(0xc); if (iStack_4 != 0) { puVar5 = (undefined4 *)FUN_00466830(&iStack_8); pwVar9 = (wchar_t *)*puVar5; if (*(int *)(pwStack_14 + -2) == *(int *)(pwVar9 + -2)) { if (((*(int *)(pwStack_14 + -4) == *(int *)(pwVar9 + -4)) || (*(int *)(pwStack_14 + -4) == -1)) || (*(int *)(pwVar9 + -4) == -1)) { iVar6 = wcscmp(pwStack_14,pwVar9); cVar8 = '\x01' - (iVar6 != 0); } else { cVar8 = '\0'; } } else { cVar8 = '\0'; } puVar5 = (undefined4 *)(iStack_8 + -0x14); LVar7 = InterlockedDecrement((LONG *)(iStack_8 + -0x10)); if ((LVar7 == 0) && (puVar5 != (undefined4 *)0x0)) { (**(code **)*puVar5)(1); } if (cVar8 != '\0') { FUN_0046e3e0(iStack_4); } } } FUN_0046eb20(piVar2,0); iVar6 = *(int *)(*(int *)(param_1 + 0x5fc) + 0x610); if (*(int *)(param_1 + 0x60c) < iVar6) { FUN_0046e430(iVar6 + -1); } pwVar9 = pwStack_14 + -10; bVar1 = true; LVar7 = InterlockedDecrement((LONG *)(pwStack_14 + -8)); if ((LVar7 == 0) && (pwVar9 != (wchar_t *)0x0)) { (*(code *)**(undefined4 **)pwVar9)(1); } } } local_c = local_c + 1; local_10 = local_10 + 0x90; } while (local_c < *(uint *)(param_1 + 0x608)); if (bVar1) { if (*(int *)(*(int *)(param_1 + 0x5fc) + 0x610) != 0) { FUN_0046ed00(0); } *(undefined4 *)(param_1 + 0x608) = 0; } } } return; } // --- FUN_004d6ca0 at 0x004D6CA0 (size: 75) --- undefined1 __thiscall FUN_004d6ca0(int param_1,undefined4 param_2) { char cVar1; uint uVar2; undefined4 uVar3; uVar2 = *(uint *)(param_1 + 4) & 0x7fffffff; if (uVar2 <= *(uint *)(param_1 + 8)) { uVar3 = FUN_00453850(uVar2 + 1); cVar1 = FUN_004d6570(uVar3); if (cVar1 == '\0') { return 0; } } FUN_0042de30(param_2); *(int *)(param_1 + 8) = *(int *)(param_1 + 8) + 1; return 1; } // --- FUN_004d6d20 at 0x004D6D20 (size: 231) --- undefined4 * __thiscall FUN_004d6d20(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004e5db0(param_2,param_3); *param_1 = &PTR_FUN_007be6c0; param_1[0x17e] = &PTR_FUN_007be418; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; param_1[0x195] = 0; param_1[0x196] = 0; param_1[0x197] = 0; param_1[0x198] = 0; param_1[0x199] = 0; param_1[0x19a] = 0; param_1[0x19b] = 0; param_1[0x19c] = 0; param_1[0x19d] = 0; param_1[0x19e] = 0; FUN_004f7720(); param_1[0x1b8] = 0; param_1[0x1b9] = 0; param_1[0x1ba] = 0; param_1[0x1bb] = 0; param_1[0x1bc] = 0; param_1[0x1bd] = 0; param_1[0x1be] = 0; param_1[0x1bf] = 0; param_1[0x1c0] = 0; return param_1; } // --- FUN_004d6e50 at 0x004D6E50 (size: 139) --- void __fastcall FUN_004d6e50(undefined4 *param_1) { int *piVar1; *param_1 = &PTR_FUN_007be6c0; param_1[0x17e] = &PTR_FUN_007be418; if (param_1[0x18e] != 0) { param_1[0x18e] = 0; } if (param_1[0x19e] != 0) { FUN_00454490(); } if ((undefined4 *)param_1[0x18b] != (undefined4 *)0x0) { (*(code *)**(undefined4 **)param_1[0x18b])(1); } param_1[0x18b] = 0; FUN_00453c90(1); piVar1 = (int *)FUN_0043c680(); if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 0xc))(param_1 + 0x17e); } FUN_004f6e70(); FUN_004e5e90(); return; } // --- FUN_004d6f20 at 0x004D6F20 (size: 62) --- void FUN_004d6f20(void) { int iVar1; undefined4 uVar2; iVar1 = *DAT_00870340; uVar2 = FUN_0069fe70(0); uVar2 = FUN_0069fe60(uVar2); uVar2 = FUN_0069fe30(uVar2); uVar2 = FUN_0069fe00(uVar2); (**(code **)(iVar1 + 0x40))(uVar2); return; } // --- FUN_004d6f60 at 0x004D6F60 (size: 155) --- void __thiscall FUN_004d6f60(int param_1,undefined4 param_2) { undefined4 uVar1; float10 fVar2; if (*(int *)(param_1 + 0x638) == 0) { fVar2 = (float10)FUN_00451c20(); *(double *)(param_1 + 0x630) = (double)fVar2; } *(float *)(param_1 + 0x670) = (float)*(double *)(param_1 + 0x630); *(undefined4 *)(param_1 + 0x640) = 0; *(undefined4 *)(param_1 + 0x644) = 0; *(undefined4 *)(param_1 + 0x648) = 0; *(undefined4 *)(param_1 + 0x64c) = 0; *(undefined4 *)(param_1 + 0x650) = 0; *(undefined4 *)(param_1 + 0x654) = 0; *(undefined4 *)(param_1 + 0x658) = 0; *(undefined4 *)(param_1 + 0x65c) = 0; *(undefined4 *)(param_1 + 0x638) = param_2; uVar1 = DAT_008379ac; *(undefined4 *)(param_1 + 0x660) = DAT_008379a8; *(undefined4 *)(param_1 + 0x664) = uVar1; FUN_00564d30(); uVar1 = FUN_00564d50(); FUN_00551560(0x6a,uVar1); return; } // --- FUN_004d7000 at 0x004D7000 (size: 147) --- void FUN_004d7000(void) { float fVar1; float10 fVar2; undefined4 uVar3; undefined1 local_90 [144]; FUN_0042dc80(); FUN_0042c9c0(); uVar3 = 2; fVar2 = (float10)FUN_0054d340(2); FUN_0042e080(DAT_00841268,(double)fVar2,uVar3); fVar1 = DAT_00867318; if (DAT_0081fc78 != '\0') { fVar1 = DAT_0086731c; } FUN_0042e080(DAT_0084126c,(double)fVar1,2); FUN_0046a350(local_90); FUN_0042e590(); return; } // --- FUN_004d70a0 at 0x004D70A0 (size: 241) --- void __fastcall FUN_004d70a0(int param_1) { char cVar1; int iVar2; iVar2 = FUN_0055e1d0(); if (iVar2 != 0) { FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x6e4) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x6e8) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x6ec) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x6f0) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x6f4) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x6f8) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x6fc) + 0x18))(0); (**(code **)(**(int **)(param_1 + 0x700) + 0x18))(0); return; } } (**(code **)(**(int **)(param_1 + 0x6e4) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x6e8) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x6ec) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x6f0) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x6f4) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x6f8) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x6fc) + 0x18))(1); (**(code **)(**(int **)(param_1 + 0x700) + 0x18))(1); return; } // --- FUN_004d71c0 at 0x004D71C0 (size: 30) --- void * __thiscall FUN_004d71c0(void *param_1,byte param_2) { FUN_004d6e50(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004d71e0 at 0x004D71E0 (size: 19) --- void FUN_004d71e0(void) { FUN_00460270(0x10000014,&LAB_004d6ee0); return; } // --- FUN_004d7200 at 0x004D7200 (size: 59) --- void __fastcall FUN_004d7200(int param_1) { undefined4 uVar1; if (*(int *)(param_1 + 0x638) != 0) { *(undefined4 *)(param_1 + 0x638) = 4; uVar1 = DAT_008379ac; *(undefined4 *)(param_1 + 0x660) = DAT_008379a8; *(undefined4 *)(param_1 + 0x664) = uVar1; FUN_00451c00(0,0); } return; } // --- FUN_004d7a90 at 0x004D7A90 (size: 1703) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __fastcall FUN_004d7a90(int param_1) { double dVar1; char cVar2; char cVar3; short sVar4; int iVar5; LONG LVar6; double *pdVar7; undefined4 uVar8; undefined4 *puVar9; float10 fVar10; float local_b8 [3]; undefined4 uStack_ac; double local_a8; undefined4 local_a0; undefined1 auStack_98 [148]; local_b8[2] = (float)DAT_008379a8; uStack_ac = DAT_008379ac; iVar5 = FUN_0055e1d0(); if (iVar5 != 0) { if ((*(char *)(iVar5 + 0x221) != '\0') && (*(double *)(iVar5 + 0x1f8) < (double)CONCAT44(uStack_ac,local_b8[2]))) { FUN_004d6f60(1); FUN_0055e2a0(1); FUN_0055e4f0(); } cVar3 = *(char *)(iVar5 + 0x238); cVar2 = FUN_00451c60(); if (cVar2 != cVar3) { cVar3 = FUN_00451c60(); if (cVar3 == '\0') { if (*(int *)(param_1 + 0x638) == 3) { FUN_004d7200(); } } else { FUN_0055e2a0(1); FUN_004d6f60(3); } } iVar5 = *(int *)(param_1 + 0x638); if (iVar5 == 0) { iVar5 = FUN_00451c80(); if (iVar5 != 0) { FUN_00563c30(); } } else { if ((iVar5 == 1) || (iVar5 == 6)) { FUN_004f6ce0(1); } iVar5 = *(int *)(param_1 + 0x638); if ((((iVar5 == 2) || (iVar5 == 3)) || (iVar5 == 4)) || (iVar5 == 5)) { cVar3 = FUN_004603a0(); if (cVar3 == '\0') { FUN_004f6ce0(0); FUN_00415640(local_b8,0x10000002,7); FUN_005101c0(local_b8[0],1,1,DAT_007be3f0); local_a8 = -14.400003387331962; local_a0 = 0x3f6147ae; FUN_004523a0(&local_a8); (**(code **)(**(int **)(param_1 + 0x678) + 0x18))(1); FUN_00451d80(); } dVar1 = *(double *)(param_1 + 0x648) + *(double *)(param_1 + 0x640); if (dVar1 < (double)CONCAT44(uStack_ac,local_b8[2]) == (dVar1 == (double)CONCAT44(uStack_ac,local_b8[2]))) { sVar4 = FUN_004ef1d0((float)(((float10)(double)CONCAT44(uStack_ac,local_b8[2]) - (float10)*(double *)(param_1 + 0x640)) / (float10)*(double *)(param_1 + 0x648))); local_b8[0] = (float)(int)sVar4; *(double *)(param_1 + 0x668) = (*(double *)(param_1 + 0x658) - *(double *)(param_1 + 0x650)) * (double)(int)local_b8[0] * _DAT_007be810 + *(double *)(param_1 + 0x650); } else { *(undefined4 *)(param_1 + 0x668) = *(undefined4 *)(param_1 + 0x658); *(undefined4 *)(param_1 + 0x66c) = *(undefined4 *)(param_1 + 0x65c); *(float *)(param_1 + 0x640) = local_b8[2]; *(undefined4 *)(param_1 + 0x644) = uStack_ac; fVar10 = (float10)FUN_006853d0(0x33333333,0x3fe33333,0xcccccccd,0x3ffccccc); *(double *)(param_1 + 0x648) = (double)fVar10; *(undefined4 *)(param_1 + 0x650) = *(undefined4 *)(param_1 + 0x668); *(undefined4 *)(param_1 + 0x654) = *(undefined4 *)(param_1 + 0x66c); fVar10 = (float10)FUN_006853d0(0,0,0,0x40768000); *(double *)(param_1 + 0x658) = (double)fVar10; FUN_0042dc80(); FUN_00402730(L"In Portal Space - Please Wait..."); FUN_0042cbe0(local_b8,1); puVar9 = (undefined4 *)((int)local_b8[0] + -0x14); LVar6 = InterlockedDecrement((LONG *)((int)local_b8[0] + -0x10)); if ((LVar6 == 0) && (puVar9 != (undefined4 *)0x0)) { (**(code **)*puVar9)(1); } FUN_00693500(0x1a,auStack_98); FUN_0042e590(); } local_a8 = (double)((ulonglong)(uint)(float)*(double *)(param_1 + 0x668) << 0x20); local_a0 = 0; FUN_004537a0(&local_a8); } if ((*(int *)(param_1 + 0x638) == 1) || (*(int *)(param_1 + 0x638) == 5)) { local_b8[0] = 0.0; local_b8[1] = 1.875; local_a8 = ((double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660)) / _DAT_007be3e8; pdVar7 = &local_a8; if (_DAT_007938c0 <= local_a8) { pdVar7 = (double *)local_b8; } sVar4 = FUN_004ef1d0((float)*pdVar7); fVar10 = ((float10)_DAT_007be3d0 - (float10)*(double *)(param_1 + 0x630)) * (float10)(int)sVar4 * (float10)_DAT_007be810 + (float10)*(double *)(param_1 + 0x630); local_b8[0] = (float)fVar10; *(float *)(param_1 + 0x670) = (float)fVar10; FUN_00451c00(1,local_b8[0]); } if ((*(int *)(param_1 + 0x638) == 2) || (*(int *)(param_1 + 0x638) == 6)) { local_b8[0] = 0.0; local_b8[1] = 1.875; local_a8 = ((double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660)) / _DAT_007be3e8; pdVar7 = &local_a8; if (_DAT_007938c0 <= local_a8) { pdVar7 = (double *)local_b8; } sVar4 = FUN_004ef1d0((float)*pdVar7); fVar10 = ((float10)*(double *)(param_1 + 0x630) - (float10)_DAT_007be3d0) * (float10)(int)sVar4 * (float10)_DAT_007be810 + (float10)_DAT_007be3d0; local_b8[0] = (float)fVar10; *(float *)(param_1 + 0x670) = (float)fVar10; FUN_00451c00(1,local_b8[0]); } if ((*(int *)(param_1 + 0x638) == 4) && (_DAT_007be3d8 <= (double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660))) { iVar5 = FUN_00510250(); local_b8[0] = (float)(0x78 - iVar5); if (0x78 - iVar5 < 0) { local_b8[0] = local_b8[0] + _DAT_0079920c; } local_b8[0] = local_b8[0] / DAT_007be3f0; if ((_DAT_007be3e0 <= (double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660) ) || ((_DAT_007be3e8 + _DAT_007be808 < (double)local_b8[0] && ((double)local_b8[0] < _DAT_007be3e8 + _DAT_007be800)))) { *(undefined4 *)(param_1 + 0x638) = 5; *(float *)(param_1 + 0x660) = local_b8[2]; *(undefined4 *)(param_1 + 0x664) = uStack_ac; } } if ((*(int *)(param_1 + 0x638) == 1) && (_DAT_007be3e8 <= (double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660))) { *(undefined4 *)(param_1 + 0x638) = 2; *(float *)(param_1 + 0x660) = local_b8[2]; *(undefined4 *)(param_1 + 0x664) = uStack_ac; } if ((*(int *)(param_1 + 0x638) == 2) && (_DAT_007be3e8 <= (double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660))) { *(undefined4 *)(param_1 + 0x638) = 3; *(float *)(param_1 + 0x660) = local_b8[2]; *(undefined4 *)(param_1 + 0x664) = uStack_ac; } if ((*(int *)(param_1 + 0x638) == 5) && (_DAT_007be3e8 <= (double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660))) { FUN_00451c00(1,*(undefined4 *)(param_1 + 0x670)); (**(code **)(**(int **)(param_1 + 0x678) + 0x18))(0); FUN_00451d70(); FUN_00510230(); FUN_00564d30(); uVar8 = FUN_00564d50(); FUN_00551560(0x6b,uVar8); *(undefined4 *)(param_1 + 0x638) = 6; *(float *)(param_1 + 0x660) = local_b8[2]; *(undefined4 *)(param_1 + 0x664) = uStack_ac; } if ((*(int *)(param_1 + 0x638) == 6) && (_DAT_007be3e8 <= (double)CONCAT44(uStack_ac,local_b8[2]) - *(double *)(param_1 + 0x660))) { *(double *)(param_1 + 0x660) = (double)CONCAT44(uStack_ac,local_b8[2]) - _DAT_007be3e8; FUN_00563c30(); FUN_0055e2a0(0); *(undefined4 *)(param_1 + 0x638) = 0; FUN_00451c00(0,0); FUN_00451c80(); } } } FUN_00564d30(); iVar5 = FUN_00564f90(); if (iVar5 != 0) { FUN_00458c00(); } if (*(int *)(param_1 + 0x674) != 0) { FUN_004d7000(); } return; } // --- FUN_004d8190 at 0x004D8190 (size: 56) --- void __thiscall FUN_004d8190(undefined4 *param_1,undefined4 param_2) { *param_1 = param_2; param_1[1] = DAT_00841280; param_1[2] = DAT_00841284; param_1[3] = DAT_00841288; param_1[4] = DAT_0084128c; param_1[5] = 0; return; } // --- FUN_004d82e0 at 0x004D82E0 (size: 97) --- void __fastcall FUN_004d82e0(int param_1) { char cVar1; int iVar2; iVar2 = FUN_0055e1d0(); if (iVar2 != 0) { FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x654) + 0x9c))(0x10000063); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(0); return; } } (**(code **)(**(int **)(param_1 + 0x654) + 0x9c))(0x10000064); (**(code **)(**(int **)(param_1 + 0x658) + 0x18))(1); return; } // --- FUN_004d8350 at 0x004D8350 (size: 1084) --- void FUN_004d8350(undefined4 *param_1,int *param_2) { uint uVar1; char cVar2; int iVar3; undefined4 uVar4; undefined4 uVar5; undefined4 uVar6; undefined4 uVar7; undefined4 uVar8; undefined4 uVar9; undefined4 uVar10; undefined4 uVar11; if ((param_2 != (int *)0x0) && (uVar1 = param_2[0x40], -1 < (char)uVar1)) { if (param_2[0x41] != 0) { switch(param_2[0x41]) { case 1: *param_1 = DAT_0081c69c; param_1[1] = DAT_0081c6a0; param_1[2] = DAT_0081c6a4; param_1[3] = DAT_0081c6a8; return; case 2: *param_1 = DAT_0081c6ac; param_1[1] = DAT_0081c6b0; param_1[2] = DAT_0081c6b4; param_1[3] = DAT_0081c6b8; return; case 3: *param_1 = DAT_0081c6cc; param_1[1] = DAT_0081c6d0; param_1[2] = DAT_0081c6d4; param_1[3] = DAT_0081c6d8; return; case 4: *param_1 = DAT_0081c6ec; param_1[1] = DAT_0081c6f0; param_1[2] = DAT_0081c6f4; param_1[3] = DAT_0081c6f8; return; case 5: *param_1 = DAT_0081c6dc; param_1[1] = DAT_0081c6e0; param_1[2] = DAT_0081c6e4; param_1[3] = DAT_0081c6e8; return; case 6: *param_1 = DAT_0081c6fc; param_1[1] = DAT_0081c700; param_1[2] = DAT_0081c704; param_1[3] = DAT_0081c708; return; case 7: *param_1 = DAT_0081c70c; param_1[1] = DAT_0081c710; param_1[2] = DAT_0081c714; param_1[3] = DAT_0081c718; return; case 8: *param_1 = DAT_0081c6bc; param_1[1] = DAT_0081c6c0; param_1[2] = DAT_0081c6c4; param_1[3] = DAT_0081c6c8; return; case 9: *param_1 = DAT_0081c71c; param_1[1] = DAT_0081c720; param_1[2] = DAT_0081c724; param_1[3] = DAT_0081c728; return; case 10: *param_1 = DAT_0081c72c; param_1[1] = DAT_0081c730; param_1[2] = DAT_0081c734; param_1[3] = DAT_0081c738; return; default: *param_1 = DAT_008412e4; param_1[1] = DAT_008412e8; param_1[2] = DAT_008412ec; param_1[3] = DAT_008412f0; return; } } if ((uVar1 & 0x40000) != 0) { *param_1 = DAT_00841354; param_1[1] = DAT_00841358; param_1[2] = DAT_0084135c; param_1[3] = DAT_00841360; return; } if ((uVar1 & 0x200) != 0) { *param_1 = DAT_00841374; param_1[1] = DAT_00841378; param_1[2] = DAT_0084137c; param_1[3] = DAT_00841380; return; } if ((((uVar1 & 0x10) != 0) && (iVar3 = (**(code **)(*param_2 + 0x2c))(), iVar3 != 0)) && (iVar3 = (**(code **)(*param_2 + 0x10))(), iVar3 == 0)) { *param_1 = DAT_00841314; param_1[1] = DAT_00841318; param_1[2] = DAT_0084131c; param_1[3] = DAT_00841320; return; } iVar3 = (**(code **)(*param_2 + 0x10))(); uVar11 = DAT_008412f0; uVar9 = DAT_008412ec; uVar7 = DAT_008412e8; uVar5 = DAT_008412e4; if (iVar3 != 0) { if ((((param_2[0x40] & 0x100000U) == 0) || (uVar4 = DAT_008412fc, uVar6 = DAT_00841300, uVar8 = DAT_008412f4, uVar10 = DAT_008412f8, (param_2[0x40] & 0x40U) != 0)) && ((iVar3 = (**(code **)(*param_2 + 0x20))(), uVar4 = DAT_0084134c, uVar6 = DAT_00841350, uVar8 = DAT_00841344, uVar10 = DAT_00841348, iVar3 == 0 && ((iVar3 = (**(code **)(*param_2 + 0x24))(), uVar4 = DAT_008413ac, uVar6 = DAT_008413b0, uVar8 = DAT_008413a4, uVar10 = DAT_008413a8, iVar3 == 0 && (uVar4 = uVar9, uVar6 = uVar11, uVar8 = uVar5, uVar10 = uVar7, (param_2[0x40] & 0x200000U) != 0)))))) { uVar4 = DAT_0084131c; uVar6 = DAT_00841320; uVar8 = DAT_00841314; uVar10 = DAT_00841318; } FUN_00569e30(); cVar2 = FUN_00569ef0(param_2[2]); uVar5 = DAT_0084139c; uVar7 = DAT_008413a0; uVar9 = DAT_00841394; uVar11 = DAT_00841398; if ((cVar2 == '\0') && (cVar2 = FUN_00569ed0(param_2[2]), uVar5 = uVar4, uVar7 = uVar6, uVar9 = uVar8, uVar11 = uVar10, cVar2 != '\0')) { uVar5 = DAT_0084138c; uVar7 = DAT_00841390; uVar9 = DAT_00841384; uVar11 = DAT_00841388; } *param_1 = uVar9; param_1[1] = uVar11; param_1[2] = uVar5; param_1[3] = uVar7; return; } } *param_1 = DAT_008412e4; param_1[1] = DAT_008412e8; param_1[2] = DAT_008412ec; param_1[3] = DAT_008412f0; return; } // --- FUN_004d87c0 at 0x004D87C0 (size: 200) --- int FUN_004d87c0(int *param_1) { char cVar1; undefined4 uVar2; int *piVar3; int iVar4; if ((param_1 == (int *)0x0) || ((char)param_1[0x40] < '\0')) { return 0; } FUN_00569e30(); cVar1 = FUN_00569ed0(param_1[2]); if (cVar1 != '\0') { cVar1 = FUN_00569ef0(param_1[2]); return 6 - (uint)(cVar1 != '\0'); } if (DAT_0083da58 == 0) { uVar2 = 0; } else { uVar2 = *(undefined4 *)(DAT_0083da58 + 0xf4); } piVar3 = (int *)FUN_005583f0(uVar2); if (piVar3 != (int *)0x0) { iVar4 = FUN_0058d460(piVar3); if (iVar4 != 0) { return 2; } iVar4 = (**(code **)(*param_1 + 0x20))(); if ((iVar4 != 0) && (iVar4 = (**(code **)(*piVar3 + 0x20))(), iVar4 != 0)) { return 3; } iVar4 = (**(code **)(*param_1 + 0x24))(); if ((iVar4 != 0) && (iVar4 = (**(code **)(*piVar3 + 0x24))(), iVar4 != 0)) { return 3; } } return 4; } // --- FUN_004d8890 at 0x004D8890 (size: 51) --- void FUN_004d8890(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,param_4,param_3,param_4); } return; } // --- FUN_004d88d0 at 0x004D88D0 (size: 163) --- void FUN_004d88d0(int param_1,undefined4 param_2,int param_3,int param_4) { if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,param_4 + -1,param_3,param_4 + -1); FUN_00440d20(); FUN_00443250(param_2,param_3,param_4 + 1,param_3,param_4 + 1); if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3 + -1,param_4,param_3 + -1,param_4); } } if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3 + 1,param_4,param_3 + 1,param_4); } return; } // --- FUN_004d8980 at 0x004D8980 (size: 179) --- void FUN_004d8980(int param_1,undefined4 param_2,int param_3,int param_4) { int iVar1; int iVar2; iVar1 = param_3 + 1; iVar2 = param_4 + 1; param_3 = param_3 + -1; param_4 = param_4 + -1; if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,iVar1,iVar2,iVar1,iVar2); FUN_00440d20(); FUN_00443250(param_2,param_3,param_4,param_3,param_4); if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,iVar2,param_3,iVar2); if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,iVar1,param_4,iVar1,param_4); } } } return; } // --- FUN_004d8a40 at 0x004D8A40 (size: 76) --- void FUN_004d8a40(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,param_4,param_3,param_4); } FUN_004d88d0(param_1,param_2,param_3,param_4); return; } // --- FUN_004d8a90 at 0x004D8A90 (size: 76) --- void FUN_004d8a90(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,param_4,param_3,param_4); } FUN_004d8980(param_1,param_2,param_3,param_4); return; } // --- FUN_004d8ae0 at 0x004D8AE0 (size: 162) --- void FUN_004d8ae0(int param_1,undefined4 param_2,int param_3,int param_4) { int iVar1; iVar1 = param_4 + 1; if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,param_4,param_3,param_4); FUN_00440d20(); FUN_00443250(param_2,param_3 + -1,iVar1,param_3 + -1,iVar1); FUN_00440d20(); FUN_00443250(param_2,param_3,iVar1,param_3,iVar1); FUN_00440d20(); FUN_00443250(param_2,param_3 + 1,iVar1,param_3 + 1,iVar1); } return; } // --- FUN_004d8b90 at 0x004D8B90 (size: 162) --- void FUN_004d8b90(int param_1,undefined4 param_2,int param_3,int param_4) { int iVar1; iVar1 = param_4 + -1; if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3,param_4,param_3,param_4); FUN_00440d20(); FUN_00443250(param_2,param_3 + -1,iVar1,param_3 + -1,iVar1); FUN_00440d20(); FUN_00443250(param_2,param_3,iVar1,param_3,iVar1); FUN_00440d20(); FUN_00443250(param_2,param_3 + 1,iVar1,param_3 + 1,iVar1); } return; } // --- FUN_004d8c40 at 0x004D8C40 (size: 185) --- void FUN_004d8c40(int param_1,undefined4 param_2,int param_3,int param_4) { if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3 + -2,param_4 + 3,param_3 + 2,param_4 + 3); FUN_00440d20(); FUN_00443250(param_2,param_3 + 3,param_4 + -2,param_3 + 3,param_4 + 2); FUN_00440d20(); FUN_00443250(param_2,param_3 + -2,param_4 + -3,param_3 + 2,param_4 + -3); FUN_00440d20(); FUN_00443250(param_2,param_3 + -3,param_4 + -2,param_3 + -3,param_4 + 2); } return; } // --- FUN_004d8d00 at 0x004D8D00 (size: 75) --- void __fastcall FUN_004d8d00(int *param_1) { int iVar1; uint uVar2; iVar1 = param_1[2]; if (iVar1 != 0) { param_1[3] = iVar1; param_1[2] = *(int *)(iVar1 + 4); } if (param_1[2] == 0) { while( true ) { uVar2 = param_1[1] + 1; param_1[3] = 0; param_1[1] = uVar2; if (*(uint *)(*param_1 + 0x10) <= uVar2) break; iVar1 = *(int *)(*(int *)(*param_1 + 0xc) + uVar2 * 4); param_1[2] = iVar1; if (iVar1 != 0) { return; } } param_1[4] = 1; } return; } // --- FUN_004d8d50 at 0x004D8D50 (size: 170) --- undefined4 __thiscall FUN_004d8d50(int *param_1,int *param_2) { int iVar1; int iVar2; int *piVar3; undefined4 *puVar4; int *piVar5; undefined4 *puVar6; undefined4 local_18 [4]; undefined4 local_8; undefined4 local_4; piVar3 = (int *)*param_1; if (piVar3 < piVar3 + param_1[2] * 6) { piVar5 = piVar3; do { if (*piVar5 == *param_2) { iVar2 = param_1[2] + -1; param_1[2] = iVar2; piVar3 = piVar3 + iVar2 * 6; for (iVar1 = 6; iVar1 != 0; iVar1 = iVar1 + -1) { *piVar5 = *piVar3; piVar3 = piVar3 + 1; piVar5 = piVar5 + 1; } local_18[1] = DAT_00841280; local_18[2] = DAT_00841284; local_18[0] = 0; local_18[3] = DAT_00841288; local_4 = 0; local_8 = DAT_0084128c; puVar4 = local_18; puVar6 = (undefined4 *)(*param_1 + param_1[2] * 0x18); for (iVar2 = 6; iVar2 != 0; iVar2 = iVar2 + -1) { *puVar6 = *puVar4; puVar4 = puVar4 + 1; puVar6 = puVar6 + 1; } return 1; } piVar5 = piVar5 + 6; } while (piVar5 < (int *)(*param_1 + param_1[2] * 0x18)); } return 0; } // --- FUN_004d8ff0 at 0x004D8FF0 (size: 113) --- void __thiscall FUN_004d8ff0(int param_1,int param_2) { if (param_2 != 0) { if (param_1 == 0) { param_1 = 0; } else { param_1 = param_1 + 0x5f8; } (**(code **)(*(int *)(param_2 + 0xc) + 0xc))(param_1); FUN_004d8d50(&stack0xffffffe4); } return; } // --- FUN_004d9070 at 0x004D9070 (size: 29) --- undefined4 FUN_004d9070(undefined4 param_1,undefined4 param_2) { undefined4 uVar1; uVar1 = FUN_005583f0(param_2); FUN_004d8350(param_1,uVar1); return param_1; } // --- FUN_004d9090 at 0x004D9090 (size: 53) --- void FUN_004d9090(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4) { FUN_004d88d0(param_1,param_2,param_3,param_4); FUN_004d8980(param_1,param_2,param_3,param_4); return; } // --- FUN_004d90d0 at 0x004D90D0 (size: 205) --- void FUN_004d90d0(int param_1,undefined4 param_2,int param_3,int param_4) { int iVar1; int iVar2; FUN_004d88d0(param_1,param_2,param_3,param_4); FUN_004d8980(param_1,param_2,param_3,param_4); iVar2 = param_4 + -2; iVar1 = param_3 + -2; param_4 = param_4 + 2; if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,iVar1,iVar2,iVar1,iVar2); FUN_00440d20(); FUN_00443250(param_2,param_3 + 2,iVar2,param_3 + 2,iVar2); FUN_00440d20(); FUN_00443250(param_2,iVar1,param_4,iVar1,param_4); if (param_1 != 0) { FUN_00440d20(); FUN_00443250(param_2,param_3 + 2,param_4,param_3 + 2,param_4); } } return; } // --- FUN_004d9290 at 0x004D9290 (size: 155) --- void __fastcall FUN_004d9290(int *param_1) { uint uVar1; int iVar2; int iVar3; undefined4 *puVar4; undefined4 *puVar5; undefined4 local_18 [4]; undefined4 local_8; undefined4 local_4; param_1[2] = 0; if ((param_1[1] & 0x80000000U) != 0x80000000) { if (*param_1 != 0) { uVar1 = param_1[1] & 0x7fffffff; if (-1 < (int)(uVar1 - 1)) { local_18[0] = 0; local_4 = 0; iVar2 = (uVar1 - 1) * 0x18; do { local_18[1] = DAT_00841280; local_18[2] = DAT_00841284; local_18[3] = DAT_00841288; puVar5 = (undefined4 *)(*param_1 + iVar2); local_8 = DAT_0084128c; iVar2 = iVar2 + -0x18; uVar1 = uVar1 - 1; puVar4 = local_18; for (iVar3 = 6; iVar3 != 0; iVar3 = iVar3 + -1) { *puVar5 = *puVar4; puVar4 = puVar4 + 1; puVar5 = puVar5 + 1; } } while (uVar1 != 0); } } return; } operator_delete__((void *)*param_1); *param_1 = 0; param_1[1] = 0; return; } // --- FUN_004d9340 at 0x004D9340 (size: 192) --- undefined4 __thiscall FUN_004d9340(int *param_1,uint param_2) { int iVar1; int iVar2; int iVar3; int iVar4; undefined4 *puVar5; undefined4 *puVar6; if (param_2 < (uint)param_1[2]) { return 0; } if ((param_1[1] & 0x7fffffffU) < param_2) { if (param_2 == 0) { FUN_004d9290(); return 1; } iVar1 = thunk_FUN_005df0f5(param_2 * 0x18); if (iVar1 == 0) { return 0; } FUN_00401000(iVar1,0x18,param_2,&LAB_004d81d0); if (*param_1 != 0) { iVar4 = param_1[2]; if (-1 < iVar4 + -1) { iVar2 = (iVar4 + -1) * 0x18; do { puVar5 = (undefined4 *)(*param_1 + iVar2); puVar6 = (undefined4 *)(iVar2 + iVar1); iVar2 = iVar2 + -0x18; iVar4 = iVar4 + -1; for (iVar3 = 6; iVar3 != 0; iVar3 = iVar3 + -1) { *puVar6 = *puVar5; puVar5 = puVar5 + 1; puVar6 = puVar6 + 1; } } while (iVar4 != 0); } if ((param_1[1] & 0x80000000U) == 0x80000000) { operator_delete__((void *)*param_1); } } *param_1 = iVar1; param_1[1] = param_2 | 0x80000000; } return 1; } // --- FUN_004d9400 at 0x004D9400 (size: 263) --- undefined4 * __thiscall FUN_004d9400(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { undefined4 uVar1; FUN_00472670(param_2,param_3); uVar1 = DAT_007be9a0; param_1[0x17e] = &PTR_FUN_007ccb60; param_1[0x17f] = &PTR_LAB_007a6af4; *param_1 = &PTR_LAB_007bed30; param_1[0x17e] = &PTR_FUN_007bea88; param_1[0x17f] = &PTR_LAB_007bea7c; param_1[0x180] = uVar1; param_1[0x181] = 0; param_1[0x182] = 0; param_1[0x183] = 0; param_1[0x184] = 0; param_1[0x185] = 0; FUN_0065e890(0,0); param_1[0x188] = 0; param_1[0x189] = 0; param_1[0x18a] = 0; param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; param_1[0x193] = 0; param_1[0x194] = 0; param_1[0x195] = 0; param_1[0x196] = 0; param_1[0x198] = 0; param_1[0x199] = 0; param_1[0x19a] = 0; param_1[0x19b] = 0; param_1[0x19c] = 0; param_1[0x19d] = 0; param_1[0x19e] = 0; return param_1; } // --- FUN_004d9540 at 0x004D9540 (size: 138) --- void __fastcall FUN_004d9540(undefined4 *param_1) { undefined4 *puVar1; int *piVar2; puVar1 = param_1 + 0x17e; *param_1 = &PTR_LAB_007bed30; *puVar1 = &PTR_FUN_007bea88; param_1[0x17f] = &PTR_LAB_007bea7c; FUN_00465fb0(3); (**(code **)(*DAT_008f958c + 0x14))(param_1 + 0x17f); piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0xc))(puVar1); } FUN_0040e900(); if ((param_1[0x182] & 0x80000000) == 0x80000000) { operator_delete__((void *)param_1[0x181]); } *puVar1 = &PTR_FUN_007ccb60; FUN_0043c610(); FUN_004726c0(); return; } // --- FUN_004d9610 at 0x004D9610 (size: 114) --- void __thiscall FUN_004d9610(int param_1,int param_2) { uint uVar1; int *piVar2; int iVar3; int *piVar4; undefined1 local_10 [16]; if (param_2 != 0) { uVar1 = 0; if (*(uint *)(param_1 + 0x60c) != 0) { piVar4 = *(int **)(param_1 + 0x604); while (*piVar4 != param_2) { uVar1 = uVar1 + 1; piVar4 = piVar4 + 6; if (*(uint *)(param_1 + 0x60c) <= uVar1) { return; } } piVar2 = (int *)FUN_004d8350(local_10,param_2); piVar4[1] = *piVar2; piVar4[2] = piVar2[1]; piVar4[3] = piVar2[2]; piVar4[4] = piVar2[3]; iVar3 = FUN_004d87c0(param_2); piVar4[5] = iVar3; } } return; } // --- FUN_004d9690 at 0x004D9690 (size: 273) --- void FUN_004d9690(undefined4 param_1,int param_2,float param_3,undefined4 param_4,undefined4 param_5 ,char param_6) { int iVar1; float local_10; float local_c; float local_8; undefined4 local_4; iVar1 = FUN_00564d30(); if (*(char *)(iVar1 + 0x41) == '\0') { local_10 = *(float *)(param_2 + 4) * param_3; local_4 = *(undefined4 *)(param_2 + 0x10); local_c = *(float *)(param_2 + 8) * param_3; local_8 = *(float *)(param_2 + 0xc) * param_3; switch(*(undefined4 *)(param_2 + 0x14)) { case 1: FUN_004d8890(param_1,&local_10,param_4,param_5); break; case 2: FUN_004d9090(param_1,&local_10,param_4,param_5); break; case 3: FUN_004d8a90(param_1,&local_10,param_4,param_5); break; case 4: FUN_004d8a40(param_1,&local_10,param_4,param_5); break; case 5: FUN_004d8ae0(param_1,&local_10,param_4,param_5); break; case 6: FUN_004d8b90(param_1,&local_10,param_4,param_5); break; case 7: FUN_004d90d0(param_1,&local_10,param_4,param_5); } if (param_6 != '\0') { FUN_004d8c40(param_1,&local_10,param_4,param_5); } } return; } // --- FUN_004d97e0 at 0x004D97E0 (size: 19) --- void FUN_004d97e0(void) { FUN_00460270(0x10000010,&LAB_004d95d0); return; } // --- FUN_004d98e0 at 0x004D98E0 (size: 881) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __fastcall FUN_004d98e0(int param_1) { uint uVar1; char cVar2; int iVar3; undefined *puVar4; undefined *puVar5; undefined8 local_30; uint local_24; undefined4 local_20; undefined4 uStack_1c; undefined4 local_18; undefined4 uStack_14; undefined8 local_10; iVar3 = FUN_0055e1d0(); if (iVar3 != 0) { local_24 = local_24 & 0xffffff00; cVar2 = FUN_005d40c0(); if (cVar2 != '\0') { local_18 = 0; uStack_14 = 0; local_20 = 0; uStack_1c = 0; cVar2 = FUN_00560e00(&local_18,&local_20); if ((cVar2 != '\0') && ((local_24 = CONCAT31(local_24._1_3_,1), (double)CONCAT44(uStack_14,local_18) != *(double *)(param_1 + 0x668) || ((double)CONCAT44(uStack_1c,local_20) != *(double *)(param_1 + 0x670))))) { *(undefined4 *)(param_1 + 0x66c) = uStack_14; *(undefined4 *)(param_1 + 0x668) = local_18; *(undefined4 *)(param_1 + 0x670) = local_20; *(undefined4 *)(param_1 + 0x674) = uStack_1c; if (*(int *)(param_1 + 0x648) != 0) { if (_DAT_00795610 <= (double)CONCAT44(uStack_14,local_18)) { puVar5 = &DAT_007a75f4; if ((double)CONCAT44(uStack_14,local_18) <= _DAT_00795610) { puVar5 = &DAT_00795320; } } else { puVar5 = &DAT_007a75f8; } if (_DAT_00795610 <= (double)CONCAT44(uStack_1c,local_20)) { puVar4 = &DAT_007a75ec; if ((double)CONCAT44(uStack_1c,local_20) <= _DAT_00795610) { puVar4 = &DAT_00795320; } } else { puVar4 = &DAT_007a75f0; } if ((double)CONCAT44(uStack_14,local_18) < _DAT_00795610) { local_30 = -(double)CONCAT44(uStack_14,local_18); } else { local_30 = (double)CONCAT44(uStack_14,local_18); } if ((double)CONCAT44(uStack_1c,local_20) < _DAT_00795610) { local_10 = -(double)CONCAT44(uStack_1c,local_20); } else { local_10 = (double)CONCAT44(uStack_1c,local_20); } FUN_00480980(&local_30,0,L"%.1f%s,%.1f%s",(undefined4)local_10,local_10._4_4_,puVar4, (undefined4)local_30,local_30._4_4_,puVar5); FUN_0046a740(&local_30); FUN_004011b0(); } if (*(int *)(param_1 + 0x650) != 0) { if (_DAT_00795610 <= (double)CONCAT44(uStack_1c,local_20)) { puVar5 = &DAT_007a75ec; if ((double)CONCAT44(uStack_1c,local_20) <= _DAT_00795610) { puVar5 = &DAT_00795320; } } else { puVar5 = &DAT_007a75f0; } if ((double)CONCAT44(uStack_1c,local_20) < _DAT_00795610) { local_10 = -(double)CONCAT44(uStack_1c,local_20); } else { local_10 = (double)CONCAT44(uStack_1c,local_20); } FUN_00480980(&local_30,0,L"%.1f%s",(undefined4)local_10,local_10._4_4_,puVar5); FUN_0046a740(&local_30); FUN_004011b0(); } if (*(int *)(param_1 + 0x64c) != 0) { if (_DAT_00795610 <= (double)CONCAT44(uStack_14,local_18)) { puVar5 = &DAT_007a75f4; if ((double)CONCAT44(uStack_14,local_18) <= _DAT_00795610) { puVar5 = &DAT_00795320; } } else { puVar5 = &DAT_007a75f8; } if ((double)CONCAT44(uStack_14,local_18) < _DAT_00795610) { local_10 = -(double)CONCAT44(uStack_14,local_18); } else { local_10 = (double)CONCAT44(uStack_14,local_18); } FUN_00480980(&local_30,0,L"%.1f%s",(undefined4)local_10,local_10._4_4_,puVar5); FUN_0046a740(&local_30); FUN_004011b0(); } } } uVar1 = local_24; if (*(int **)(param_1 + 0x644) != (int *)0x0) { (**(code **)(**(int **)(param_1 + 0x644) + 0x18))(local_24); } if (*(int **)(param_1 + 0x648) != (int *)0x0) { (**(code **)(**(int **)(param_1 + 0x648) + 0x18))(uVar1); } if (*(int **)(param_1 + 0x64c) != (int *)0x0) { (**(code **)(**(int **)(param_1 + 0x64c) + 0x18))(uVar1); } if (*(int **)(param_1 + 0x650) != (int *)0x0) { (**(code **)(**(int **)(param_1 + 0x650) + 0x18))(uVar1); } (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(1); } return; } // --- FUN_004d9c60 at 0x004D9C60 (size: 82) --- undefined4 __thiscall FUN_004d9c60(int *param_1,undefined4 *param_2) { undefined4 uVar1; int iVar2; undefined4 *puVar3; if ((param_1[1] & 0x7fffffffU) <= (uint)param_1[2]) { uVar1 = FUN_00453850((param_1[1] & 0x7fffffffU) + 1); uVar1 = FUN_004d9340(uVar1); if ((char)uVar1 == '\0') { return uVar1; } } puVar3 = (undefined4 *)(*param_1 + param_1[2] * 0x18); for (iVar2 = 6; iVar2 != 0; iVar2 = iVar2 + -1) { *puVar3 = *param_2; param_2 = param_2 + 1; puVar3 = puVar3 + 1; } iVar2 = param_1[2]; param_1[2] = iVar2 + 1; return CONCAT31((int3)((uint)(iVar2 + 1) >> 8),1); } // --- FUN_004d9cc0 at 0x004D9CC0 (size: 799) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __fastcall FUN_004d9cc0(int param_1) { int iVar1; int *piVar2; int *piVar3; float10 fVar4; float *pfVar5; undefined *puVar6; int **ppiVar7; undefined4 uVar8; int *local_14; int *local_10; undefined4 local_c; float local_8; float local_4; ppiVar7 = &local_14; pfVar5 = &local_4; puVar6 = &DAT_007be928; local_14 = (int *)0x0; FUN_00406d10(pfVar5,&DAT_007be928,ppiVar7); FUN_00406570(pfVar5,puVar6,ppiVar7); piVar2 = local_14; uVar8 = 0; local_10 = (int *)0x0; local_c = 0; piVar3 = local_14; if (local_14 != (int *)0x0) { (**(code **)(*local_14 + 0x10))(local_14,0); } piVar3 = (int *)FUN_0048bb00(&local_8,piVar3,uVar8); iVar1 = *piVar3; if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0x14))(); } piVar2 = local_10; if (local_10 != (int *)0x0) { if (-1 < iVar1) { if (*(int *)(DAT_0083da58 + 0xf8) == 0) { (**(code **)(*local_10 + 0x14))(); return; } fVar4 = (float10)FUN_00512010(); if (fVar4 != (float10)*(float *)(param_1 + 0x614)) { *(float *)(param_1 + 0x614) = (float)fVar4; local_14 = (int *)(float)(fVar4 * (float10)_DAT_0079c504); if (*(int **)(param_1 + 0x634) != (int *)0x0) { iVar1 = **(int **)(param_1 + 0x634); fVar4 = (float10)fsin((float10)(float)local_14 + (float10)_DAT_007beea0); local_4 = (float)(fVar4 * (float10)*(float *)(param_1 + 0x624)); fVar4 = (float10)fcos((float10)(float)local_14 + (float10)_DAT_007beea0); local_8 = (float)(fVar4 * (float10)*(float *)(param_1 + 0x624) + (float10)*(float *)(param_1 + 0x61c)); local_10 = (int *)FUN_0069fe70(); uVar8 = FUN_005df4c4(); local_8 = local_4 + *(float *)(param_1 + 0x618); local_4 = (float)FUN_0069fe60(uVar8); uVar8 = FUN_005df4c4(); (**(code **)(iVar1 + 0x2c))(uVar8); } if (*(int **)(param_1 + 0x638) != (int *)0x0) { iVar1 = **(int **)(param_1 + 0x638); fVar4 = (float10)fsin((float10)(float)local_14 + (float10)_DAT_007bee9c); local_10 = (int *)(float)(fVar4 * (float10)*(float *)(param_1 + 0x628)); fVar4 = (float10)fcos((float10)(float)local_14 + (float10)_DAT_007bee9c); local_8 = (float)(fVar4 * (float10)*(float *)(param_1 + 0x628) + (float10)*(float *)(param_1 + 0x61c)); local_4 = (float)FUN_0069fe70(); uVar8 = FUN_005df4c4(); local_8 = (float)local_10 + *(float *)(param_1 + 0x618); local_4 = (float)FUN_0069fe60(uVar8); uVar8 = FUN_005df4c4(); (**(code **)(iVar1 + 0x2c))(uVar8); } if (*(int **)(param_1 + 0x63c) != (int *)0x0) { iVar1 = **(int **)(param_1 + 0x63c); fVar4 = (float10)fsin((float10)(float)local_14); local_10 = (int *)(float)(fVar4 * (float10)*(float *)(param_1 + 0x62c)); fVar4 = (float10)fcos((float10)(float)local_14); local_8 = (float)(fVar4 * (float10)*(float *)(param_1 + 0x62c) + (float10)*(float *)(param_1 + 0x61c)); local_4 = (float)FUN_0069fe70(); uVar8 = FUN_005df4c4(); local_8 = (float)local_10 + *(float *)(param_1 + 0x618); local_4 = (float)FUN_0069fe60(uVar8); uVar8 = FUN_005df4c4(); (**(code **)(iVar1 + 0x2c))(uVar8); } if (*(int **)(param_1 + 0x640) != (int *)0x0) { iVar1 = **(int **)(param_1 + 0x640); fVar4 = (float10)fsin((float10)(float)local_14 + (float10)_DAT_007bee98); local_10 = (int *)(float)(fVar4 * (float10)*(float *)(param_1 + 0x630)); fVar4 = (float10)fcos((float10)(float)local_14 + (float10)_DAT_007bee98); local_8 = (float)(fVar4 * (float10)*(float *)(param_1 + 0x630) + (float10)*(float *)(param_1 + 0x61c)); local_4 = (float)FUN_0069fe70(); uVar8 = FUN_005df4c4(); local_8 = (float)local_10 + *(float *)(param_1 + 0x618); local_4 = (float)FUN_0069fe60(uVar8); uVar8 = FUN_005df4c4(); (**(code **)(iVar1 + 0x2c))(uVar8); (**(code **)(*piVar2 + 0x14))(); return; } } } (**(code **)(*piVar2 + 0x14))(); } return; } // --- FUN_004d9fe0 at 0x004D9FE0 (size: 913) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __thiscall FUN_004d9fe0(int param_1,undefined4 param_2) { int *piVar1; int iVar2; int iVar3; int iVar4; int iVar5; int iVar6; int iVar7; uint uVar8; int *piVar9; undefined1 *puVar10; undefined *puVar11; int *piVar12; int **ppiVar13; undefined4 uVar14; int *local_dc; float fStack_d8; int local_d4; int local_d0; uint local_cc; undefined1 auStack_c8 [4]; undefined4 uStack_c4; int *local_c0; int *local_bc; int local_b8; uint local_b4; float fStack_b0; float fStack_ac; float fStack_a8; float local_a4; int *local_a0; int iStack_9c; undefined1 local_98 [4]; undefined1 local_94 [4]; undefined1 auStack_90 [144]; local_a4 = *(float *)(param_1 + 0x600) - _DAT_007938b0; *(undefined4 *)(param_1 + 0x610) = 0; local_a4 = local_a4 * local_a4; local_b8 = 0; local_b4 = 0xffffffff; local_cc = 0; if (*(int *)(param_1 + 0x60c) != 0) { local_d4 = 0; do { local_d0 = *(int *)(*(int *)(param_1 + 0x604) + local_d4); piVar9 = (int *)(*(int *)(param_1 + 0x604) + local_d4); local_a0 = piVar9; if (local_d0 != 0) { ppiVar13 = &local_dc; puVar10 = local_94; puVar11 = &DAT_007be8b8; local_dc = (int *)0x0; FUN_00406d10(puVar10,&DAT_007be8b8,ppiVar13); FUN_00406570(puVar10,puVar11,ppiVar13); piVar1 = local_dc; uVar14 = 0; local_c0 = (int *)0x0; local_bc = (int *)0x0; piVar12 = local_dc; if (local_dc != (int *)0x0) { (**(code **)(*local_dc + 0x10))(local_dc,0); } local_dc = (int *)FUN_00454590(local_98,piVar12,uVar14); local_dc = (int *)*local_dc; local_bc = local_dc; if (piVar1 != (int *)0x0) { (**(code **)(*piVar1 + 0x14))(); } piVar1 = local_c0; if (local_c0 == (int *)0x0) { return; } if ((int)local_dc < 0) { if (local_c0 == (int *)0x0) { return; } (**(code **)(*local_c0 + 0x14))(); return; } iVar3 = FUN_00508890(*(undefined4 *)(*piVar9 + 8)); if (((iVar3 == 0) || (*(int *)(iVar3 + 0x90) == 0)) || (*(int *)(iVar3 + 0x4c) == 0)) { iVar3 = *piVar1; LAB_004da2f9: (**(code **)(iVar3 + 0x14))(); } else { FUN_00452de0(iVar3,&fStack_b0); if (fStack_b0 * fStack_b0 + fStack_ac * fStack_ac < local_a4) { fStack_d8 = (float)*(int *)(param_1 + 0x620); iVar3 = FUN_005df4c4(); iStack_9c = iVar3; local_dc = (int *)FUN_005df4c4(); if (((*(float *)(param_1 + 0x618) - fStack_d8 <= (float)iStack_9c) && ((float)iStack_9c <= fStack_d8 + *(float *)(param_1 + 0x618))) && ((*(float *)(param_1 + 0x61c) - fStack_d8 <= (float)(int)local_dc && ((float)(int)local_dc <= fStack_d8 + *(float *)(param_1 + 0x61c))))) { iVar4 = (**(code **)(*DAT_00837ff4 + 0x18))(); iVar5 = FUN_0069fe00(); iVar6 = (**(code **)(*DAT_00837ff4 + 0x1c))(); iVar7 = FUN_0069fe30(); iVar2 = local_d0; iVar6 = (iVar6 - iVar7) - (int)local_dc; iVar4 = (iVar4 - iVar5) - iVar3; uVar8 = iVar4 * iVar4 + iVar6 * iVar6; if ((uVar8 < 0x25) && (uVar8 < local_b4)) { local_b8 = *(int *)(local_d0 + 8); local_b4 = uVar8; FUN_0058f8b0(auStack_c8,2,0); FUN_0042dc80(); FUN_0042cbe0(auStack_c8,1); FUN_004618a0(auStack_90); *(uint *)(param_1 + 0xa4) = *(uint *)(param_1 + 0xa4) | 0x20; FUN_0042e590(); FUN_004011b0(); } uStack_c4 = 0x3f266666; if (ABS(fStack_a8) < (float)_DAT_0079a1b0) { uStack_c4 = 0x3f800000; } FUN_004d9690(param_2,local_a0,uStack_c4,iVar3,local_dc, *(int *)(iVar2 + 8) == DAT_00871e54); iVar3 = *local_c0; goto LAB_004da2f9; } (**(code **)(*piVar1 + 0x14))(); } else { (**(code **)(*piVar1 + 0x14))(); } } } local_cc = local_cc + 1; local_d4 = local_d4 + 0x18; } while (local_cc < *(uint *)(param_1 + 0x60c)); if (local_b8 != 0) { *(int *)(param_1 + 0x610) = local_b8; } } if (*(int *)(param_1 + 0x610) == 0) { *(uint *)(param_1 + 0xa4) = *(uint *)(param_1 + 0xa4) & 0xffffffdf; FUN_004626c0(); } return; } // --- FUN_004da500 at 0x004DA500 (size: 243) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __fastcall FUN_004da500(int param_1) { int iVar1; int *piVar2; int *piVar3; float10 fVar4; undefined1 *puVar5; undefined *puVar6; int **ppiVar7; undefined4 uVar8; int *local_1c; undefined1 local_18 [4]; undefined1 local_14 [4]; int *local_10; undefined4 local_c; double local_8; local_8 = _DAT_008379a8; if (*(double *)(param_1 + 0x660) <= _DAT_008379a8) { ppiVar7 = &local_1c; puVar5 = local_18; puVar6 = &DAT_007be928; local_1c = (int *)0x0; FUN_00406d10(puVar5,&DAT_007be928,ppiVar7); FUN_00406570(puVar5,puVar6,ppiVar7); piVar2 = local_1c; uVar8 = 0; local_10 = (int *)0x0; local_c = 0; piVar3 = local_1c; if (local_1c != (int *)0x0) { (**(code **)(*local_1c + 0x10))(local_1c,0); } piVar3 = (int *)FUN_0048bb00(local_14,piVar3,uVar8); iVar1 = *piVar3; if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0x14))(); } piVar2 = local_10; if (((local_10 != (int *)0x0) && (-1 < iVar1)) && (*(int *)(DAT_0083da58 + 0xf8) != 0)) { FUN_0055e1d0(); fVar4 = (float10)FUN_0055e5a0(); *(float *)(param_1 + 0x600) = (float)fVar4; FUN_004d9cc0(); FUN_004d98e0(); (**(code **)(**(int **)(param_1 + 0x654) + 0x18))(1); FUN_006a0430(); } *(double *)(param_1 + 0x660) = _DAT_007bea58 + local_8; if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0x14))(); } } return; } // --- FUN_004da600 at 0x004DA600 (size: 57) --- uint __thiscall FUN_004da600(undefined4 *param_1,int *param_2) { uint uVar1; int *piVar2; uVar1 = 0; if (param_1[2] != 0) { piVar2 = (int *)*param_1; do { if (*piVar2 == *param_2) { if (uVar1 != 0xffffffff) { return uVar1 & 0xffffff00; } break; } uVar1 = uVar1 + 1; piVar2 = piVar2 + 6; } while (uVar1 < (uint)param_1[2]); } uVar1 = FUN_004d9c60(param_2); return uVar1; } // --- FUN_004da660 at 0x004DA660 (size: 349) --- void __thiscall FUN_004da660(int param_1,int param_2) { undefined4 uVar1; int iVar2; undefined4 *puVar3; int *local_3c; int local_38; int *local_34 [4]; undefined1 auStack_24 [12]; undefined1 auStack_18 [4]; undefined4 uStack_14; undefined4 uStack_10; undefined4 uStack_c; undefined4 uStack_8; int iStack_4; if ((param_2 != 0) && (-1 < *(char *)(param_2 + 0x100))) { if (DAT_0083da58 == 0) { iVar2 = 0; } else { iVar2 = *(int *)(DAT_0083da58 + 0xf4); } if (iVar2 != *(int *)(param_2 + 8)) { uVar1 = FUN_00485200(local_34,&DAT_007be8b8); FUN_00455250(uVar1); if (local_34[0] != (int *)0x0) { (**(code **)(*local_34[0] + 0x14))(); } if (local_3c != (int *)0x0) { if (local_38 < 0) { (**(code **)(*local_3c + 0x14))(); return; } iVar2 = FUN_00508890(*(undefined4 *)(param_2 + 8)); if ((iVar2 != 0) && (iVar2 = FUN_0058d080(auStack_24), iVar2 != 0)) { FUN_004d8190(param_2); puVar3 = (undefined4 *)FUN_004d8350(local_34,param_2); uStack_14 = *puVar3; uStack_10 = puVar3[1]; uStack_c = puVar3[2]; uStack_8 = puVar3[3]; iStack_4 = FUN_004d87c0(param_2); if (iStack_4 == 0) { (**(code **)(*local_3c + 0x14))(); return; } if (param_1 == 0) { iVar2 = 0; } else { iVar2 = param_1 + 0x5f8; } (**(code **)(*(int *)(param_2 + 0xc) + 4))(0x4dd245,iVar2); if (param_1 == 0) { param_1 = 0; } else { param_1 = param_1 + 0x5f8; } (**(code **)(*(int *)(param_2 + 0xc) + 4))(0x186af,param_1); FUN_004da600(auStack_18); } (**(code **)(*local_3c + 0x14))(); } } } return; } // --- FUN_004da7f0 at 0x004DA7F0 (size: 407) --- void __fastcall FUN_004da7f0(int param_1) { char cVar1; int *piVar2; int iVar3; int *piVar4; float10 fVar5; undefined1 *puVar6; undefined *puVar7; int **ppiVar8; undefined4 uVar9; int *piStack_2c; int local_28; undefined1 auStack_24 [4]; undefined1 auStack_20 [4]; int *piStack_1c; undefined4 uStack_18; int *piStack_14; undefined4 uStack_10; int iStack_c; undefined4 uStack_8; int iStack_4; local_28 = param_1; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { if (param_1 == 0) { iVar3 = 0; } else { iVar3 = param_1 + 0x5f8; } (**(code **)(*piVar2 + 4))(0x186ae,iVar3); } FUN_004d9290(); iVar3 = FUN_0055e1d0(); if (iVar3 != 0) { FUN_0055e1d0(); fVar5 = (float10)FUN_0055e5a0(); *(float *)(param_1 + 0x600) = (float)fVar5; } ppiVar8 = &piStack_2c; puVar6 = auStack_24; puVar7 = &DAT_007be8b8; piStack_2c = (int *)0x0; FUN_00406d10(puVar6,&DAT_007be8b8,ppiVar8); FUN_00406570(puVar6,puVar7,ppiVar8); piVar2 = piStack_2c; uVar9 = 0; piStack_1c = (int *)0x0; uStack_18 = 0; piVar4 = piStack_2c; if (piStack_2c != (int *)0x0) { (**(code **)(*piStack_2c + 0x10))(piStack_2c,0); } piVar4 = (int *)FUN_00454590(auStack_20,piVar4,uVar9); iVar3 = *piVar4; if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0x14))(); } piVar2 = piStack_1c; if (piStack_1c != (int *)0x0) { if (iVar3 < 0) { (**(code **)(*piStack_1c + 0x14))(); return; } piStack_14 = piStack_1c + 0x21; uStack_8 = 0; uStack_10 = 0; if (piStack_14 != (int *)0x0) { iVar3 = *(int *)piStack_1c[0x24]; iStack_4 = 0; iStack_c = iVar3; if (iVar3 != 0) goto LAB_004da901; FUN_004d8d00(); iVar3 = iStack_c; joined_r0x004da8f9: do { if (iStack_4 != 0) break; LAB_004da901: param_1 = local_28; if (iVar3 != 0) { if ((*(byte *)(iVar3 + 0xa8) & 1) == 0) { if (*(int *)(iVar3 + 300) == 0) goto joined_r0x004da8f9; FUN_004da660(*(int *)(iVar3 + 300)); } FUN_004d8d00(); param_1 = local_28; iVar3 = iStack_c; } } while( true ); } FUN_0055e1d0(); cVar1 = FUN_005d4330(); if (cVar1 != '\0') { (**(code **)(**(int **)(param_1 + 0x654) + 0x9c))(0x10000063); (**(code **)(*piVar2 + 0x14))(); return; } (**(code **)(**(int **)(param_1 + 0x654) + 0x9c))(0x10000064); (**(code **)(*piVar2 + 0x14))(); } return; } // --- FUN_004db000 at 0x004DB000 (size: 62) --- undefined4 * __thiscall FUN_004db000(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_00472670(param_2,param_3); param_1[0x17e] = &PTR_FUN_007ccb60; *param_1 = &PTR_FUN_007bf248; param_1[0x17e] = &PTR_FUN_007befa0; param_1[0x17f] = 0; return param_1; } // --- FUN_004db070 at 0x004DB070 (size: 40) --- void __fastcall FUN_004db070(undefined4 *param_1) { *param_1 = &PTR_FUN_007bf248; param_1[0x17e] = &PTR_FUN_007befa0; param_1[0x17e] = &PTR_FUN_007ccb60; FUN_0043c610(); FUN_004726c0(); return; } // --- FUN_004db100 at 0x004DB100 (size: 61) --- undefined4 * __thiscall FUN_004db100(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bf248; param_1[0x17e] = &PTR_FUN_007befa0; param_1[0x17e] = &PTR_FUN_007ccb60; FUN_0043c610(); FUN_004726c0(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004db140 at 0x004DB140 (size: 71) --- void __fastcall FUN_004db140(int param_1) { int *piVar1; FUN_004639a0(); piVar1 = (int *)FUN_00463c00(0x100005ee); if (piVar1 != (int *)0x0) { piVar1 = (int *)(**(code **)(*piVar1 + 0x94))(3); *(int **)(param_1 + 0x600) = piVar1; (**(code **)(*piVar1 + 0x18))(0); return; } *(undefined4 *)(param_1 + 0x600) = 0; (**(code **)(iRam00000000 + 0x18))(0); return; } // --- FUN_004db190 at 0x004DB190 (size: 19) --- void FUN_004db190(void) { FUN_00460270(0x1000000f,&LAB_004db0a0); return; } // --- FUN_004db4f0 at 0x004DB4F0 (size: 65) --- void __fastcall FUN_004db4f0(int param_1) { char cVar1; if (*(int *)(param_1 + 0x24) == 0) { return; } cVar1 = FUN_004f39c0(); if (cVar1 != '\0') { /* WARNING: Could not recover jumptable at 0x004db517. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(**(int **)(param_1 + 0x24) + 0x9c))(); return; } /* WARNING: Could not recover jumptable at 0x004db527. Too many branches */ /* WARNING: Treating indirect jump as call */ (**(code **)(**(int **)(param_1 + 0x24) + 0x9c))(); return; } // --- FUN_004db540 at 0x004DB540 (size: 151) --- undefined4 * FUN_004db540(undefined4 *param_1) { LONG LVar1; undefined4 *puVar2; undefined *local_8; int local_4; local_4 = DAT_00838188; InterlockedIncrement((LONG *)(DAT_00838188 + -0x10)); local_8 = PTR_DAT_00818344; InterlockedIncrement((LONG *)(PTR_DAT_00818344 + -0x10)); thunk_FUN_0040c780(&local_8,&local_4); *param_1 = local_8; InterlockedIncrement((LONG *)(local_8 + -0x10)); puVar2 = (undefined4 *)(local_8 + -0x14); LVar1 = InterlockedDecrement((LONG *)(local_8 + -0x10)); if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) { (**(code **)*puVar2)(1); } puVar2 = (undefined4 *)(local_4 + -0x14); LVar1 = InterlockedDecrement((LONG *)(local_4 + -0x10)); if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) { (**(code **)*puVar2)(1); } return param_1; } // --- FUN_004db5e0 at 0x004DB5E0 (size: 325) --- undefined4 FUN_004db5e0(undefined4 param_1,uint param_2) { undefined4 uVar1; char *pcVar2; undefined4 uVar3; undefined1 local_90 [144]; FUN_0042dc80(); if (param_2 < 0x10000003) { if (param_2 != 0x10000002) { switch(param_2) { case 4: pcVar2 = "ID_InputMap_MovementCommands"; break; case 5: pcVar2 = "ID_InputMap_CameraControls"; break; case 6: pcVar2 = "ID_InputMap_CameraAlternateControls"; break; default: goto switchD_004db60f_caseD_7; case 9: pcVar2 = "ID_InputMap_DialogBoxes"; break; case 0xb: pcVar2 = "ID_InputMap_DebugConsole"; break; case 0xc: pcVar2 = "ID_InputMap_ProfilerUI"; break; case 0xd: pcVar2 = "ID_InputMap_UIDebugger"; break; case 0xe: pcVar2 = "ID_InputMap_DebugCommands"; } goto LAB_004db6ea; } uVar3 = 7; uVar1 = FUN_004016b0("ID_InputMap_Combat",7); } else { switch(param_2) { case 0x10000003: pcVar2 = "ID_InputMap_MeleeCombat"; break; case 0x10000004: pcVar2 = "ID_InputMap_MissileCombat"; break; case 0x10000005: pcVar2 = "ID_InputMap_MagicCombat"; break; case 0x10000006: pcVar2 = "ID_InputMap_Emotes"; break; case 0x10000007: pcVar2 = "ID_InputMap_ItemSelectionCommands"; break; case 0x10000008: pcVar2 = "ID_InputMap_CharacterOptionCommands"; break; case 0x10000009: pcVar2 = "ID_InputMap_UICommands"; break; case 0x1000000a: pcVar2 = "ID_InputMap_ChatCommands"; break; default: goto switchD_004db60f_caseD_7; case 0x1000000c: pcVar2 = "ID_InputMap_QuickslotCommands"; break; case 0x1000000d: pcVar2 = "ID_InputMap_ToggleChatEntry"; } LAB_004db6ea: uVar3 = 7; uVar1 = FUN_00401a20(pcVar2,7); } FUN_0042c9c0(uVar1,uVar3); switchD_004db60f_caseD_7: FUN_0042e510(local_90); FUN_0042e590(); return param_1; } // --- FUN_004db7c0 at 0x004DB7C0 (size: 64) --- undefined4 * __thiscall FUN_004db7c0(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bf7dc; if ((undefined4 *)param_1[0x18] != param_1 + 1) { operator_delete__((undefined4 *)param_1[0x18]); } param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004db800 at 0x004DB800 (size: 64) --- undefined4 * __thiscall FUN_004db800(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bf7e0; if ((undefined4 *)param_1[0x18] != param_1 + 1) { operator_delete__((undefined4 *)param_1[0x18]); } param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004db840 at 0x004DB840 (size: 64) --- undefined4 * __thiscall FUN_004db840(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bf7e4; if ((undefined4 *)param_1[0x18] != param_1 + 1) { operator_delete__((undefined4 *)param_1[0x18]); } param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004db880 at 0x004DB880 (size: 113) --- void __thiscall FUN_004db880(int *param_1,uint param_2) { int *piVar1; uint uVar2; param_1[0x1a5] = 0; if (((param_2 != 0xffffffff) && (piVar1 = (int *)param_1[0x1aa], piVar1 != (int *)0x0)) && (param_2 < (uint)param_1[0x1ac])) { uVar2 = 0; while (uVar2 != param_2) { if (piVar1 != (int *)0x0) { piVar1 = (int *)piVar1[1]; } uVar2 = uVar2 + 1; if (piVar1 == (int *)0x0) { return; } } if (((piVar1 != (int *)0x0) && (*(int *)(*piVar1 + -4) != 1)) && (DAT_008379e4 != (int *)0x0)) { (**(code **)(*DAT_008379e4 + 0x90))(piVar1); (**(code **)(*param_1 + 0x144))(); } } return; } // --- FUN_004db900 at 0x004DB900 (size: 97) --- int __thiscall FUN_004db900(int param_1,int param_2) { undefined4 *puVar1; int iVar2; undefined4 *puVar3; if (param_1 != param_2) { FUN_0049f850(); for (puVar1 = *(undefined4 **)(param_2 + 4); puVar1 != (undefined4 *)0x0; puVar1 = (undefined4 *)puVar1[1]) { puVar3 = (undefined4 *)FUN_005df0f5(0xc); if (puVar3 != (undefined4 *)0x0) { *puVar3 = *puVar1; puVar3[1] = 0; puVar3[2] = 0; if (*(int *)(param_1 + 4) == 0) { *(undefined4 **)(param_1 + 4) = puVar3; } else { iVar2 = *(int *)(param_1 + 8); *(undefined4 **)(iVar2 + 4) = puVar3; puVar3[2] = iVar2; } *(undefined4 **)(param_1 + 8) = puVar3; *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1; } if (puVar1 == (undefined4 *)0x0) { return param_1; } } } return param_1; } // --- FUN_004db970 at 0x004DB970 (size: 73) --- void __fastcall FUN_004db970(int param_1) { undefined *puVar1; undefined4 *puVar2; undefined4 local_4; puVar1 = PTR_DAT_00818558; local_4 = *(undefined4 *)(param_1 + 0x68); puVar2 = (undefined4 *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,local_4,0); if ((puVar2 != (undefined4 *)puVar1) || (puVar2 = puVar2 + -1, puVar2 != (undefined4 *)puVar1)) { puVar2 = puVar2 + 1; } FUN_004dbcd0(*puVar2); return; } // --- FUN_004db9c0 at 0x004DB9C0 (size: 143) --- undefined4 * __thiscall FUN_004db9c0(undefined4 *param_1,undefined4 param_2) { undefined *puVar1; uint *puVar2; undefined4 uVar3; uint uVar4; int iVar5; undefined4 *puVar6; param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; *param_1 = &PTR_LAB_007bf7d8; puVar1 = PTR_DAT_00818558; puVar2 = (uint *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,¶m_2,param_2,0); if (puVar2 == (uint *)puVar1) { puVar2 = puVar2 + -1; } uVar4 = *puVar2; param_1[0x1a] = uVar4; if (uVar4 < 0x18) { param_1[0x18] = param_1 + 1; } else { uVar3 = thunk_FUN_005df0f5(uVar4 << 2); param_1[0x18] = uVar3; } param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a]; puVar6 = (undefined4 *)param_1[0x18]; for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) { *puVar6 = 0; puVar6 = puVar6 + 1; } for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) { *(undefined1 *)puVar6 = 0; puVar6 = (undefined4 *)((int)puVar6 + 1); } return param_1; } // --- FUN_004dba50 at 0x004DBA50 (size: 143) --- undefined4 * __thiscall FUN_004dba50(undefined4 *param_1,undefined4 param_2) { undefined *puVar1; uint *puVar2; undefined4 uVar3; uint uVar4; int iVar5; undefined4 *puVar6; param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; *param_1 = &PTR_FUN_007bf7dc; puVar1 = PTR_DAT_00818558; puVar2 = (uint *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,¶m_2,param_2,0); if (puVar2 == (uint *)puVar1) { puVar2 = puVar2 + -1; } uVar4 = *puVar2; param_1[0x1a] = uVar4; if (uVar4 < 0x18) { param_1[0x18] = param_1 + 1; } else { uVar3 = thunk_FUN_005df0f5(uVar4 << 2); param_1[0x18] = uVar3; } param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a]; puVar6 = (undefined4 *)param_1[0x18]; for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) { *puVar6 = 0; puVar6 = puVar6 + 1; } for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) { *(undefined1 *)puVar6 = 0; puVar6 = (undefined4 *)((int)puVar6 + 1); } return param_1; } // --- FUN_004dbae0 at 0x004DBAE0 (size: 143) --- undefined4 * __thiscall FUN_004dbae0(undefined4 *param_1,undefined4 param_2) { undefined *puVar1; uint *puVar2; undefined4 uVar3; uint uVar4; int iVar5; undefined4 *puVar6; param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; *param_1 = &PTR_FUN_007bf7e0; puVar1 = PTR_DAT_00818558; puVar2 = (uint *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,¶m_2,param_2,0); if (puVar2 == (uint *)puVar1) { puVar2 = puVar2 + -1; } uVar4 = *puVar2; param_1[0x1a] = uVar4; if (uVar4 < 0x18) { param_1[0x18] = param_1 + 1; } else { uVar3 = thunk_FUN_005df0f5(uVar4 << 2); param_1[0x18] = uVar3; } param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a]; puVar6 = (undefined4 *)param_1[0x18]; for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) { *puVar6 = 0; puVar6 = puVar6 + 1; } for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) { *(undefined1 *)puVar6 = 0; puVar6 = (undefined4 *)((int)puVar6 + 1); } return param_1; } // --- FUN_004dbb70 at 0x004DBB70 (size: 143) --- undefined4 * __thiscall FUN_004dbb70(undefined4 *param_1,undefined4 param_2) { undefined *puVar1; uint *puVar2; undefined4 uVar3; uint uVar4; int iVar5; undefined4 *puVar6; param_1[0x18] = 0; param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; *param_1 = &PTR_FUN_007bf7e4; puVar1 = PTR_DAT_00818558; puVar2 = (uint *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,¶m_2,param_2,0); if (puVar2 == (uint *)puVar1) { puVar2 = puVar2 + -1; } uVar4 = *puVar2; param_1[0x1a] = uVar4; if (uVar4 < 0x18) { param_1[0x18] = param_1 + 1; } else { uVar3 = thunk_FUN_005df0f5(uVar4 << 2); param_1[0x18] = uVar3; } param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a]; puVar6 = (undefined4 *)param_1[0x18]; for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) { *puVar6 = 0; puVar6 = puVar6 + 1; } for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) { *(undefined1 *)puVar6 = 0; puVar6 = (undefined4 *)((int)puVar6 + 1); } return param_1; } // --- FUN_004dbc00 at 0x004DBC00 (size: 202) --- uint __thiscall FUN_004dbc00(int param_1,uint param_2) { int iVar1; int iVar2; int iVar3; int iVar4; int *piVar5; if (param_2 == *(uint *)(param_1 + 0x68)) { return param_2 & 0xffffff00; } iVar3 = *(int *)(param_1 + 0x6c); iVar1 = 0; do { if (iVar3 == 0) { if (*(void **)(param_1 + 0x60) != (void *)(param_1 + 4)) { operator_delete__(*(void **)(param_1 + 0x60)); } *(undefined4 *)(param_1 + 0x60) = 0; *(undefined4 *)(param_1 + 100) = 0; *(undefined4 *)(param_1 + 0x68) = 0; *(undefined4 *)(param_1 + 0x6c) = 0; FUN_00693b20(param_2); while (iVar1 != 0) { iVar3 = *(int *)(iVar1 + 4); FUN_004dc0e0(iVar1); iVar1 = iVar3; } return 1; } piVar5 = *(int **)(param_1 + 100); while (piVar5 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) { if (**(int **)(param_1 + 100) != 0) { piVar5 = *(int **)(param_1 + 100); iVar4 = *piVar5; goto LAB_004dbc4e; } piVar5 = *(int **)(param_1 + 100) + 1; *(int **)(param_1 + 100) = piVar5; } piVar5 = (int *)0x0; iVar4 = 0; LAB_004dbc4e: iVar3 = *piVar5; if (iVar3 == iVar4) { LAB_004dbc61: *piVar5 = *(int *)(iVar3 + 4); } else { do { iVar2 = iVar3; iVar3 = *(int *)(iVar2 + 4); } while (iVar3 != iVar4); if (iVar2 == 0) goto LAB_004dbc61; *(undefined4 *)(iVar2 + 4) = *(undefined4 *)(iVar3 + 4); } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1; *(int *)(iVar4 + 4) = iVar1; iVar3 = *(int *)(param_1 + 0x6c); iVar1 = iVar4; } while( true ); } // --- FUN_004dbcd0 at 0x004DBCD0 (size: 289) --- undefined4 __thiscall FUN_004dbcd0(int param_1,int param_2) { uint *puVar1; int iVar2; uint *puVar3; int *piVar4; undefined4 *puVar5; undefined4 *puVar6; uint *puVar7; if (param_2 == *(int *)(param_1 + 0x68)) { return 0; } iVar2 = *(int *)(param_1 + 0x6c); puVar3 = (uint *)0x0; do { if (iVar2 == 0) { if (*(void **)(param_1 + 0x60) != (void *)(param_1 + 4)) { operator_delete__(*(void **)(param_1 + 0x60)); } *(undefined4 *)(param_1 + 0x60) = 0; *(undefined4 *)(param_1 + 100) = 0; *(undefined4 *)(param_1 + 0x68) = 0; *(undefined4 *)(param_1 + 0x6c) = 0; FUN_00693b20(param_2); puVar6 = (undefined4 *)PTR_DAT_00818558; while (puVar3 != (uint *)0x0) { param_2 = *(int *)(param_1 + 0x68); puVar7 = (uint *)puVar3[1]; PTR_DAT_00818558 = (undefined *)puVar6; if (param_2 * 2 < *(int *)(param_1 + 0x6c) + 1) { puVar5 = (undefined4 *)FUN_00422d20(PTR_DAT_00818554,puVar6,¶m_2,param_2,0); if ((puVar5 != puVar6) || (puVar5 = puVar5 + -1, puVar5 != puVar6)) { puVar5 = puVar5 + 1; } FUN_004dbcd0(*puVar5); } puVar1 = (uint *)(*(int *)(param_1 + 0x60) + (*puVar3 % *(uint *)(param_1 + 0x68)) * 4); puVar3[1] = *puVar1; *puVar1 = (uint)puVar3; if (puVar1 < *(uint **)(param_1 + 100)) { *(uint **)(param_1 + 100) = puVar1; } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1; puVar6 = (undefined4 *)PTR_DAT_00818558; puVar3 = puVar7; } PTR_DAT_00818558 = (undefined *)puVar6; return 1; } piVar4 = *(int **)(param_1 + 100); while (piVar4 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) { if (**(int **)(param_1 + 100) != 0) { puVar6 = *(undefined4 **)(param_1 + 100); puVar7 = (uint *)*puVar6; goto LAB_004dbd21; } piVar4 = *(int **)(param_1 + 100) + 1; *(int **)(param_1 + 100) = piVar4; } puVar6 = (undefined4 *)0x0; puVar7 = (uint *)0x0; LAB_004dbd21: FUN_00428ba0(param_1,puVar6,puVar7); puVar7[1] = (uint)puVar3; iVar2 = *(int *)(param_1 + 0x6c); puVar3 = puVar7; } while( true ); } // --- FUN_004dbe00 at 0x004DBE00 (size: 202) --- uint __thiscall FUN_004dbe00(int param_1,uint param_2) { int iVar1; int iVar2; int iVar3; int iVar4; int *piVar5; if (param_2 == *(uint *)(param_1 + 0x68)) { return param_2 & 0xffffff00; } iVar3 = *(int *)(param_1 + 0x6c); iVar1 = 0; do { if (iVar3 == 0) { if (*(void **)(param_1 + 0x60) != (void *)(param_1 + 4)) { operator_delete__(*(void **)(param_1 + 0x60)); } *(undefined4 *)(param_1 + 0x60) = 0; *(undefined4 *)(param_1 + 100) = 0; *(undefined4 *)(param_1 + 0x68) = 0; *(undefined4 *)(param_1 + 0x6c) = 0; FUN_00693b20(param_2); while (iVar1 != 0) { iVar3 = *(int *)(iVar1 + 4); FUN_004dc310(iVar1); iVar1 = iVar3; } return 1; } piVar5 = *(int **)(param_1 + 100); while (piVar5 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) { if (**(int **)(param_1 + 100) != 0) { piVar5 = *(int **)(param_1 + 100); iVar4 = *piVar5; goto LAB_004dbe4e; } piVar5 = *(int **)(param_1 + 100) + 1; *(int **)(param_1 + 100) = piVar5; } piVar5 = (int *)0x0; iVar4 = 0; LAB_004dbe4e: iVar3 = *piVar5; if (iVar3 == iVar4) { LAB_004dbe61: *piVar5 = *(int *)(iVar3 + 4); } else { do { iVar2 = iVar3; iVar3 = *(int *)(iVar2 + 4); } while (iVar3 != iVar4); if (iVar2 == 0) goto LAB_004dbe61; *(undefined4 *)(iVar2 + 4) = *(undefined4 *)(iVar3 + 4); } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1; *(int *)(iVar4 + 4) = iVar1; iVar3 = *(int *)(param_1 + 0x6c); iVar1 = iVar4; } while( true ); } // --- FUN_004dbed0 at 0x004DBED0 (size: 73) --- void __fastcall FUN_004dbed0(int param_1) { undefined *puVar1; undefined4 *puVar2; undefined4 local_4; puVar1 = PTR_DAT_00818558; local_4 = *(undefined4 *)(param_1 + 0x68); puVar2 = (undefined4 *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,local_4,0); if ((puVar2 != (undefined4 *)puVar1) || (puVar2 = puVar2 + -1, puVar2 != (undefined4 *)puVar1)) { puVar2 = puVar2 + 1; } FUN_004dbc00(*puVar2); return; } // --- FUN_004dbf20 at 0x004DBF20 (size: 92) --- void __fastcall FUN_004dbf20(int param_1) { LONG LVar1; undefined4 *puVar2; int local_4; if ((*(int *)(param_1 + 0x60c) != 0) && (DAT_008379e4 != 0)) { local_4 = param_1; FUN_004a2170(0,DAT_008379e4 + 0x144); FUN_0046a740(&local_4); puVar2 = (undefined4 *)(local_4 + -0x14); LVar1 = InterlockedDecrement((LONG *)(local_4 + -0x10)); if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) { (**(code **)*puVar2)(1); } } return; } // --- FUN_004dbf80 at 0x004DBF80 (size: 143) --- int FUN_004dbf80(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4, undefined4 param_5,undefined **param_6) { int *piVar1; int iVar2; if (param_1 == 0) { param_6 = &PTR_FUN_007a3c38; FUN_00431730(); return 0; } iVar2 = 0; piVar1 = (int *)FUN_0046f670(1,0); if (piVar1 != (int *)0x0) { iVar2 = (**(code **)(*piVar1 + 0x94))(0x10000034); if (iVar2 == 0) { iVar2 = 0; } else { iVar2 = iVar2 + -0x20; if (iVar2 != 0) { FUN_00488c10(param_2,param_3,param_4,param_5,¶m_6); FUN_004f3af0(iVar2); } } } param_6 = &PTR_FUN_007a3c38; FUN_00431730(); return iVar2; } // --- FUN_004dc010 at 0x004DC010 (size: 120) --- uint __thiscall FUN_004dc010(int param_1,uint *param_2) { uint *puVar1; int iVar2; uint uVar3; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dc03b: if ((int)(*(uint *)(param_1 + 0x68) * 2) < *(int *)(param_1 + 0x6c) + 1) { FUN_004db970(); } uVar3 = *param_2 % *(uint *)(param_1 + 0x68); iVar2 = *(int *)(param_1 + 0x60); param_2[1] = *(uint *)(iVar2 + uVar3 * 4); *(uint **)(iVar2 + uVar3 * 4) = param_2; uVar3 = iVar2 + uVar3 * 4; if (uVar3 < *(uint *)(param_1 + 100)) { *(uint *)(param_1 + 100) = uVar3; } iVar2 = *(int *)(param_1 + 0x6c) + 1; *(int *)(param_1 + 0x6c) = iVar2; return CONCAT31((int3)((uint)iVar2 >> 8),1); } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { return (uint)puVar1 & 0xffffff00; } goto LAB_004dc03b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dc090 at 0x004DC090 (size: 73) --- void __fastcall FUN_004dc090(int param_1) { undefined *puVar1; undefined4 *puVar2; undefined4 local_4; puVar1 = PTR_DAT_00818558; local_4 = *(undefined4 *)(param_1 + 0x68); puVar2 = (undefined4 *)FUN_00422d20(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,local_4,0); if ((puVar2 != (undefined4 *)puVar1) || (puVar2 = puVar2 + -1, puVar2 != (undefined4 *)puVar1)) { puVar2 = puVar2 + 1; } FUN_004dbe00(*puVar2); return; } // --- FUN_004dc0e0 at 0x004DC0E0 (size: 62) --- void __thiscall FUN_004dc0e0(int param_1,uint *param_2) { uint *puVar1; if (*(int *)(param_1 + 0x68) * 2 < *(int *)(param_1 + 0x6c) + 1) { FUN_004dbed0(); } puVar1 = (uint *)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); param_2[1] = *puVar1; *puVar1 = (uint)param_2; if (puVar1 < *(uint **)(param_1 + 100)) { *(uint **)(param_1 + 100) = puVar1; } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1; return; } // --- FUN_004dc120 at 0x004DC120 (size: 92) --- undefined4 __thiscall FUN_004dc120(int param_1,uint *param_2) { uint *puVar1; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dc14b: FUN_004dc010(param_2); LAB_004dc153: FUN_00410820(param_2 + 2,*(undefined4 *)(param_1 + 0x74)); return 1; } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { FUN_00410880(param_2 + 2); goto LAB_004dc153; } goto LAB_004dc14b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dc180 at 0x004DC180 (size: 120) --- uint __thiscall FUN_004dc180(int param_1,uint *param_2) { uint *puVar1; int iVar2; uint uVar3; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dc1ab: if ((int)(*(uint *)(param_1 + 0x68) * 2) < *(int *)(param_1 + 0x6c) + 1) { FUN_004dbed0(); } uVar3 = *param_2 % *(uint *)(param_1 + 0x68); iVar2 = *(int *)(param_1 + 0x60); param_2[1] = *(uint *)(iVar2 + uVar3 * 4); *(uint **)(iVar2 + uVar3 * 4) = param_2; uVar3 = iVar2 + uVar3 * 4; if (uVar3 < *(uint *)(param_1 + 100)) { *(uint *)(param_1 + 100) = uVar3; } iVar2 = *(int *)(param_1 + 0x6c) + 1; *(int *)(param_1 + 0x6c) = iVar2; return CONCAT31((int3)((uint)iVar2 >> 8),1); } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { return (uint)puVar1 & 0xffffff00; } goto LAB_004dc1ab; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dc200 at 0x004DC200 (size: 92) --- undefined4 __thiscall FUN_004dc200(int param_1,uint *param_2) { uint *puVar1; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dc22b: FUN_004dc180(param_2); LAB_004dc233: FUN_00410820(param_2 + 2,*(undefined4 *)(param_1 + 0x74)); return 1; } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { FUN_00410880(param_2 + 2); goto LAB_004dc233; } goto LAB_004dc22b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dc260 at 0x004DC260 (size: 85) --- undefined4 __thiscall FUN_004dc260(int param_1,uint *param_2) { uint *puVar1; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dc28b: FUN_004dc010(param_2); FUN_00410820(param_2 + 2,*(undefined4 *)(param_1 + 0x74)); return 1; } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { return 0; } goto LAB_004dc28b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dc2c0 at 0x004DC2C0 (size: 69) --- undefined4 __thiscall FUN_004dc2c0(int param_1,uint *param_2) { uint *puVar1; undefined4 uVar2; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); if (puVar1 != (uint *)0x0) { while (*puVar1 != *param_2) { puVar1 = (uint *)puVar1[1]; if (puVar1 == (uint *)0x0) { return 0; } } if (puVar1 != (uint *)0x0) { uVar2 = FUN_004dc120(); return uVar2; } } return 0; } // --- FUN_004dc310 at 0x004DC310 (size: 62) --- void __thiscall FUN_004dc310(int param_1,uint *param_2) { uint *puVar1; if (*(int *)(param_1 + 0x68) * 2 < *(int *)(param_1 + 0x6c) + 1) { FUN_004dc090(); } puVar1 = (uint *)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); param_2[1] = *puVar1; *puVar1 = (uint)param_2; if (puVar1 < *(uint **)(param_1 + 100)) { *(uint **)(param_1 + 100) = puVar1; } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1; return; } // --- FUN_004dc350 at 0x004DC350 (size: 85) --- undefined4 __thiscall FUN_004dc350(int param_1,uint *param_2) { uint *puVar1; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dc37b: FUN_004dc180(param_2); FUN_00410820(param_2 + 2,*(undefined4 *)(param_1 + 0x74)); return 1; } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { return 0; } goto LAB_004dc37b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dc3b0 at 0x004DC3B0 (size: 69) --- undefined4 __thiscall FUN_004dc3b0(int param_1,uint *param_2) { uint *puVar1; undefined4 uVar2; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); if (puVar1 != (uint *)0x0) { while (*puVar1 != *param_2) { puVar1 = (uint *)puVar1[1]; if (puVar1 == (uint *)0x0) { return 0; } } if (puVar1 != (uint *)0x0) { uVar2 = FUN_004dc200(); return uVar2; } } return 0; } // --- FUN_004dc7d0 at 0x004DC7D0 (size: 82) --- undefined4 * __thiscall FUN_004dc7d0(undefined4 *param_1,byte param_2) { *param_1 = &PTR_FUN_007bf7e8; FUN_005870f0(); param_1[1] = &PTR_LAB_007bf7d8; if ((undefined4 *)param_1[0x19] != param_1 + 2) { operator_delete__((undefined4 *)param_1[0x19]); } param_1[0x19] = 0; param_1[0x1a] = 0; param_1[0x1b] = 0; param_1[0x1c] = 0; if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004dc830 at 0x004DC830 (size: 178) --- char __thiscall FUN_004dc830(int param_1,uint *param_2,undefined4 param_3) { char cVar1; uint *puVar2; puVar2 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar2 == (uint *)0x0) { LAB_004dc85b: puVar2 = (uint *)FUN_005df0f5(0x20); if (puVar2 == (uint *)0x0) { puVar2 = (uint *)0x0; } else { *puVar2 = *param_2; puVar2[1] = 0; puVar2[2] = 0; puVar2[3] = 0; puVar2[4] = (uint)&PTR_FUN_007a3c34; puVar2[5] = 0; puVar2[6] = 0; puVar2[7] = 0; FUN_004db900(param_3); } cVar1 = FUN_004dc260(puVar2); if ((cVar1 == '\0') && (puVar2 != (uint *)0x0)) { puVar2[4] = (uint)&PTR_FUN_007a3c34; FUN_0049f850(); operator_delete(puVar2); cVar1 = '\0'; } return cVar1; } if (*puVar2 == *param_2) { if (puVar2 != (uint *)0x0) { cVar1 = FUN_004dc2c0(param_2); return cVar1; } goto LAB_004dc85b; } puVar2 = (uint *)puVar2[1]; } while( true ); } // --- FUN_004dc8f0 at 0x004DC8F0 (size: 167) --- char __thiscall FUN_004dc8f0(int param_1,uint *param_2,uint *param_3) { char cVar1; uint *puVar2; puVar2 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar2 == (uint *)0x0) { LAB_004dc91b: puVar2 = (uint *)FUN_005df0f5(0x20); if (puVar2 == (uint *)0x0) { puVar2 = (uint *)0x0; } else { *puVar2 = *param_2; puVar2[1] = 0; puVar2[2] = 0; puVar2[3] = 0; puVar2[4] = *param_3; puVar2[5] = param_3[1]; puVar2[6] = param_3[2]; puVar2[7] = param_3[3]; } cVar1 = FUN_004dc350(puVar2); if ((cVar1 == '\0') && (puVar2 != (uint *)0x0)) { operator_delete(puVar2); } return cVar1; } if (*puVar2 == *param_2) { if (puVar2 != (uint *)0x0) { cVar1 = FUN_004dc3b0(param_2); return cVar1; } goto LAB_004dc91b; } puVar2 = (uint *)puVar2[1]; } while( true ); } // --- FUN_004dc9a0 at 0x004DC9A0 (size: 177) --- void __fastcall FUN_004dc9a0(int param_1) { int iVar1; void *pvVar2; void *pvVar3; int *piVar4; void *pvVar5; iVar1 = *(int *)(param_1 + 0x6c); do { if (iVar1 == 0) { return; } piVar4 = *(int **)(param_1 + 100); while (piVar4 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) { if (**(int **)(param_1 + 100) != 0) { piVar4 = *(int **)(param_1 + 100); pvVar5 = (void *)*piVar4; goto LAB_004dc9de; } piVar4 = *(int **)(param_1 + 100) + 1; *(int **)(param_1 + 100) = piVar4; } piVar4 = (int *)0x0; pvVar5 = (void *)0x0; LAB_004dc9de: pvVar3 = (void *)*piVar4; if (pvVar3 == pvVar5) { LAB_004dc9f1: *piVar4 = *(int *)((int)pvVar3 + 4); } else { do { pvVar2 = pvVar3; pvVar3 = *(void **)((int)pvVar2 + 4); } while (pvVar3 != pvVar5); if (pvVar2 == (void *)0x0) goto LAB_004dc9f1; *(undefined4 *)((int)pvVar2 + 4) = *(undefined4 *)((int)pvVar3 + 4); } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1; if (pvVar5 != (void *)0x0) { *(undefined ***)((int)pvVar5 + 0x10) = &PTR_FUN_007a3c34; while (pvVar3 = *(void **)((int)pvVar5 + 0x14), pvVar3 != (void *)0x0) { iVar1 = *(int *)((int)pvVar3 + 4); *(int *)((int)pvVar5 + 0x14) = iVar1; if (iVar1 == 0) { *(undefined4 *)((int)pvVar5 + 0x18) = 0; } else { *(undefined4 *)(iVar1 + 8) = 0; } if (pvVar3 != (void *)0x0) { operator_delete(pvVar3); } *(int *)((int)pvVar5 + 0x1c) = *(int *)((int)pvVar5 + 0x1c) + -1; } operator_delete(pvVar5); } iVar1 = *(int *)(param_1 + 0x6c); } while( true ); } // --- FUN_004dca60 at 0x004DCA60 (size: 120) --- uint __thiscall FUN_004dca60(int param_1,uint *param_2) { uint *puVar1; int iVar2; uint uVar3; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dca8b: if ((int)(*(uint *)(param_1 + 0x68) * 2) < *(int *)(param_1 + 0x6c) + 1) { FUN_004dc090(); } uVar3 = *param_2 % *(uint *)(param_1 + 0x68); iVar2 = *(int *)(param_1 + 0x60); param_2[1] = *(uint *)(iVar2 + uVar3 * 4); *(uint **)(iVar2 + uVar3 * 4) = param_2; uVar3 = iVar2 + uVar3 * 4; if (uVar3 < *(uint *)(param_1 + 100)) { *(uint *)(param_1 + 100) = uVar3; } iVar2 = *(int *)(param_1 + 0x6c) + 1; *(int *)(param_1 + 0x6c) = iVar2; return CONCAT31((int3)((uint)iVar2 >> 8),1); } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { return (uint)puVar1 & 0xffffff00; } goto LAB_004dca8b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dcae0 at 0x004DCAE0 (size: 92) --- undefined4 __thiscall FUN_004dcae0(int param_1,uint *param_2) { uint *puVar1; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004dcb0b: FUN_004dca60(param_2); LAB_004dcb13: FUN_00410820(param_2 + 2,*(undefined4 *)(param_1 + 0x74)); return 1; } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { FUN_00410880(param_2 + 2); goto LAB_004dcb13; } goto LAB_004dcb0b; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004dcb40 at 0x004DCB40 (size: 183) --- undefined4 * __thiscall FUN_004dcb40(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { FUN_004f3a00(param_2,param_3); param_1[0x180] = &PTR_FUN_007ccb60; *param_1 = &PTR_FUN_007bfaa0; param_1[0x17c] = &PTR_FUN_007bfa98; param_1[0x180] = &PTR_FUN_007bf7f0; param_1[0x181] = 0; param_1[0x182] = 0; param_1[0x183] = 0; param_1[0x184] = 0; param_1[0x185] = 0; param_1[0x186] = 0; param_1[0x187] = 0; param_1[0x188] = &PTR_FUN_007bf7e8; FUN_004db9c0(0x17); param_1[0x1a5] = 0; param_1[0x1a6] = 0; param_1[0x1a7] = 0; param_1[0x1a8] = 0; param_1[0x1aa] = 0; param_1[0x1ab] = 0; param_1[0x1ac] = 0; param_1[0x1a9] = &PTR_FUN_00795074; return param_1; } // --- FUN_004dcc30 at 0x004DCC30 (size: 212) --- void __fastcall FUN_004dcc30(undefined4 *param_1) { *param_1 = &PTR_FUN_007bfaa0; param_1[0x17c] = &PTR_FUN_007bfa98; param_1[0x180] = &PTR_FUN_007bf7f0; FUN_00478560(param_1[0x1a5]); param_1[0x1a5] = 0; FUN_00478560(param_1[0x1a6]); param_1[0x1a6] = 0; FUN_00478560(param_1[0x1a7]); param_1[0x1a7] = 0; FUN_00478560(param_1[0x1a8]); param_1[0x1a8] = 0; param_1[0x1a9] = &PTR_FUN_00795074; FUN_00405210(); param_1[0x188] = &PTR_FUN_007bf7e8; FUN_005870f0(); param_1[0x189] = &PTR_LAB_007bf7d8; if ((undefined4 *)param_1[0x1a1] != param_1 + 0x18a) { operator_delete__((undefined4 *)param_1[0x1a1]); } param_1[0x1a1] = 0; param_1[0x1a2] = 0; param_1[0x1a3] = 0; param_1[0x1a4] = 0; param_1[0x180] = &PTR_FUN_007ccb60; FUN_0043c610(); FUN_004f3a50(); return; } // --- FUN_004dcd40 at 0x004DCD40 (size: 1269) --- undefined4 __fastcall FUN_004dcd40(int param_1) { char *pcVar1; char *pcVar2; int iVar3; int *piVar4; LONG LVar5; undefined4 uVar6; undefined4 *puVar7; undefined4 *puVar8; undefined4 *local_1d0; int *local_1cc; int iStack_1c8; undefined *puStack_1c4; undefined4 *puStack_1c0; int *piStack_1bc; undefined4 *puStack_1b8; int *piStack_1b4; int local_1b0; int iStack_1ac; int iStack_1a8; char *pcStack_1a4; undefined1 local_1a0 [120]; undefined1 auStack_128 [144]; undefined1 auStack_98 [148]; if (*(int *)(param_1 + 0x694) != 0) { return 0; } local_1b0 = param_1; FUN_006823d0(); local_1d0 = (undefined4 *)0x0; local_1cc = (int *)0x0; FUN_0042a2d0(0x8e); if (local_1cc != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_1cc + 0xac))(7); } iStack_1c8 = FUN_00429a00(); FUN_0042c290(&iStack_1c8,&local_1d0); FUN_0042a2d0(0xc3); if (local_1cc != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_1cc + 0xac))(0x10000001); } iStack_1c8 = FUN_00429a00(); FUN_0042c290(&iStack_1c8,&local_1d0); FUN_0042a2d0(0xac); if (local_1cc != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_1cc + 0x74))(1); } iStack_1c8 = FUN_00429a00(); FUN_0042c290(&iStack_1c8,&local_1d0); FUN_0042dc80(); FUN_0042c9c0(DAT_0084152c,0x10000004); FUN_0042a2d0(0xc5); if (local_1cc != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_1cc + 0xc4))(auStack_98); } iStack_1c8 = FUN_00429a00(); FUN_0042c290(&iStack_1c8,&local_1d0); FUN_0042a2d0(0xa6); FUN_004db540(&iStack_1ac); pcVar1 = "\\*.keymap"; do { pcVar2 = pcVar1; pcVar1 = pcVar2 + 1; } while (*pcVar2 != '\0'); FUN_00404ef0("\\*.keymap",pcVar2 + -0x7bfbe8); FUN_00405210(); FUN_0040d4a0(&iStack_1ac,param_1 + 0x6a4,0,0); puVar7 = *(undefined4 **)(param_1 + 0x6a8); iStack_1c8 = 0; for (; puVar7 != (undefined4 *)0x0; puVar7 = (undefined4 *)puVar7[1]) { thunk_FUN_0040c720(puVar7); pcVar1 = (char *)*puVar7; pcStack_1a4 = pcVar1; InterlockedIncrement((LONG *)(pcVar1 + -0x10)); iVar3 = _stricmp(pcVar1,*(char **)(DAT_008379e4 + 0x144)); if (iVar3 == 0) { puStack_1c0 = (undefined4 *)0x0; piStack_1bc = (int *)0x0; FUN_0042a2d0(0xab); if (piStack_1bc != (int *)0x0) { FUN_00429b10(); (**(code **)(*piStack_1bc + 0x7c))(iStack_1c8); } puStack_1c4 = (undefined *)FUN_00429a00(); FUN_0042c290(&puStack_1c4,&puStack_1c0); if (puStack_1c0 != (undefined4 *)0x0) { iVar3 = puStack_1c0[1]; puStack_1c0[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*puStack_1c0)(1); } puStack_1c0 = (undefined4 *)0x0; } if (piStack_1bc != (int *)0x0) { iVar3 = piStack_1bc[1]; piStack_1bc[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*piStack_1bc)(1); } piStack_1bc = (int *)0x0; } } puStack_1b8 = (undefined4 *)0x0; piStack_1b4 = (int *)0x0; FUN_0042a2d0(0xa7); FUN_0042dc80(); puStack_1c4 = PTR_DAT_00818340; InterlockedIncrement((LONG *)(PTR_DAT_00818340 + -0x10)); piVar4 = (int *)FUN_00403350(&iStack_1a8,0); iVar3 = *(int *)(*piVar4 + -4); if (iVar3 != 1) { FUN_00402490(*piVar4,iVar3 + -1); } puVar8 = (undefined4 *)(iStack_1a8 + -0x14); LVar5 = InterlockedDecrement((LONG *)(iStack_1a8 + -0x10)); if ((LVar5 == 0) && (puVar8 != (undefined4 *)0x0)) { (**(code **)*puVar8)(1); } FUN_0042cbe0(&puStack_1c4,1); puVar8 = (undefined4 *)(puStack_1c4 + -0x14); LVar5 = InterlockedDecrement((LONG *)(puStack_1c4 + -0x10)); if ((LVar5 == 0) && (puVar8 != (undefined4 *)0x0)) { (**(code **)*puVar8)(1); } if (piStack_1b4 != (int *)0x0) { FUN_00429b10(); (**(code **)(*piStack_1b4 + 0xc4))(auStack_128); } if (local_1cc != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_1cc + 0xfc))(&puStack_1b8); } iStack_1c8 = iStack_1c8 + 1; FUN_0042e590(); if (puStack_1b8 != (undefined4 *)0x0) { iVar3 = puStack_1b8[1]; puStack_1b8[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*puStack_1b8)(1); } puStack_1b8 = (undefined4 *)0x0; } if (piStack_1b4 != (int *)0x0) { iVar3 = piStack_1b4[1]; piStack_1b4[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*piStack_1b4)(1); } piStack_1b4 = (int *)0x0; } LVar5 = InterlockedDecrement((LONG *)(pcVar1 + -0x10)); if ((LVar5 == 0) && (pcVar1 + -0x14 != (char *)0x0)) { (*(code *)**(undefined4 **)(pcVar1 + -0x14))(1); } param_1 = local_1b0; } local_1b0 = FUN_00429a00(); FUN_0042c290(&local_1b0,&local_1d0); uVar6 = FUN_00478810(local_1a0); *(undefined4 *)(param_1 + 0x694) = uVar6; LVar5 = InterlockedDecrement((LONG *)(iStack_1ac + -0x10)); if ((LVar5 == 0) && ((undefined4 *)(iStack_1ac + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(iStack_1ac + -0x14))(1); } FUN_0042e590(); if (local_1d0 != (undefined4 *)0x0) { iVar3 = local_1d0[1]; local_1d0[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*local_1d0)(1); } local_1d0 = (undefined4 *)0x0; } if (local_1cc != (int *)0x0) { iVar3 = local_1cc[1]; local_1cc[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*local_1cc)(1); } local_1cc = (int *)0x0; } FUN_00681f60(); return 1; } // --- FUN_004dd240 at 0x004DD240 (size: 512) --- undefined4 __fastcall FUN_004dd240(int param_1) { int iVar1; undefined4 uVar2; undefined4 *local_11c; int *local_118; undefined4 uStack_114; undefined1 local_110 [120]; undefined1 auStack_98 [148]; if (*(int *)(param_1 + 0x698) != 0) { return 0; } FUN_006823d0(); local_11c = (undefined4 *)0x0; local_118 = (int *)0x0; FUN_0042a2d0(0x8e); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xac))(5); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0xc3); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xac))(0x10000001); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0xac); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0x74))(1); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042dc80(); FUN_0042c9c0(DAT_00841534,0x10000004); FUN_0042a2d0(0xc5); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xc4))(auStack_98); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); uVar2 = FUN_00478810(local_110); *(undefined4 *)(param_1 + 0x698) = uVar2; FUN_0042e590(); if (local_11c != (undefined4 *)0x0) { iVar1 = local_11c[1]; local_11c[1] = iVar1 + -1; if (iVar1 + -1 == 0) { (**(code **)*local_11c)(1); } local_11c = (undefined4 *)0x0; } if (local_118 != (int *)0x0) { iVar1 = local_118[1]; local_118[1] = iVar1 + -1; if (iVar1 + -1 == 0) { (**(code **)*local_118)(1); } local_118 = (int *)0x0; } FUN_00681f60(); return 1; } // --- FUN_004dd440 at 0x004DD440 (size: 617) --- undefined4 __thiscall FUN_004dd440(int param_1,int param_2) { LONG LVar1; undefined4 uVar2; int iVar3; undefined4 *local_11c; int *local_118; undefined4 uStack_114; undefined1 local_110 [120]; undefined1 auStack_98 [148]; if (*(int *)(param_1 + 0x69c) != 0) { LVar1 = InterlockedDecrement((LONG *)(param_2 + -0x10)); if ((LVar1 == 0) && ((undefined4 *)(param_2 + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(param_2 + -0x14))(1); } return 0; } FUN_006823d0(); local_11c = (undefined4 *)0x0; local_118 = (int *)0x0; FUN_0042a2d0(0x8e); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xac))(3); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0xc3); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xac))(0x10000001); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0xac); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0x74))(1); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042dc80(); FUN_0042c9c0(DAT_00841528,0x10000004); iVar3 = param_2; InterlockedIncrement((LONG *)(param_2 + -0x10)); FUN_0042e9f0(DAT_00841538,iVar3); FUN_0042a2d0(0xc5); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xc4))(auStack_98); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); uVar2 = FUN_00478810(local_110); *(undefined4 *)(param_1 + 0x69c) = uVar2; FUN_0042e590(); if (local_11c != (undefined4 *)0x0) { iVar3 = local_11c[1]; local_11c[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*local_11c)(1); } local_11c = (undefined4 *)0x0; } if (local_118 != (int *)0x0) { iVar3 = local_118[1]; local_118[1] = iVar3 + -1; if (iVar3 + -1 == 0) { (**(code **)*local_118)(1); } local_118 = (int *)0x0; } FUN_00681f60(); LVar1 = InterlockedDecrement((LONG *)(param_2 + -0x10)); if ((LVar1 == 0) && ((undefined4 *)(param_2 + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(param_2 + -0x14))(1); } return 1; } // --- FUN_004dd6b0 at 0x004DD6B0 (size: 697) --- undefined4 __thiscall FUN_004dd6b0(int param_1,int param_2) { LONG LVar1; undefined4 uVar2; undefined4 *puVar3; int iVar4; undefined4 *local_11c; int *local_118; undefined4 uStack_114; undefined1 local_110 [120]; undefined1 auStack_98 [148]; if (*(int *)(param_1 + 0x6a0) != 0) { puVar3 = (undefined4 *)(param_2 + -0x14); LVar1 = InterlockedDecrement((LONG *)(param_2 + -0x10)); if ((LVar1 == 0) && (puVar3 != (undefined4 *)0x0)) { (**(code **)*puVar3)(1); } return 0; } FUN_006823d0(); local_11c = (undefined4 *)0x0; local_118 = (int *)0x0; FUN_0042a2d0(0x8e); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xac))(1); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0xc3); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xac))(0x10000001); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0xac); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0x74))(1); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042a2d0(0x10000020); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xa4))(¶m_2); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); FUN_0042dc80(); FUN_0042c9c0(DAT_00841530,0x10000004); iVar4 = param_2; InterlockedIncrement((LONG *)(param_2 + -0x10)); FUN_0042e9f0(DAT_00841538,iVar4); FUN_0042a2d0(0xc5); if (local_118 != (int *)0x0) { FUN_00429b10(); (**(code **)(*local_118 + 0xc4))(auStack_98); } uStack_114 = FUN_00429a00(); FUN_0042c290(&uStack_114,&local_11c); uVar2 = FUN_00478810(local_110); *(undefined4 *)(param_1 + 0x6a0) = uVar2; FUN_0042e590(); if (local_11c != (undefined4 *)0x0) { iVar4 = local_11c[1]; local_11c[1] = iVar4 + -1; if (iVar4 + -1 == 0) { (**(code **)*local_11c)(1); } local_11c = (undefined4 *)0x0; } if (local_118 != (int *)0x0) { iVar4 = local_118[1]; local_118[1] = iVar4 + -1; if (iVar4 + -1 == 0) { (**(code **)*local_118)(1); } local_118 = (int *)0x0; } FUN_00681f60(); puVar3 = (undefined4 *)(param_2 + -0x14); LVar1 = InterlockedDecrement((LONG *)(param_2 + -0x10)); if ((LVar1 == 0) && (puVar3 != (undefined4 *)0x0)) { (**(code **)*puVar3)(1); } return 1; } // --- FUN_004dd970 at 0x004DD970 (size: 84) --- undefined4 __thiscall FUN_004dd970(undefined4 param_1,int param_2) { int iVar1; FUN_00448cd0(); iVar1 = 0; if (*(int *)(param_2 + 0x6c) != 0) { if (*(int *)(param_2 + 0x70) == 0) { iVar1 = 0; } else { iVar1 = *(int *)(param_2 + 0x70) + -8; } } while( true ) { if (iVar1 == 0) { return param_1; } FUN_004dc8f0(iVar1,iVar1 + 0x10); if (*(int *)(iVar1 + 8) == 0) break; iVar1 = *(int *)(iVar1 + 8) + -8; } return param_1; } // --- FUN_004dd9d0 at 0x004DD9D0 (size: 81) --- void __fastcall FUN_004dd9d0(int param_1) { int *piVar1; int iVar2; undefined4 *puVar3; do { piVar1 = *(int **)(param_1 + 0x70); if (piVar1 == (int *)0x0) break; if ((int *)piVar1[1] == (int *)0x0) { iVar2 = *piVar1; *(int *)(param_1 + 0x70) = iVar2; if (iVar2 != 0) { *(undefined4 *)(iVar2 + 4) = 0; } } else { *(int *)piVar1[1] = *piVar1; } if (*piVar1 == 0) { puVar3 = *(undefined4 **)(*(int *)(param_1 + 0x74) + 4); *(undefined4 **)(param_1 + 0x74) = puVar3; if (puVar3 != (undefined4 *)0x0) { *puVar3 = 0; } } else { *(int *)(*piVar1 + 4) = piVar1[1]; } *piVar1 = 0; piVar1[1] = 0; } while (piVar1 != (int *)0x0); FUN_004dc9a0(); return; } // --- FUN_004dda30 at 0x004DDA30 (size: 244) --- void __fastcall FUN_004dda30(int param_1) { int *piVar1; int iVar2; undefined4 *puVar3; uint *puVar4; void *pvVar5; uint *puVar6; uint *puVar7; uint uVar8; uint *puVar9; do { puVar9 = (uint *)0x0; if (*(int *)(param_1 + 0x6c) == 0) { return; } piVar1 = *(int **)(param_1 + 0x70); if (piVar1 != (int *)0x0) { if ((int *)piVar1[1] == (int *)0x0) { iVar2 = *piVar1; *(int *)(param_1 + 0x70) = iVar2; if (iVar2 != 0) { *(undefined4 *)(iVar2 + 4) = 0; } } else { *(int *)piVar1[1] = *piVar1; } if (*piVar1 == 0) { puVar3 = *(undefined4 **)(*(int *)(param_1 + 0x74) + 4); *(undefined4 **)(param_1 + 0x74) = puVar3; if (puVar3 != (undefined4 *)0x0) { *puVar3 = 0; } } else { *(int *)(*piVar1 + 4) = piVar1[1]; } *piVar1 = 0; piVar1[1] = 0; if (piVar1 != (int *)0x0) { puVar9 = (uint *)(piVar1 + -2); } } uVar8 = *puVar9 % *(uint *)(param_1 + 0x68); puVar7 = *(uint **)(*(int *)(param_1 + 0x60) + uVar8 * 4); for (puVar4 = puVar7; puVar4 != (uint *)0x0; puVar4 = (uint *)puVar4[1]) { if (*puVar4 == *puVar9) { if (puVar4 != (uint *)0x0) { if (puVar7 == puVar4) goto LAB_004ddacd; do { puVar6 = puVar7; puVar7 = (uint *)puVar6[1]; } while (puVar7 != puVar4); if (puVar6 == (uint *)0x0) { LAB_004ddacd: *(uint *)(*(int *)(param_1 + 0x60) + uVar8 * 4) = puVar7[1]; } else { puVar6[1] = puVar7[1]; } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1; } break; } } puVar9[4] = (uint)&PTR_FUN_007a3c34; while (pvVar5 = (void *)puVar9[5], pvVar5 != (void *)0x0) { uVar8 = *(uint *)((int)pvVar5 + 4); puVar9[5] = uVar8; if (uVar8 == 0) { puVar9[6] = 0; } else { *(undefined4 *)(uVar8 + 8) = 0; } if (pvVar5 != (void *)0x0) { operator_delete(pvVar5); } puVar9[7] = puVar9[7] - 1; } operator_delete(puVar9); } while( true ); } // --- FUN_004ddb30 at 0x004DDB30 (size: 69) --- undefined4 __thiscall FUN_004ddb30(int param_1,uint *param_2) { uint *puVar1; undefined4 uVar2; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); if (puVar1 != (uint *)0x0) { while (*puVar1 != *param_2) { puVar1 = (uint *)puVar1[1]; if (puVar1 == (uint *)0x0) { return 0; } } if (puVar1 != (uint *)0x0) { uVar2 = FUN_004dcae0(); return uVar2; } } return 0; } // --- FUN_004ddb80 at 0x004DDB80 (size: 85) --- undefined4 __thiscall FUN_004ddb80(int param_1,uint *param_2) { uint *puVar1; puVar1 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar1 == (uint *)0x0) { LAB_004ddbab: FUN_004dca60(param_2); FUN_00410820(param_2 + 2,*(undefined4 *)(param_1 + 0x74)); return 1; } if (*puVar1 == *param_2) { if (puVar1 != (uint *)0x0) { return 0; } goto LAB_004ddbab; } puVar1 = (uint *)puVar1[1]; } while( true ); } // --- FUN_004ddbe0 at 0x004DDBE0 (size: 30) --- void * __thiscall FUN_004ddbe0(void *param_1,byte param_2) { FUN_004dcc30(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004ddc00 at 0x004DDC00 (size: 19) --- void FUN_004ddc00(void) { FUN_00460270(0x1000000e,&LAB_004dcd10); return; } // --- FUN_004ddc20 at 0x004DDC20 (size: 457) --- void FUN_004ddc20(int *param_1,char param_2) { char *pcVar1; char cVar2; LONG LVar3; char *pcVar4; undefined4 *puVar5; int *piVar6; int iVar7; int iStack_c; int local_8; int local_4; param_1 = (int *)*param_1; InterlockedIncrement((LONG *)((int)param_1 + -0x10)); FUN_00401340(&DAT_007bfbf4); piVar6 = &local_8; FUN_0040ce00(&local_4,¶m_1,piVar6); cVar2 = FUN_00426520(piVar6); LVar3 = InterlockedDecrement((LONG *)(local_4 + -0x10)); if ((LVar3 == 0) && ((undefined4 *)(local_4 + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(local_4 + -0x14))(1); } LVar3 = InterlockedDecrement((LONG *)(local_8 + -0x10)); if ((LVar3 == 0) && ((undefined4 *)(local_8 + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(local_8 + -0x14))(1); } if (cVar2 != '\0') { pcVar1 = ".keymap"; do { pcVar4 = pcVar1; pcVar1 = pcVar4 + 1; } while (*pcVar4 != '\0'); FUN_00404ef0(&DAT_007bfbf4,pcVar4 + -0x7bfbf4); } FUN_004db540(&iStack_c); FUN_0040cb70(&iStack_c,¶m_1); cVar2 = FUN_0040b320(&iStack_c,0); if (cVar2 != '\0') { cVar2 = FUN_0040b320(&iStack_c,2); if (cVar2 == '\0') { iVar7 = (int)param_1; InterlockedIncrement((LONG *)((int)param_1 + -0x10)); FUN_004dd440(iVar7); goto LAB_004ddda2; } if (param_2 != '\0') { iVar7 = (int)param_1; InterlockedIncrement((LONG *)((int)param_1 + -0x10)); FUN_004dd6b0(iVar7); goto LAB_004ddda2; } } if ((DAT_008379e4 != 0) && (DAT_00837ff4 != (int *)0x0)) { FUN_00402020(¶m_1); piVar6 = DAT_00837ff4; iVar7 = iStack_c; InterlockedIncrement((LONG *)(iStack_c + -0x10)); (**(code **)(*piVar6 + 0x30))(iVar7); FUN_004dbf20(); FUN_00438230(); } LAB_004ddda2: LVar3 = InterlockedDecrement((LONG *)(iStack_c + -0x10)); if ((LVar3 == 0) && ((undefined4 *)(iStack_c + -0x14) != (undefined4 *)0x0)) { (*(code *)**(undefined4 **)(iStack_c + -0x14))(1); } puVar5 = (undefined4 *)((int)param_1 + -0x14); LVar3 = InterlockedDecrement((LONG *)((int)param_1 + -0x10)); if ((LVar3 == 0) && (puVar5 != (undefined4 *)0x0)) { (**(code **)*puVar5)(1); } return; } // --- FUN_004dddf0 at 0x004DDDF0 (size: 49) --- void __thiscall FUN_004dddf0(int param_1,undefined4 param_2) { char cVar1; *(undefined4 *)(param_1 + 0x698) = 0; cVar1 = FUN_00426520(&PTR_DAT_008183b4); if (cVar1 != '\0') { FUN_004ddc20(param_2,1); } return; } // --- FUN_004dde30 at 0x004DDE30 (size: 33) --- void __thiscall FUN_004dde30(int param_1,char param_2,undefined4 param_3) { *(undefined4 *)(param_1 + 0x6a0) = 0; if (param_2 != '\0') { FUN_004ddc20(param_3,0); } return; } // --- FUN_004dde60 at 0x004DDE60 (size: 84) --- undefined4 __thiscall FUN_004dde60(undefined4 param_1,int param_2) { int iVar1; FUN_004dda30(); iVar1 = 0; if (*(int *)(param_2 + 0x6c) != 0) { if (*(int *)(param_2 + 0x70) == 0) { iVar1 = 0; } else { iVar1 = *(int *)(param_2 + 0x70) + -8; } } while( true ) { if (iVar1 == 0) { return param_1; } FUN_004dc830(iVar1,iVar1 + 0x10); if (*(int *)(iVar1 + 8) == 0) break; iVar1 = *(int *)(iVar1 + 8) + -8; } return param_1; } // --- FUN_004de3f0 at 0x004DE3F0 (size: 228) --- char __thiscall FUN_004de3f0(int param_1,uint *param_2,int param_3) { char cVar1; uint *puVar2; puVar2 = *(uint **)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4); do { if (puVar2 == (uint *)0x0) { LAB_004de41f: puVar2 = (uint *)FUN_005df0f5(0x88); if (puVar2 == (uint *)0x0) { puVar2 = (uint *)0x0; } else { *puVar2 = *param_2; puVar2[1] = 0; puVar2[2] = 0; puVar2[3] = 0; FUN_004dbae0(*(undefined4 *)(param_3 + 0x68)); puVar2[0x20] = 0; puVar2[0x21] = 0; FUN_004dde60(param_3); } cVar1 = FUN_004ddb80(puVar2); if ((cVar1 == '\0') && (puVar2 != (uint *)0x0)) { FUN_004dd9d0(); puVar2[4] = (uint)&PTR_FUN_007bf7e0; if ((uint *)puVar2[0x1c] != puVar2 + 5) { operator_delete__((uint *)puVar2[0x1c]); } puVar2[0x1c] = 0; puVar2[0x1d] = 0; puVar2[0x1e] = 0; puVar2[0x1f] = 0; operator_delete(puVar2); cVar1 = '\0'; } return cVar1; } if (*puVar2 == *param_2) { if (puVar2 != (uint *)0x0) { cVar1 = FUN_004ddb30(param_2); return cVar1; } goto LAB_004de41f; } puVar2 = (uint *)puVar2[1]; } while( true ); } // --- FUN_004de4e0 at 0x004DE4E0 (size: 257) --- void __fastcall FUN_004de4e0(int param_1) { int iVar1; undefined4 *puVar2; void *pvVar3; void *pvVar4; int *piVar5; void *pvVar6; do { piVar5 = *(int **)(param_1 + 0x70); if (piVar5 == (int *)0x0) break; if ((int *)piVar5[1] == (int *)0x0) { iVar1 = *piVar5; *(int *)(param_1 + 0x70) = iVar1; if (iVar1 != 0) { *(undefined4 *)(iVar1 + 4) = 0; } } else { *(int *)piVar5[1] = *piVar5; } if (*piVar5 == 0) { puVar2 = *(undefined4 **)(*(int *)(param_1 + 0x74) + 4); *(undefined4 **)(param_1 + 0x74) = puVar2; if (puVar2 != (undefined4 *)0x0) { *puVar2 = 0; } } else { *(int *)(*piVar5 + 4) = piVar5[1]; } *piVar5 = 0; piVar5[1] = 0; } while (piVar5 != (int *)0x0); iVar1 = *(int *)(param_1 + 0x6c); do { if (iVar1 == 0) { return; } piVar5 = *(int **)(param_1 + 100); while (piVar5 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) { if (**(int **)(param_1 + 100) != 0) { piVar5 = *(int **)(param_1 + 100); pvVar6 = (void *)*piVar5; goto LAB_004de37f; } piVar5 = *(int **)(param_1 + 100) + 1; *(int **)(param_1 + 100) = piVar5; } piVar5 = (int *)0x0; pvVar6 = (void *)0x0; LAB_004de37f: pvVar4 = (void *)*piVar5; if (pvVar4 == pvVar6) { LAB_004de392: *piVar5 = *(int *)((int)pvVar4 + 4); } else { do { pvVar3 = pvVar4; pvVar4 = *(void **)((int)pvVar3 + 4); } while (pvVar4 != pvVar6); if (pvVar3 == (void *)0x0) goto LAB_004de392; *(undefined4 *)((int)pvVar3 + 4) = *(undefined4 *)((int)pvVar4 + 4); } *(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1; if (pvVar6 != (void *)0x0) { FUN_004dd9d0(); *(undefined ***)((int)pvVar6 + 0x10) = &PTR_FUN_007bf7e0; if (*(void **)((int)pvVar6 + 0x70) != (void *)((int)pvVar6 + 0x14)) { operator_delete__(*(void **)((int)pvVar6 + 0x70)); } *(undefined4 *)((int)pvVar6 + 0x70) = 0; *(undefined4 *)((int)pvVar6 + 0x74) = 0; *(undefined4 *)((int)pvVar6 + 0x78) = 0; *(undefined4 *)((int)pvVar6 + 0x7c) = 0; operator_delete(pvVar6); } iVar1 = *(int *)(param_1 + 0x6c); } while( true ); } // --- FUN_004dedd0 at 0x004DEDD0 (size: 101) --- void __fastcall FUN_004dedd0(undefined4 *param_1) { *param_1 = DAT_0084155c; param_1[1] = DAT_0084155c; param_1[2] = DAT_0084155c; param_1[3] = DAT_0084155c; param_1[4] = DAT_0084155c; param_1[5] = DAT_0084155c; param_1[6] = DAT_0084155c; param_1[7] = DAT_0084155c; param_1[8] = DAT_0084155c; param_1[9] = DAT_0084155c; param_1[10] = DAT_0084155c; return; } // --- FUN_004dee40 at 0x004DEE40 (size: 256) --- undefined4 * __thiscall FUN_004dee40(undefined4 *param_1,undefined4 param_2,undefined4 param_3) { undefined4 *puVar1; int iVar2; FUN_00472670(param_2,param_3); param_1[0x17e] = &PTR_FUN_007ccb60; *param_1 = &PTR_FUN_007c0118; param_1[0x17e] = &PTR_FUN_007bfe70; param_1[0x180] = 0; param_1[0x181] = 0; param_1[0x18c] = 0; param_1[0x18e] = 0; param_1[399] = 0; param_1[400] = 0; param_1[0x194] = 0xffffffff; param_1[0x196] = 0xfffffc19; *(undefined1 *)(param_1 + 0x197) = 0; param_1[0x198] = 0; param_1[0x19a] = 0; param_1[0x19b] = 0; param_1[0x19c] = 0; param_1[0x19d] = 0; param_1[0x1a0] = 0; param_1[0x1a1] = 0x40080000; param_1[0x1a2] = 0; puVar1 = param_1 + 0x1a4; iVar2 = 9; do { *puVar1 = 0; puVar1[1] = 0; puVar1[2] = 0; puVar1[3] = 0; puVar1[4] = 0; puVar1[5] = 0; puVar1 = puVar1 + 6; iVar2 = iVar2 + -1; } while (iVar2 != 0); param_1[0x1da] = 1; puVar1 = param_1 + 0x1db; iVar2 = 9; do { *puVar1 = 0; puVar1[1] = 0; puVar1[2] = 0; puVar1[3] = 0; puVar1[4] = 0; puVar1[5] = 0; puVar1[6] = 0; puVar1 = puVar1 + 7; iVar2 = iVar2 + -1; } while (iVar2 != 0); return param_1; } // --- FUN_004def70 at 0x004DEF70 (size: 92) --- void __fastcall FUN_004def70(int param_1) { int *piVar1; int iVar2; FUN_004639a0(); piVar1 = (int *)FUN_0043c680(); if (param_1 == 0) { iVar2 = 0; } else { iVar2 = param_1 + 0x5f8; } (**(code **)(*piVar1 + 4))(0x186b0,iVar2); if (param_1 == 0) { iVar2 = 0; } else { iVar2 = param_1 + 0x5f8; } (**(code **)(*piVar1 + 4))(0x4dd27e,iVar2); FUN_00465f90(3); *(undefined4 *)(param_1 + 0x660) = 0x43340000; return; } // --- FUN_004df000 at 0x004DF000 (size: 49) --- undefined4 * __thiscall FUN_004df000(undefined4 *param_1,int param_2) { *param_1 = &PTR_FUN_007a0ad0; param_1[1] = *(undefined4 *)(param_2 + 4); *(undefined1 *)(param_1 + 2) = *(undefined1 *)(param_2 + 8); param_1[3] = *(undefined4 *)(param_2 + 0xc); FUN_005ad590(param_2 + 0x10); return param_1; } // --- FUN_004df040 at 0x004DF040 (size: 29) --- void FUN_004df040(void) { char cVar1; cVar1 = FUN_004603a0(); if (cVar1 != '\0') { FUN_004ef660(); return; } return; } // --- FUN_004df060 at 0x004DF060 (size: 121) --- void __thiscall FUN_004df060(int param_1,undefined4 param_2,undefined4 param_3) { int iVar1; char cVar2; FUN_00460760(0x86,(float)(double)CONCAT44(param_3,param_2)); FUN_0055e1e0(); iVar1 = *(int *)(param_1 + 0x768); if (iVar1 == 1) { FUN_005c4860(param_2,param_3); } else if ((2 < iVar1) && (iVar1 < 6)) { FUN_005c4830(param_2,param_3); } cVar2 = FUN_004603a0(); if (cVar2 != '\0') { FUN_004ef660(); } return; } // --- FUN_004df0e0 at 0x004DF0E0 (size: 208) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __fastcall FUN_004df0e0(int param_1) { double dVar1; undefined4 uVar2; float10 fVar3; uVar2 = DAT_008379ac; if (*(double *)(param_1 + 0x678) < _DAT_00795610) { *(undefined4 *)(param_1 + 0x678) = DAT_008379a8; *(undefined4 *)(param_1 + 0x67c) = uVar2; } dVar1 = (double)CONCAT44(DAT_008379ac,DAT_008379a8); fVar3 = (((float10)dVar1 - (float10)*(double *)(param_1 + 0x678)) / (float10)*(double *)(param_1 + 0x680)) * (float10)_DAT_0079c6b8; if (*(int *)(param_1 + 0x688) == 1) { *(float *)(param_1 + 0x660) = (float)(fVar3 + (float10)*(float *)(param_1 + 0x660)); } else { *(float *)(param_1 + 0x660) = (float)((float10)*(float *)(param_1 + 0x660) - fVar3); } if (*(float *)(param_1 + 0x660) < DAT_00796344) { *(float *)(param_1 + 0x660) = *(float *)(param_1 + 0x660) + _DAT_0079cc60; } if (_DAT_0079cc60 < *(float *)(param_1 + 0x660)) { *(float *)(param_1 + 0x660) = *(float *)(param_1 + 0x660) - _DAT_0079cc60; } *(double *)(param_1 + 0x678) = dVar1; FUN_004ef220(*(undefined4 *)(param_1 + 0x660)); return; } // --- FUN_004df1b0 at 0x004DF1B0 (size: 118) --- void __thiscall FUN_004df1b0(int param_1,int param_2) { if ((*(char *)(param_1 + 0x65c) != '\0') && (param_2 == *(int *)(param_1 + 0x688))) { *(undefined1 *)(param_1 + 0x65c) = 0; return; } if (param_2 == 1) { (**(code **)(**(int **)(param_1 + 0x604) + 0x9c))(1); } else if (param_2 == 2) { (**(code **)(**(int **)(param_1 + 0x600) + 0x9c))(1); } *(int *)(param_1 + 0x688) = param_2; *(undefined4 *)(param_1 + 0x678) = 0; *(undefined4 *)(param_1 + 0x67c) = 0xbff00000; *(undefined1 *)(param_1 + 0x65c) = 1; return; } // --- FUN_004df230 at 0x004DF230 (size: 82) --- undefined4 * __thiscall FUN_004df230(undefined4 *param_1,byte param_2) { undefined4 *puVar1; int *piVar2; puVar1 = param_1 + 0x17e; *param_1 = &PTR_FUN_007c0118; *puVar1 = &PTR_FUN_007bfe70; piVar2 = (int *)FUN_0043c680(); if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0xc))(puVar1); } *puVar1 = &PTR_FUN_007ccb60; FUN_0043c610(); FUN_004726c0(); if ((param_2 & 1) != 0) { operator_delete(param_1); } return param_1; } // --- FUN_004df290 at 0x004DF290 (size: 19) --- void FUN_004df290(void) { FUN_00460270(0x1000004a,&LAB_004defd0); return; } // --- FUN_004df2d0 at 0x004DF2D0 (size: 565) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __thiscall FUN_004df2d0(int param_1,int param_2) { undefined4 uVar1; int *piVar2; int *piVar3; int *piVar4; int iVar5; int *piVar6; int local_4c; undefined4 local_48; undefined4 local_44; int iStack_40; int iStack_3c; int *piStack_38; int local_34; float fStack_20; float fStack_1c; float fStack_18; undefined4 uStack_14; undefined4 uStack_10; undefined4 uStack_c; undefined4 uStack_8; undefined4 uStack_4; local_4c = 0; piVar6 = (int *)(param_1 + 0x780); local_34 = param_1; do { FUN_00415640(&local_48,0x1000000d,7); FUN_00415640(&local_44,0x1000000f,7); (**(code **)(*(int *)piVar6[-2] + 0x18))(1); uVar1 = FUN_004220b0(local_48,0xc); piVar2 = (int *)FUN_00415430(uVar1); uVar1 = FUN_004220b0(local_44,0xc); piVar3 = (int *)FUN_00415430(uVar1); piStack_38 = piVar3; if (piVar2 != (int *)0x0) { fStack_20 = (float)piVar6[-5]; uStack_10 = 0; uStack_c = 0; uStack_8 = 0; uStack_4 = 0x3f800000; if (piVar6[-5] < 0) { fStack_20 = fStack_20 + _DAT_0079920c; } fStack_20 = fStack_20 * _DAT_00799208; fStack_1c = (float)piVar6[-4]; if (piVar6[-4] < 0) { fStack_1c = fStack_1c + _DAT_0079920c; } fStack_1c = fStack_1c * _DAT_00799208; fStack_18 = (float)piVar6[-3]; if (piVar6[-3] < 0) { fStack_18 = fStack_18 + _DAT_0079920c; } fStack_18 = fStack_18 * _DAT_00799208; uStack_14 = 0x3f800000; if (*piVar6 == 0) { piVar4 = (int *)(**(code **)(*DAT_00870340 + 0xc))(); if (piVar4 != (int *)0x0) { iStack_3c = piVar2[0x28]; iStack_40 = piVar2[0x29]; iVar5 = *piVar4; uVar1 = FUN_0054fe80(1); (**(code **)(iVar5 + 0x58))(iStack_3c,iStack_40,uVar1); iVar5 = FUN_005df0f5(0xc); if (iVar5 == 0) { iVar5 = 0; } else { iVar5 = FUN_00694d80(piVar4); } *piVar6 = iVar5; piVar3 = piStack_38; } } if (local_4c < *(int *)(local_34 + 0x698 + param_2 * 0x18)) { FUN_00442c70(piVar2 + 0x2b,0,0x3f800000); FUN_004416d0(&uStack_10,&fStack_20); } else { FUN_00442c70(piVar3 + 0x2b,0,0x3f800000); } FUN_006a0660(); iVar5 = FUN_005df0f5(0xc); if (iVar5 == 0) { uVar1 = 0; } else { uVar1 = FUN_00694d80(*(undefined4 *)(*piVar6 + 8)); } FUN_006a0610(uVar1); } if (piVar3 != (int *)0x0) { (**(code **)(*piVar3 + 0x14))(); } if (piVar2 != (int *)0x0) { (**(code **)(*piVar2 + 0x14))(); } local_4c = local_4c + 1; piVar6 = piVar6 + 7; } while (local_4c < 9); return; } // --- FUN_004df510 at 0x004DF510 (size: 699) --- /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */ void __thiscall FUN_004df510(int param_1,char param_2) { int iVar1; undefined4 uVar2; int *piVar3; int *piVar4; int *piVar5; int iVar6; undefined4 local_2c; undefined4 local_28; int local_24; float local_10; float local_c; float local_8; undefined4 local_4; FUN_00415640(&local_2c,0x1000000e,7); FUN_00415640(&local_28,0x10000010,7); uVar2 = FUN_004220b0(local_2c,0xc); piVar3 = (int *)FUN_00415430(uVar2); uVar2 = FUN_004220b0(local_28,0xc); piVar4 = (int *)FUN_00415430(uVar2); if (piVar3 != (int *)0x0) { if (piVar4 == (int *)0x0) goto LAB_004df7b6; iVar6 = *(int *)(param_1 + 0x650) * 0x1c; local_10 = (float)*(int *)(iVar6 + 0x76c + param_1); if (*(int *)(iVar6 + 0x76c + param_1) < 0) { local_10 = local_10 + _DAT_0079920c; } local_10 = local_10 * _DAT_00799208; iVar1 = *(int *)((*(int *)(param_1 + 0x650) + 0x44) * 0x1c + param_1); local_c = (float)iVar1; if (iVar1 < 0) { local_c = local_c + _DAT_0079920c; } local_c = local_c * _DAT_00799208; local_24 = *(int *)(iVar6 + param_1 + 0x774); local_8 = (float)local_24; if (local_24 < 0) { local_8 = local_8 + _DAT_0079920c; } local_8 = local_8 * _DAT_00799208; local_4 = 0x3f800000; if (*(int *)(param_1 + 0x63c) == 0) { piVar5 = (int *)(**(code **)(*DAT_00870340 + 0xc))(); if (piVar5 != (int *)0x0) { local_24 = piVar3[0x28]; iVar6 = piVar3[0x29]; iVar1 = *piVar5; uVar2 = FUN_0054fe80(1); (**(code **)(iVar1 + 0x58))(local_24,iVar6,uVar2); iVar6 = FUN_005df0f5(0xc); if (iVar6 == 0) { uVar2 = 0; } else { uVar2 = FUN_00694d80(piVar5); } *(undefined4 *)(param_1 + 0x63c) = uVar2; } } if (*(int *)(param_1 + 0x640) == 0) { piVar5 = (int *)(**(code **)(*DAT_00870340 + 0xc))(); if (piVar5 != (int *)0x0) { local_24 = piVar4[0x28]; iVar6 = piVar4[0x29]; iVar1 = *piVar5; uVar2 = FUN_0054fe80(1); (**(code **)(iVar1 + 0x58))(local_24,iVar6,uVar2); iVar6 = FUN_005df0f5(0xc); if (iVar6 == 0) { uVar2 = 0; } else { uVar2 = FUN_00694d80(piVar5); } *(undefined4 *)(param_1 + 0x640) = uVar2; } } if (param_2 == '\0') { uVar2 = FUN_00424000(); FUN_004428b0(piVar3 + 0x2b,0,0x3f800000,0,4,uVar2); FUN_006a0660(); iVar6 = FUN_005df0f5(0xc); if (iVar6 == 0) { LAB_004df79d: uVar2 = 0; } else { uVar2 = FUN_00694d80(*(undefined4 *)(*(int *)(param_1 + 0x63c) + 8)); } } else { FUN_00442c70(piVar4 + 0x2b,0,0x3f800000); FUN_006a0660(); iVar6 = FUN_005df0f5(0xc); if (iVar6 == 0) goto LAB_004df79d; uVar2 = FUN_00694d80(*(undefined4 *)(*(int *)(param_1 + 0x640) + 8)); } FUN_006a0610(uVar2); } if (piVar4 != (int *)0x0) { (**(code **)(*piVar4 + 0x14))(); } LAB_004df7b6: if (piVar3 != (int *)0x0) { (**(code **)(*piVar3 + 0x14))(); } return; } // --- FUN_004df7d0 at 0x004DF7D0 (size: 168) --- void __thiscall FUN_004df7d0(int param_1,int param_2) { char cVar1; if (*(int *)(param_1 + 0x650) != -1) { (**(code **)(**(int **)(*(int *)(param_1 + 0x650) * 0x1c + 0x77c + param_1) + 0x18))(0); } if (param_2 != -1) { (**(code **)(**(int **)(param_2 * 0x1c + 0x77c + param_1) + 0x18))(1); } *(int *)(param_1 + 0x650) = param_2; FUN_0055e1e0(); param_2 = 0; if (*(int *)(param_1 + 0x768) == 1) { FUN_005c4890(*(undefined4 *)(param_1 + 0x650)); } else if (*(int *)(param_1 + 0x768) == 2) { FUN_005c48b0(*(undefined4 *)(param_1 + 0x650)); param_2 = 1; } FUN_004df510(param_2); cVar1 = FUN_004603a0(); if (cVar1 != '\0') { FUN_004ef660(); } return; } // --- FUN_004df880 at 0x004DF880 (size: 510) --- void __fastcall FUN_004df880(int param_1) { undefined4 uVar1; int iVar2; undefined1 local_1a8 [96]; undefined4 local_148; undefined4 local_13c; undefined4 local_130; undefined4 local_124; undefined4 local_118; undefined4 local_10c; undefined4 local_f4; undefined4 local_e8; undefined4 local_dc; undefined1 local_c8 [196]; iVar2 = FUN_0055e1e0(); FUN_005c3380(local_c8,*(undefined4 *)(iVar2 + 0xd4)); FUN_005c2b30(local_1a8,*(undefined4 *)(iVar2 + 0xd8)); uVar1 = *(undefined4 *)(iVar2 + 0xf0); *(undefined4 *)(param_1 + 0x690) = local_13c; *(undefined4 *)(param_1 + 0x694) = uVar1; *(undefined4 *)(param_1 + 0x69c) = *(undefined4 *)(iVar2 + 0xe8); *(undefined4 *)(param_1 + 0x698) = local_148; *(undefined8 *)(param_1 + 0x6a0) = *(undefined8 *)(iVar2 + 0x150); *(undefined4 *)(param_1 + 0x6ac) = *(undefined4 *)(iVar2 + 0xdc); *(undefined4 *)(param_1 + 0x6a8) = local_124; uVar1 = *(undefined4 *)(iVar2 + 0xec); *(undefined4 *)(param_1 + 0x6b0) = local_130; *(undefined4 *)(param_1 + 0x6b4) = uVar1; *(undefined4 *)(param_1 + 0x6b8) = 0; *(undefined4 *)(param_1 + 0x6bc) = 0; *(undefined4 *)(param_1 + 0x6c4) = *(undefined4 *)(iVar2 + 0xe0); *(undefined4 *)(param_1 + 0x6c0) = local_118; *(undefined4 *)(param_1 + 0x6c8) = 0; *(undefined4 *)(param_1 + 0x6d0) = 0; *(undefined4 *)(param_1 + 0x6d4) = 0; *(undefined4 *)(param_1 + 0x6cc) = 0xffffffff; *(undefined4 *)(param_1 + 0x6dc) = *(undefined4 *)(iVar2 + 0xe4); *(undefined4 *)(param_1 + 0x6d8) = local_10c; *(undefined4 *)(param_1 + 0x6e4) = 0xffffffff; *(undefined4 *)(param_1 + 0x6e0) = 0; *(undefined4 *)(param_1 + 0x6e8) = 0; *(undefined4 *)(param_1 + 0x6ec) = 0; *(undefined4 *)(param_1 + 0x724) = *(undefined4 *)(iVar2 + 0xfc); *(undefined4 *)(param_1 + 0x720) = local_f4; *(undefined4 *)(param_1 + 0x72c) = *(undefined4 *)(iVar2 + 0x100); *(undefined4 *)(param_1 + 0x728) = *(undefined4 *)(iVar2 + 0x118); *(undefined8 *)(param_1 + 0x730) = *(undefined8 *)(iVar2 + 0x160); *(undefined4 *)(param_1 + 0x73c) = *(undefined4 *)(iVar2 + 0x104); *(undefined4 *)(param_1 + 0x738) = local_e8; *(undefined4 *)(param_1 + 0x744) = *(undefined4 *)(iVar2 + 0x108); *(undefined4 *)(param_1 + 0x740) = *(undefined4 *)(iVar2 + 0x11c); *(undefined8 *)(param_1 + 0x748) = *(undefined8 *)(iVar2 + 0x168); *(undefined4 *)(param_1 + 0x754) = *(undefined4 *)(iVar2 + 0x10c); *(undefined4 *)(param_1 + 0x750) = local_dc; *(undefined4 *)(param_1 + 0x75c) = *(undefined4 *)(iVar2 + 0x110); *(undefined4 *)(param_1 + 0x758) = *(undefined4 *)(iVar2 + 0x120); *(undefined8 *)(param_1 + 0x760) = *(undefined8 *)(iVar2 + 0x170); FUN_0047daa0(); FUN_0047e300(); return; } // --- FUN_004dfa80 at 0x004DFA80 (size: 1091) --- void __thiscall FUN_004dfa80(int param_1,undefined4 param_2) { int iVar1; int iVar2; undefined4 uVar3; undefined4 *puVar4; uint uVar5; undefined4 unaff_EBX; int iVar6; uint *puVar7; int unaff_retaddr; int local_1e8; int local_1dc; uint local_1d8; undefined4 local_1d4; int iStack_1d0; undefined1 auStack_1c4 [4]; int aiStack_1c0 [9]; undefined1 local_19c [84]; undefined4 uStack_148; int iStack_144; int iStack_13c; int iStack_12c; int iStack_124; undefined1 local_c0 [192]; local_1dc = 0; local_1d4 = 0; local_1e8 = 0; local_1d8 = 0; iVar1 = FUN_0055e1e0(); FUN_005c3380(local_c0,*(undefined4 *)(iVar1 + 0xd4)); FUN_005c2b30(local_19c,*(undefined4 *)(iVar1 + 0xd8)); *(undefined4 *)(param_1 + 0x768) = param_2; puVar4 = (undefined4 *)(param_1 + 0x77c); iVar6 = 9; do { (**(code **)(*(int *)puVar4[-1] + 0x18))(1); (**(code **)(*(int *)*puVar4 + 0x18))(0); puVar4 = puVar4 + 7; iVar6 = iVar6 + -1; } while (iVar6 != 0); iVar6 = 0; if (*(int **)(param_1 + 0x644) != (int *)0x0) { (**(code **)(**(int **)(param_1 + 0x644) + 0x9c))(1); } switch(param_2) { case 1: local_1e8 = iStack_13c; if (0 < iStack_13c) { do { uVar3 = FUN_004220b0(*(undefined4 *)(iStack_144 + iVar6 * 4),0x18); iVar2 = FUN_00415430(uVar3); aiStack_1c0[iVar6] = iVar2; iVar6 = iVar6 + 1; } while (iVar6 < iStack_13c); } *(undefined4 *)(param_1 + 0x644) = *(undefined4 *)(param_1 + 0x608); local_1d4 = 0xd0; local_1dc = 0; local_1d8 = (*(uint *)(iVar1 + 0xe8) == 0xffffffff) - 1 & *(uint *)(iVar1 + 0xe8); goto switchD_004dfb35_default; case 2: iVar6 = 0; if (0 < iStack_124) { puVar7 = (uint *)(param_1 + 0x770); do { uVar5 = FUN_00564730(*(undefined4 *)(iStack_12c + iVar6 * 4),0x103); puVar7[-1] = uVar5 >> 0x10 & 0xff; puVar7[1] = uVar5 & 0xff; *puVar7 = uVar5 >> 8 & 0xff; iVar6 = iVar6 + 1; puVar7 = puVar7 + 7; } while (iVar6 < iStack_124); } *(undefined4 *)(param_1 + 0x644) = *(undefined4 *)(param_1 + 0x60c); local_1d8 = *(uint *)(iVar1 + 0xec); local_1dc = 1; local_1e8 = iStack_124; goto LAB_004dfe25; case 3: uVar3 = FUN_004220b0(uStack_148,0x18); aiStack_1c0[0] = FUN_00415430(uVar3); *(undefined4 *)(param_1 + 0x644) = *(undefined4 *)(param_1 + 0x610); local_1dc = 2; break; case 4: uVar3 = FUN_004220b0(uStack_148,0x18); aiStack_1c0[0] = FUN_00415430(uVar3); *(undefined4 *)(param_1 + 0x644) = *(undefined4 *)(param_1 + 0x614); local_1dc = 3; break; case 5: uVar3 = FUN_004220b0(uStack_148,0x18); aiStack_1c0[0] = FUN_00415430(uVar3); *(undefined4 *)(param_1 + 0x644) = *(undefined4 *)(param_1 + 0x618); local_1dc = 4; break; default: goto switchD_004dfb35_default; } local_1e8 = 1; local_1d4 = 0xb0; local_1d8 = 0; switchD_004dfb35_default: iStack_1d0 = 0; if (0 < local_1e8) { puVar7 = (uint *)(param_1 + 0x770); do { iVar1 = aiStack_1c0[iStack_1d0]; iVar6 = 0; if (iVar1 != 0) { puVar7[1] = 0; *puVar7 = 0; puVar7[-1] = 0; if (0 < *(int *)(iVar1 + 0x38)) { do { puVar4 = (undefined4 *)FUN_005ad6a0(auStack_1c4,iVar6); uVar5 = FUN_00564730(*puVar4,local_1d4); puVar7[-1] = puVar7[-1] + (uVar5 >> 0x10 & 0xff); *puVar7 = *puVar7 + (uVar5 >> 8 & 0xff); puVar7[1] = puVar7[1] + (uVar5 & 0xff); iVar6 = iVar6 + 1; } while (iVar6 < *(int *)(iVar1 + 0x38)); } puVar7[-1] = puVar7[-1] / *(uint *)(iVar1 + 0x38); *puVar7 = *puVar7 / *(uint *)(iVar1 + 0x38); puVar7[1] = puVar7[1] / *(uint *)(iVar1 + 0x38); } iStack_1d0 = iStack_1d0 + 1; puVar7 = puVar7 + 7; } while (iStack_1d0 < local_1e8); } LAB_004dfe25: *(uint *)(param_1 + 0x650) = local_1d8; *(int *)(param_1 + 0x654) = local_1dc; *(int *)(param_1 + 0x698 + local_1dc * 0x18) = local_1e8; (**(code **)(**(int **)(param_1 + 0x644) + 0x9c))(6); FUN_004df2d0(local_1dc); if (unaff_retaddr == 2) { FUN_004df510(1); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(0); } else { FUN_004df510(0); (**(code **)(**(int **)(param_1 + 0x630) + 0x18))(1); FUN_004df060(unaff_EBX,local_1e8); } FUN_004df7d0(local_1d8); FUN_0047daa0(); FUN_0047e300(); return; }