/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401f5eb0 FUN_1401f5eb0 * Pseudocode, not original source. */ void FUN_1401f5eb0(longlong param_1) { ulonglong *puVar1; longlong lVar2; longlong lVar3; undefined8 *puVar4; ulonglong uVar5; ulonglong uVar6; longlong lVar7; ulonglong uVar8; int iVar9; double dVar10; ulonglong *local_res8; FUN_14016db50(param_1 + 0x10); dVar10 = (double)FUN_1401eac50(*(undefined8 *)(param_1 + 8)); if (600.0 < dVar10 - *(double *)(param_1 + 0x128)) { uVar8 = 0; uVar5 = uVar8; while (iVar9 = (int)uVar5, iVar9 != *(int *)(param_1 + 0x118)) { if ((iVar9 < 0) || (*(int *)(param_1 + 0x118) <= iVar9)) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } lVar7 = (longlong)iVar9; lVar2 = *(longlong *)(param_1 + 0x110); local_res8 = (ulonglong *)0x0; lVar3 = *(longlong *)(lVar2 + lVar7 * 8); if (lVar3 != 0) { *(longlong *)(*(longlong *)(lVar2 + lVar7 * 8) + 8) = *(longlong *)(lVar3 + 8) + 1; local_res8 = *(ulonglong **)(lVar2 + lVar7 * 8); } uVar5 = uVar8; if (local_res8 != (ulonglong *)0x0) { uVar5 = *local_res8; } if ((*(longlong **)(uVar5 + 0x10) != (longlong *)0x0) && (**(longlong **)(uVar5 + 0x10) != 0)) { uVar5 = uVar8; if (local_res8 != (ulonglong *)0x0) { uVar5 = *local_res8; } uVar6 = uVar8; if (*(ulonglong **)(uVar5 + 0x10) != (ulonglong *)0x0) { uVar6 = **(ulonglong **)(uVar5 + 0x10); } FUN_14019c630(uVar6); } if (local_res8 != (ulonglong *)0x0) { puVar1 = local_res8 + 1; *puVar1 = *puVar1 - 1; if (*puVar1 == 0) { puVar4 = (undefined8 *)*local_res8; if (puVar4 != (undefined8 *)0x0) { (**(code **)*puVar4)(puVar4,1); } FUN_14016d970(local_res8); } } if (*(int *)(param_1 + 0x118) <= iVar9) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } uVar5 = (ulonglong)(iVar9 + 1); } uVar5 = uVar8; if (*(longlong *)(param_1 + 0x70) != 0) { uVar5 = *(ulonglong *)(param_1 + 0x60); } for (; uVar5 != 0; uVar5 = *(ulonglong *)(uVar5 + 0x10)) { uVar6 = uVar8; if (*(ulonglong **)(uVar5 + 8) != (ulonglong *)0x0) { uVar6 = **(ulonglong **)(uVar5 + 8); } if (*(int *)(uVar6 + 0x2490) < 4) { *(undefined8 *)(uVar6 + 0x2490) = 4; } } } FUN_14016dbe0(param_1 + 0x10); return; }