50 lines
1.2 KiB
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;
|
|
}
|
|
|