/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401f4bb0 FUN_1401f4bb0 * Pseudocode, not original source. */ void FUN_1401f4bb0(longlong param_1) { ulonglong *puVar1; ulonglong uVar2; ulonglong uVar3; int iVar4; ulonglong uVar5; FUN_14016db50(param_1 + 0x10); uVar5 = 0; uVar2 = uVar5; while( true ) { iVar4 = (int)uVar2; if (iVar4 == *(int *)(param_1 + 0x118)) { uVar2 = uVar5; if (*(longlong *)(param_1 + 0x70) != 0) { uVar2 = *(ulonglong *)(param_1 + 0x60); } for (; uVar2 != 0; uVar2 = *(ulonglong *)(uVar2 + 0x10)) { uVar3 = uVar5; if (*(ulonglong **)(uVar2 + 8) != (ulonglong *)0x0) { uVar3 = **(ulonglong **)(uVar2 + 8); } if (*(int *)(uVar3 + 0x2490) < 4) { *(undefined8 *)(uVar3 + 0x2490) = 4; } } FUN_14016dbe0(param_1 + 0x10); return; } if ((iVar4 < 0) || (*(int *)(param_1 + 0x118) <= iVar4)) break; puVar1 = *(ulonglong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar4 * 8); uVar2 = uVar5; if (puVar1 != (ulonglong *)0x0) { uVar2 = *puVar1; } if ((*(longlong **)(uVar2 + 0x10) != (longlong *)0x0) && (**(longlong **)(uVar2 + 0x10) != 0)) { puVar1 = *(ulonglong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar4 * 8); uVar2 = uVar5; if (puVar1 != (ulonglong *)0x0) { uVar2 = *puVar1; } uVar3 = uVar5; if (*(ulonglong **)(uVar2 + 0x10) != (ulonglong *)0x0) { uVar3 = **(ulonglong **)(uVar2 + 0x10); } FUN_14019c630(uVar3); } if (*(int *)(param_1 + 0x118) <= iVar4) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } uVar2 = (ulonglong)(iVar4 + 1); } /* WARNING: Subroutine does not return */ FUN_14016d6e0(); }