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