/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401adb30 FUN_1401adb30 * Pseudocode, not original source. */ void FUN_1401adb30(longlong param_1,undefined4 param_2,undefined8 param_3) { undefined8 uVar1; longlong *plVar2; void *pvVar3; undefined4 *puVar4; longlong lVar5; __time64_t _Var6; undefined8 *puVar7; undefined8 *puVar8; longlong *local_res8; undefined1 local_78 [80]; FUN_14016db50(); if (*(char *)(param_1 + 0x50) != '\0') { FUN_14016d300(local_78,L"LogFile Creation Failed"); /* WARNING: Subroutine does not return */ _CxxThrowException(local_78,(ThrowInfo *)&DAT_1403417f8); } pvVar3 = operator_new(0x20); if (pvVar3 == (void *)0x0) { pvVar3 = (void *)0x0; } else { FUN_14016d8c0(); *(undefined **)((longlong)pvVar3 + 8) = PTR_DAT_1403440a0; } if (pvVar3 == (void *)0x0) { local_res8 = (longlong *)0x0; } else { local_res8 = (longlong *)FUN_14016d940(); local_res8[1] = 1; *local_res8 = (longlong)pvVar3; } if (local_res8 == (longlong *)0x0) { puVar4 = (undefined4 *)0x0; } else { puVar4 = (undefined4 *)*local_res8; } *puVar4 = 1; if (local_res8 == (longlong *)0x0) { lVar5 = 0; } else { lVar5 = *local_res8; } FUN_14004c050(lVar5 + 8,param_3); if (local_res8 == (longlong *)0x0) { lVar5 = 0; } else { lVar5 = *local_res8; } FUN_1401ad3c0(lVar5 + 8,&DAT_1402b0a94,&DAT_1402a4aa0); if (local_res8 == (longlong *)0x0) { lVar5 = 0; } else { lVar5 = *local_res8; } *(undefined4 *)(lVar5 + 0x10) = param_2; _Var6 = _time64((__time64_t *)0x0); if (local_res8 == (longlong *)0x0) { lVar5 = 0; } else { lVar5 = *local_res8; } *(__time64_t *)(lVar5 + 0x18) = _Var6; uVar1 = *(undefined8 *)(param_1 + 0x98); plVar2 = *(longlong **)(param_1 + 0x88); if (plVar2 == (longlong *)0x0) { puVar7 = (undefined8 *)FUN_14016d940(0x18); } else { puVar7 = (undefined8 *)(**(code **)(*plVar2 + 8))(plVar2,0x18); } if ((puVar7 != (undefined8 *)0x0) && (puVar7[2] = 0, local_res8 != (longlong *)0x0)) { local_res8[1] = local_res8[1] + 1; puVar8 = (undefined8 *)0x0; if ((puVar7[2] != 0) && (*(longlong *)(puVar7[2] + 8) = *(longlong *)(puVar7[2] + 8) + -1, *(longlong *)(puVar7[2] + 8) == 0)) { puVar8 = (undefined8 *)puVar7[2]; } puVar7[2] = local_res8; if (puVar8 != (undefined8 *)0x0) { pvVar3 = (void *)*puVar8; if (pvVar3 != (void *)0x0) { FUN_14004eb70((longlong)pvVar3 + 8); operator_delete(pvVar3); } FUN_14016d970(puVar8); } } puVar7[1] = uVar1; *puVar7 = 0; *(longlong *)(param_1 + 0xa0) = *(longlong *)(param_1 + 0xa0) + 1; if (*(undefined8 **)(param_1 + 0x98) == (undefined8 *)0x0) { *(undefined8 **)(param_1 + 0x90) = puVar7; } else { **(undefined8 **)(param_1 + 0x98) = puVar7; } *(undefined8 **)(param_1 + 0x98) = puVar7; FUN_1401c5db0(param_1 + 0x10,1); if (local_res8 != (longlong *)0x0) { plVar2 = local_res8 + 1; *plVar2 = *plVar2 + -1; if (*plVar2 == 0) { pvVar3 = (void *)*local_res8; if (pvVar3 != (void *)0x0) { FUN_14004eb70((longlong)pvVar3 + 8); operator_delete(pvVar3); } FUN_14016d970(local_res8); } } FUN_14016dbe0(param_1 + 0x18); return; }