/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401d8ff0 FUN_1401d8ff0 * Pseudocode, not original source. */ undefined8 FUN_1401d8ff0(longlong param_1,undefined4 param_2,longlong *param_3,undefined8 param_4) { longlong lVar1; void *pvVar2; longlong lVar3; longlong *plVar4; longlong lVar5; undefined4 *puVar6; longlong *local_res8; undefined8 uVar7; uVar7 = 0xfffffffffffffffe; (**(code **)(*(longlong *)(param_1 + 0x78) + 0x10))(); FUN_1401d8f20(param_1,&local_res8,param_2,param_4,uVar7); if ((local_res8 == (longlong *)0x0) || (lVar1 = *local_res8, lVar1 == 0)) { uVar7 = FUN_1401d4b20(param_1,param_2); FUN_1401c7f00(param_3,param_3[1],uVar7); } else { if (*(longlong *)(lVar1 + 0x28) == 0) { puVar6 = (undefined4 *)0x0; } else { puVar6 = *(undefined4 **)(lVar1 + 0x18); } while( true ) { if (local_res8 == (longlong *)0x0) { lVar5 = 0; } else { lVar5 = *local_res8; } if (puVar6 == (undefined4 *)0x0) break; lVar3 = FUN_1401d4b20(param_1,*puVar6); lVar5 = param_3[1]; if (lVar5 < 0) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } FUN_1401c7aa0(param_3,lVar5 + 1,0xffffffffffffffff); if (param_3[1] <= lVar5) { /* WARNING: Subroutine does not return */ FUN_14016d6b0(); } if ((ulonglong)param_3[2] < 0x65) { plVar4 = param_3 + lVar5 + 4; } else { plVar4 = (longlong *)(*param_3 + lVar5 * 8); } *plVar4 = lVar3; puVar6 = *(undefined4 **)(puVar6 + 4); } if (lVar1 + 8 != lVar5 + 8) { /* WARNING: Subroutine does not return */ FUN_14004dc60(0x80004005); } } if (local_res8 != (longlong *)0x0) { local_res8[1] = local_res8[1] + -1; if (local_res8[1] == 0) { pvVar2 = (void *)*local_res8; if (pvVar2 != (void *)0x0) { FUN_1401c9600((longlong)pvVar2 + 8); operator_delete(pvVar2); } FUN_14016d970(local_res8); } } return 1; }