server-re/decomp/DBCServer_Release_x64/full/functions/0x14015abd0.c

49 lines
1.4 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14015abd0 FUN_14015abd0
* Pseudocode, not original source. */
void FUN_14015abd0(longlong param_1)
{
longlong lVar1;
undefined8 *puVar2;
char *local_res8;
undefined **local_38;
undefined8 local_30;
undefined8 local_28;
undefined8 local_20;
undefined8 local_18;
undefined8 local_10;
lVar1 = *(longlong *)(param_1 + 8);
if (lVar1 != 0) {
if (*(longlong *)(lVar1 + 0x10) != 0) {
FUN_14015a580(*(longlong *)(lVar1 + 0x10),*(undefined8 *)(lVar1 + 0x18));
operator_delete(*(void **)(lVar1 + 0x10));
}
*(undefined8 *)(lVar1 + 0x10) = 0;
*(undefined8 *)(lVar1 + 0x18) = 0;
*(undefined8 *)(lVar1 + 0x20) = 0;
*(undefined1 *)(param_1 + 0x11) = 0;
return;
}
*(undefined2 *)(param_1 + 0x10) = 0;
puVar2 = operator_new(0x30);
if (puVar2 != (undefined8 *)0x0) {
*(undefined8 **)(param_1 + 8) = puVar2;
*puVar2 = 0;
puVar2[1] = local_30;
puVar2[2] = local_28;
puVar2[3] = local_20;
puVar2[4] = local_18;
puVar2[5] = local_10;
*(undefined1 *)(param_1 + 0x10) = 1;
return;
}
local_res8 = (char *)0x0;
std::exception::exception((exception *)&local_38,&local_res8);
local_38 = std::bad_alloc::vftable;
/* WARNING: Subroutine does not return */
_CxxThrowException(&local_38,(ThrowInfo *)&DAT_140341858);
}