/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400f1ff0 FUN_1400f1ff0 * Pseudocode, not original source. */ longlong FUN_1400f1ff0(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { longlong *plVar1; void *pvVar2; undefined8 *puVar3; longlong *plVar4; longlong *plVar5; longlong lVar6; longlong *local_res8; undefined8 *local_res10; plVar4 = operator_new(0x18); plVar5 = (longlong *)0x0; local_res8 = plVar4; if (plVar4 != (longlong *)0x0) { plVar4[2] = 0; plVar4[1] = 0; *plVar4 = param_1; local_res10 = operator_new(0x30); if (local_res10 != (undefined8 *)0x0) { plVar5 = FUN_1400efc80(local_res10); } plVar4[2] = (longlong)plVar5; plVar5 = plVar4; } if (plVar5 == (longlong *)0x0) { local_res8 = (longlong *)0x0; } else { local_res8 = (longlong *)FUN_14006cbf0(0x10); local_res8[1] = 1; *local_res8 = (longlong)plVar5; } plVar5 = local_res8; lVar6 = FUN_1400ae2a0((longlong *)(param_1 + 0x28),(longlong *)&local_res8); plVar4 = local_res8; if (plVar5 != (longlong *)0x0) { plVar1 = plVar5 + 1; *plVar1 = *plVar1 + -1; lVar6 = plVar5[1]; if (*plVar1 == 0) { pvVar2 = (void *)*local_res8; if (pvVar2 != (void *)0x0) { puVar3 = *(undefined8 **)((longlong)pvVar2 + 0x10); if (puVar3 != (undefined8 *)0x0) { (**(code **)*puVar3)(puVar3,1); } operator_delete(pvVar2); } lVar6 = FUN_14006cc60(plVar4); } } return lVar6; }