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

39 lines
1.1 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140074d00 FUN_140074d00
* Pseudocode, not original source. */
void FUN_140074d00(undefined8 *param_1,longlong param_2,undefined8 param_3,undefined8 param_4)
{
longlong *plVar1;
ulonglong uVar2;
ushort uVar3;
*param_1 = Proud::CLookasideAllocatorImpl::vftable;
if (*(int *)((longlong)param_1 + 0x14) == 0) {
plVar1 = *(longlong **)param_1[9];
if (plVar1 != (longlong *)0x0) {
FUN_1400749c0(plVar1,param_2,param_3,param_4);
operator_delete(plVar1);
}
}
else {
uVar3 = 0;
uVar2 = (ulonglong)DAT_1401b5028;
if (DAT_1401b5028 != 0) {
do {
plVar1 = *(longlong **)(param_1[9] + (ulonglong)uVar3 * 8);
if (plVar1 != (longlong *)0x0) {
FUN_1400749c0(plVar1,uVar2,param_3,param_4);
operator_delete(plVar1);
uVar2 = (ulonglong)DAT_1401b5028;
}
uVar3 = uVar3 + 1;
} while ((uint)uVar3 < (uint)uVar2);
}
}
free((void *)param_1[9]);
FUN_14006fb00(param_1);
return;
}