/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401f98c0 FUN_1401f98c0 * Pseudocode, not original source. */ void FUN_1401f98c0(longlong param_1) { int iVar1; longlong *plVar2; longlong lVar3; int iVar4; FUN_14016db50(param_1 + 0x10); if (*(int *)(param_1 + 0x48) == 0) { FUN_1401f70a0(param_1); } *(int *)(param_1 + 0x48) = *(int *)(param_1 + 0x48) + 1; iVar4 = 0; while( true ) { if (iVar4 == *(int *)(param_1 + 0x118)) { FUN_1401f97c0(param_1); FUN_1401f5eb0(param_1); FUN_14016dbe0(param_1 + 0x10); return; } if ((iVar4 < 0) || (*(int *)(param_1 + 0x118) <= iVar4)) break; plVar2 = *(longlong **)(*(longlong *)(param_1 + 0x110) + (longlong)iVar4 * 8); lVar3 = 0; if (plVar2 != (longlong *)0x0) { lVar3 = *plVar2; } iVar1 = *(int *)(lVar3 + 0x18); if (iVar1 == 0) { FUN_1401f6af0(param_1); } else if (iVar1 == 1) { FUN_1401f6cc0(param_1); } else if (iVar1 == 2) { FUN_1401f79c0(param_1); } if (*(int *)(param_1 + 0x118) <= iVar4) { /* WARNING: Subroutine does not return */ FUN_14016d6e0(); } iVar4 = iVar4 + 1; } /* WARNING: Subroutine does not return */ FUN_14016d6e0(); }