/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x14016da70 FUN_14016da70 * Pseudocode, not original source. */ undefined4 * FUN_14016da70(undefined4 *param_1,DWORD param_2,char param_3) { int iVar1; BOOL BVar2; longlong lVar3; undefined1 local_58 [80]; *(undefined1 *)(param_1 + 0xc) = 0; *param_1 = 0x3faf713; iVar1 = FUN_14016eed0(); if (iVar1 == 1) { param_2 = 0; } if ((param_3 != '\0') && (lVar3 = FUN_14016f040(), *(longlong *)(lVar3 + 0x50) != 0)) { lVar3 = FUN_14016f040(); iVar1 = (**(code **)(lVar3 + 0x50))(param_1 + 2,param_2,0x1000000); if (iVar1 != 0) { return param_1; } FUN_14016d300(local_58,L"InitializeCriticalSectionEx Failure!", L"Proud::CriticalSection::CriticalSection"); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } if (param_2 == 0) { InitializeCriticalSection((LPCRITICAL_SECTION)(param_1 + 2)); } else { BVar2 = InitializeCriticalSectionAndSpinCount((LPCRITICAL_SECTION)(param_1 + 2),param_2); if (BVar2 == 0) { FUN_14016d300(local_58,L"InitializeCriticalSectionEx Failure!", L"Proud::CriticalSection::CriticalSection"); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_1403417f8); } } return param_1; }