/* 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; }