/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400c5bc0 FUN_1400c5bc0 * Pseudocode, not original source. */ ulonglong FUN_1400c5bc0(longlong param_1,longlong param_2,uint *param_3,longlong param_4) { uint uVar1; undefined8 uVar2; ulonglong uVar3; uint *puVar4; longlong lVar5; uint local_res18 [4]; undefined **local_38; undefined4 local_30; undefined2 local_2c; undefined **local_28; undefined4 local_20; undefined2 local_1c; uVar1 = *param_3; puVar4 = param_3; lVar5 = param_4; uVar2 = FUN_1400bd260(param_3,local_res18,param_3,param_4); if ((char)uVar2 == '\0') { LAB_1400c5bfc: uVar3 = FUN_1400bc600((int *)param_3, (ulonglong)(uint)((int)(((int)uVar1 >> 0x1f & 7U) + uVar1) >> 3),puVar4, lVar5); uVar3 = uVar3 & 0xffffffffffffff00; } else { if (local_res18[0] == 0xc) { local_28 = Proud::AddrPort::vftable; local_20 = *(undefined4 *)(param_2 + 8); local_1c = *(undefined2 *)(param_2 + 0xc); uVar2 = FUN_1400c3820(param_1,param_3,(longlong)&local_28,param_4); } else { if (local_res18[0] != 0x10) goto LAB_1400c5bfc; local_38 = Proud::AddrPort::vftable; local_30 = *(undefined4 *)(param_2 + 8); local_2c = *(undefined2 *)(param_2 + 0xc); uVar2 = FUN_1400c3bc0(param_1,param_3,(longlong)&local_38,param_4); } uVar3 = CONCAT71((int7)((ulonglong)uVar2 >> 8),1); } return uVar3; }