/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400d5870 FUN_1400d5870 * Pseudocode, not original source. */ ulonglong FUN_1400d5870(longlong *param_1,longlong *param_2,double param_3,undefined8 param_4) { longlong *plVar1; bool bVar2; ulonglong in_RAX; ulonglong uVar3; undefined8 in_R8; longlong *plVar4; undefined8 uVar5; exception local_68 [96]; plVar1 = (longlong *)*param_1; if (plVar1 == (longlong *)0x0) { uVar3 = in_RAX & 0xffffffffffffff00; } else { if ((int)plVar1[0x2b] + (int)plVar1[0x28] + (int)plVar1[0x24] + (int)plVar1[0x21] + (int)plVar1[0x1d] + (int)plVar1[0x1a] + (int)plVar1[0x16] + (int)plVar1[0x13] + (int)plVar1[0xf] + (int)plVar1[0xc] + (int)plVar1[8] + (int)plVar1[5] + (int)plVar1[0x36] == 0) { FUN_14006ba50(local_68,L"Unexpected state in RemoteToPacketSendMap!",in_R8,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_68,(ThrowInfo *)&DAT_1401a93e8); } uVar5 = (**(code **)(*(longlong *)param_1[3] + 8))(); plVar4 = param_2; FUN_1400d4950((short *)plVar1,uVar5,param_2,param_4); if (param_2[1] == 0) { FUN_14006ba50(local_68,L"Unexpected state in RemoteToPacketSendMap #2!",plVar4,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_68,(ThrowInfo *)&DAT_1401a93e8); } bVar2 = FUN_1400d3700((longlong)plVar1,param_3); if ((bVar2) || ((longlong *)plVar1[2] == (longlong *)0x0)) { if ((longlong *)plVar1[2] != (longlong *)0x0) { FUN_1400d34f0((longlong *)plVar1[2],plVar1,plVar4,param_4); } uVar5 = FUN_1400d3870(param_1,plVar1,plVar4,param_4); } else { uVar5 = FUN_1400d34f0((longlong *)plVar1[2],plVar1,plVar4,param_4); } plVar1[0x2d] = (longlong)param_3; uVar3 = CONCAT71((int7)((ulonglong)uVar5 >> 8),1); } return uVar3; }