/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14006b270 FUN_14006b270 * Pseudocode, not original source. */ undefined4 * FUN_14006b270(undefined4 *param_1,ulonglong param_2,undefined8 param_3,undefined8 param_4) { DWORD DVar1; int iVar2; BOOL BVar3; undefined *puVar4; ulonglong uVar5; ulonglong uVar6; char cVar7; exception local_58 [80]; cVar7 = (char)param_3; uVar6 = param_2 & 0xffffffff; *(undefined1 *)(param_1 + 0xc) = 0; *param_1 = 0x3faf713; DVar1 = FUN_14006c0c0(); uVar5 = 0; if (DVar1 == 1) { uVar6 = uVar5; } if ((cVar7 != '\0') && (puVar4 = FUN_14006c230(0,param_2,param_3,param_4), *(longlong *)(puVar4 + 0x50) != 0)) { puVar4 = FUN_14006c230(uVar5,param_2,param_3,param_4); iVar2 = (**(code **)(puVar4 + 0x50))(param_1 + 2,uVar6,0x1000000); if (iVar2 != 0) { return param_1; } FUN_14006ba50(local_58,L"InitializeCriticalSectionEx Failure!", L"Proud::CriticalSection::CriticalSection",param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8); } if ((DWORD)uVar6 == 0) { InitializeCriticalSection((LPCRITICAL_SECTION)(param_1 + 2)); } else { BVar3 = InitializeCriticalSectionAndSpinCount((LPCRITICAL_SECTION)(param_1 + 2),(DWORD)uVar6); if (BVar3 == 0) { FUN_14006ba50(local_58,L"InitializeCriticalSectionEx Failure!", L"Proud::CriticalSection::CriticalSection",param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8); } } return param_1; }