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

50 lines
1.3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14016aad0 FUN_14016aad0
* Pseudocode, not original source. */
void FUN_14016aad0(longlong *param_1,int param_2,void *param_3,int param_4)
{
void *pvVar1;
if (param_1 == (longlong *)0x0) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x80070057);
}
if (param_2 < 0) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x80070057);
}
if (param_3 == (void *)0x0) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x80070057);
}
pvVar1 = (void *)*param_1;
if (pvVar1 == param_3) {
if (param_2 <= param_4) {
*param_1 = (longlong)param_3;
goto LAB_14016ab61;
}
pvVar1 = calloc((longlong)param_2,1);
}
else {
if (param_2 <= param_4) {
free(pvVar1);
*param_1 = (longlong)param_3;
goto LAB_14016ab61;
}
pvVar1 = _recalloc(pvVar1,(longlong)param_2,1);
if (pvVar1 == (void *)0x0) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x8007000e);
}
}
*param_1 = (longlong)pvVar1;
LAB_14016ab61:
if (*param_1 == 0) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x8007000e);
}
return;
}