server-re/decomp/MessageServer_Release_x64/full/functions/0x14006b4a0.c

50 lines
1.4 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14006b4a0 FUN_14006b4a0
* Pseudocode, not original source. */
void FUN_14006b4a0(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_1400064e0(0x80070057);
}
if (param_2 < 0) {
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x80070057);
}
if (param_3 == (void *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x80070057);
}
pvVar1 = (void *)*param_1;
if (pvVar1 == param_3) {
if (param_2 <= param_4) {
*param_1 = (longlong)param_3;
goto LAB_14006b531;
}
pvVar1 = calloc((longlong)param_2,1);
}
else {
if (param_2 <= param_4) {
free(pvVar1);
*param_1 = (longlong)param_3;
goto LAB_14006b531;
}
pvVar1 = _recalloc(pvVar1,(longlong)param_2,1);
if (pvVar1 == (void *)0x0) {
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x8007000e);
}
}
*param_1 = (longlong)pvVar1;
LAB_14006b531:
if (*param_1 == 0) {
/* WARNING: Subroutine does not return */
FUN_1400064e0(0x8007000e);
}
return;
}