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

42 lines
1.1 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14016f750 FUN_14016f750
* Pseudocode, not original source. */
longlong * FUN_14016f750(longlong *param_1,short *param_2,undefined8 param_3,undefined8 param_4)
{
short sVar1;
longlong lVar2;
int iVar3;
short *psVar4;
undefined8 uVar5;
uVar5 = 0xfffffffffffffffe;
lVar2 = (**(code **)(PTR_PTR_140346350 + 0x18))();
*param_1 = lVar2 + 0x18;
if (param_2 == (short *)0x0) {
iVar3 = 0;
}
else {
if (((ulonglong)param_2 & 0xffffffffffff0000) == 0) {
lVar2 = FUN_14016ed90((ulonglong)param_2 & 0xffff,0);
if (lVar2 == 0) {
return param_1;
}
FUN_14016f4e0(param_1,lVar2,(ulonglong)param_2 & 0xffff);
return param_1;
}
lVar2 = -1;
psVar4 = param_2;
do {
if (lVar2 == 0) break;
lVar2 = lVar2 + -1;
sVar1 = *psVar4;
psVar4 = psVar4 + 1;
} while (sVar1 != 0);
iVar3 = ~(uint)lVar2 - 1;
}
FUN_14016f5c0(param_1,param_2,iVar3,param_4,uVar5);
return param_1;
}