/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a0d10 FUN_1400a0d10 * Pseudocode, not original source. */ longlong FUN_1400a0d10(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { int iVar1; undefined8 uVar2; longlong lVar3; undefined8 uVar4; exception local_58 [80]; InitializeCriticalSection((LPCRITICAL_SECTION)&DAT_1401631e0); InitializeCriticalSection((LPCRITICAL_SECTION)&DAT_140163220); InitializeCriticalSection((LPCRITICAL_SECTION)&DAT_140163260); iVar1 = FUN_1400be4c0(&PTR_s_fortuna_140110ae0); if (iVar1 == -1) { FUN_14002f1e0(local_58,L"REGISTER PRNG ERROR : SPRNG",param_3,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_140151b88); } iVar1 = FUN_1400bdc60(&PTR_DAT_140110a60); if (iVar1 == -1) { FUN_14002f1e0(local_58,L"REGISTER HASH ERROR : SHA1",param_3,param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_140151b88); } memcpy(&DAT_1401632a0,&PTR_s_LibTomMath_14011089f_1_1401108d0,0x188); iVar1 = FUN_1400bce10(0x14010aa10); *(int *)(param_1 + 0x1058) = iVar1; iVar1 = FUN_1400bcd70(0x14010aa08); uVar4 = 0; *(int *)(param_1 + 0x105c) = iVar1; lVar3 = param_1; uVar2 = FUN_1400bcc70(0x80,*(uint *)(param_1 + 0x1058),param_1,(undefined *)0x0); if ((int)uVar2 != 0) { FUN_14002f1e0(local_58,L"PRNG MAKE ERROR",lVar3,uVar4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_58,(ThrowInfo *)&DAT_140151b88); } return param_1; }