/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x1400bc8a0 FUN_1400bc8a0 * Pseudocode, not original source. */ void FUN_1400bc8a0(int *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { uint uVar1; undefined8 uVar2; int *piVar3; char *pcVar4; undefined8 uVar5; char local_res8 [32]; exception local_58 [80]; if ((char)param_1[8] != '\0') { pcVar4 = local_res8; uVar5 = 1; piVar3 = param_1; uVar2 = FUN_1400bc6c0(param_1,(undefined8 *)pcVar4,1,param_4); if (((char)uVar2 == '\0') || (local_res8[0] != -2)) { if (*(longlong *)(param_1 + 2) == 0) { if (*(longlong *)(param_1 + 4) == 0) { /* WARNING: Subroutine does not return */ FUN_1400d1900(piVar3,pcVar4,uVar5,param_4); } uVar1 = param_1[6]; } else { uVar1 = *(uint *)(*(longlong *)(param_1 + 2) + 0x18); } FUN_14006ba50(local_58,L"CMessage: Test splitter failure(reading=%d,length=%d)", (ulonglong)(uint)((int)((*param_1 >> 0x1f & 7U) + *param_1) >> 3), (ulonglong)uVar1); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8); } } return; }