server-re/decomp/MessageServer_Release_x64/full/functions/0x1400dd370.c

44 lines
1.7 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400dd370 FUN_1400dd370
* Pseudocode, not original source. */
longlong FUN_1400dd370(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_1401bd540);
InitializeCriticalSection((LPCRITICAL_SECTION)&DAT_1401bd580);
InitializeCriticalSection((LPCRITICAL_SECTION)&DAT_1401bd5c0);
iVar1 = FUN_1400faee0(&PTR_s_fortuna_14014e8c0);
if (iVar1 == -1) {
FUN_14006ba50(local_58,L"REGISTER PRNG ERROR : SPRNG",param_3,param_4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8);
}
iVar1 = FUN_1400fa690(&PTR_DAT_14014e840);
if (iVar1 == -1) {
FUN_14006ba50(local_58,L"REGISTER HASH ERROR : SHA1",param_3,param_4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8);
}
memcpy(&DAT_1401bd600,&PTR_s_LibTomMath_14014e67f_1_14014e6b0,0x188);
iVar1 = FUN_1400f9840(0x1401487f0);
*(int *)(param_1 + 0x1058) = iVar1;
iVar1 = FUN_1400f97a0(0x1401487e8);
uVar4 = 0;
*(int *)(param_1 + 0x105c) = iVar1;
lVar3 = param_1;
uVar2 = FUN_1400f96a0(0x80,*(uint *)(param_1 + 0x1058),param_1,(undefined *)0x0);
if ((int)uVar2 != 0) {
FUN_14006ba50(local_58,L"PRNG MAKE ERROR",lVar3,uVar4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_58,(ThrowInfo *)&DAT_1401a93e8);
}
return param_1;
}