/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14018e430 FUN_14018e430 * Pseudocode, not original source. */ void FUN_14018e430(longlong param_1) { longlong *plVar1; longlong lVar2; uint uVar3; ulonglong uVar4; longlong lVar5; longlong lVar6; float fVar7; float fVar8; *(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + 1; FUN_1401720a0(); lVar5 = *(longlong *)(param_1 + 0x10); while (lVar5 != 0) { lVar6 = *(longlong *)(lVar5 + 0x10); if ((*(longlong *)(lVar5 + 8) != 0) && (*(longlong *)(*(longlong *)(lVar5 + 8) + 8) = *(longlong *)(*(longlong *)(lVar5 + 8) + 8) + -1, *(longlong *)(*(longlong *)(lVar5 + 8) + 8) == 0)) { plVar1 = *(longlong **)(lVar5 + 8); lVar2 = *plVar1; if (lVar2 != 0) { FUN_140178e60(lVar2); FUN_14016d970(lVar2); } FUN_14016d970(plVar1); } plVar1 = *(longlong **)(param_1 + 0x50); if (plVar1 == (longlong *)0x0) { FUN_14016d970(lVar5); } else { (**(code **)(*plVar1 + 0x18))(plVar1,lVar5); } *(longlong *)(param_1 + 0x20) = *(longlong *)(param_1 + 0x20) + -1; lVar5 = lVar6; } FUN_14016d970(*(undefined8 *)(param_1 + 8)); *(undefined8 *)(param_1 + 8) = 0; *(undefined8 *)(param_1 + 0x20) = 0; *(undefined8 *)(param_1 + 0x10) = 0; *(undefined8 *)(param_1 + 0x18) = 0; FUN_1401720a0(param_1); if (*(int *)(param_1 + 0x48) == 0) { uVar3 = FUN_1401c6a30(param_1,*(undefined8 *)(param_1 + 0x20)); if (*(longlong *)(param_1 + 8) != 0) { FUN_14016d970(); *(undefined8 *)(param_1 + 8) = 0; } lVar5 = 0; *(uint *)(param_1 + 0x28) = uVar3; fVar8 = (float)uVar3 * *(float *)(param_1 + 0x34); if ((9.223372e+18 < fVar8) && (fVar8 = fVar8 - 9.223372e+18, fVar8 < 9.223372e+18)) { lVar5 = -0x8000000000000000; } fVar7 = (float)uVar3 * *(float *)(param_1 + 0x30); lVar6 = 0; *(longlong *)(param_1 + 0x38) = (longlong)fVar8 + lVar5; if ((9.223372e+18 < fVar7) && (fVar7 = fVar7 - 9.223372e+18, fVar7 < 9.223372e+18)) { lVar6 = -0x8000000000000000; } uVar4 = (longlong)fVar7 + lVar6; if ((ulonglong)((longlong)fVar7 + lVar6) < 0x11) { uVar4 = 0; } *(ulonglong *)(param_1 + 0x40) = uVar4; } FUN_1401720a0(param_1); *(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + -1; return; }