/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14008f6c0 FUN_14008f6c0 * Pseudocode, not original source. */ void FUN_14008f6c0(longlong *param_1,ulonglong *param_2,short *param_3,undefined8 param_4) { longlong *plVar1; int *piVar2; int *piVar3; longlong lVar4; undefined8 uVar5; undefined **ppuVar6; undefined *local_res8; ulonglong *local_res10; local_res10 = param_2; if (param_1[0x2fe] != 0) { if (*param_2 == 0) { piVar3 = (int *)0x0; } else { piVar3 = *(int **)(*param_2 + 0x38); } plVar1 = FUN_140078d30(piVar3,(longlong *)&local_res8,param_3,param_4); param_3 = (short *)*plVar1; if (param_3 == (short *)0x0) { param_3 = (short *)PTR_DAT_1401ac010; } uVar5 = 0; lVar4 = param_1[0x2fe]; FUN_1400cb700(lVar4,0,param_3,param_4); if (((local_res8 != (undefined *)0x0) && (local_res8 != PTR_DAT_1401ac010)) && (local_res8 + -8 != (undefined *)0x0)) { piVar2 = (int *)FUN_14006cb70(lVar4,uVar5,param_3,param_4); FUN_14006b350(piVar2); piVar3 = (int *)(local_res8 + -4); *piVar3 = *piVar3 + -1; if (*piVar3 == 0) { FUN_14006cc60(local_res8 + -8); } FUN_14006b3e0((longlong)piVar2); } } local_res8 = (undefined *)0x0; FUN_140078ae0((ulonglong *)&local_res8,param_2,param_3,param_4); ppuVar6 = &local_res8; FUN_1400bf6d0(param_1,(longlong *)ppuVar6,param_3,param_4); FUN_140064150((longlong *)param_2,ppuVar6,param_3,param_4); return; }