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

50 lines
1.2 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14006be90 FUN_14006be90
* Pseudocode, not original source. */
undefined8
FUN_14006be90(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
longlong *plVar1;
longlong *plVar2;
longlong lVar3;
longlong *local_res18;
undefined8 uVar4;
uVar4 = 0xfffffffffffffffe;
Ordinal_8();
plVar2 = operator_new(0x18);
if (plVar2 == (longlong *)0x0) {
plVar2 = (longlong *)0x0;
}
else {
plVar2[1] = 0;
*(undefined4 *)(plVar2 + 2) = 1;
local_res18 = plVar2;
lVar3 = FUN_1402182d0(param_2);
*plVar2 = lVar3;
}
local_res18 = plVar2;
if (plVar2 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_140218220(0x8007000e);
}
FUN_140063910(param_1,&local_res18,param_3,param_4,uVar4);
LOCK();
plVar1 = plVar2 + 2;
lVar3 = *plVar1;
*(int *)plVar1 = (int)*plVar1 + -1;
UNLOCK();
if ((int)lVar3 == 1) {
if (*plVar2 != 0) {
Ordinal_6();
}
if ((void *)plVar2[1] != (void *)0x0) {
operator_delete__((void *)plVar2[1]);
}
operator_delete(plVar2);
}
return param_1;
}