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

47 lines
1.6 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400d8240 FUN_1400d8240
* Pseudocode, not original source. */
undefined8 *
FUN_1400d8240(undefined8 *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
{
longlong lVar1;
float fVar2;
exception local_50 [72];
FUN_1400d5740((undefined1 *)(param_1 + 1));
*param_1 = param_2;
*(undefined4 *)((longlong)param_1 + 0x34) = 0x3e99999a;
*(undefined4 *)(param_1 + 7) = 0x3d4ccccd;
*(undefined4 *)((longlong)param_1 + 0x3c) = 0x41000000;
fVar2 = (float)*(uint *)(param_1 + 6) * 8.0;
lVar1 = 0;
if ((9.223372e+18 < fVar2) && (fVar2 = fVar2 - 9.223372e+18, fVar2 < 9.223372e+18)) {
lVar1 = -0x8000000000000000;
}
param_1[8] = (longlong)fVar2 + lVar1;
fVar2 = (float)*(uint *)(param_1 + 6) * 0.05;
lVar1 = 0;
if ((9.223372e+18 < fVar2) && (fVar2 = fVar2 - 9.223372e+18, fVar2 < 9.223372e+18)) {
lVar1 = -0x8000000000000000;
}
param_1[9] = (longlong)fVar2 + lVar1;
if ((ulonglong)((longlong)fVar2 + lVar1) < 0x11) {
param_1[9] = 0;
}
lVar1 = (**(code **)(*param_2 + 0x18))(param_2);
if (lVar1 == 0) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
if (param_1[5] != 0) {
FUN_14006ba50(local_50,(wchar_t *)PTR_u_Collection_object_can_use_fast_h_1401ac1d0,param_3,
param_4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_50,(ThrowInfo *)&DAT_1401a93e8);
}
param_1[0xb] = lVar1;
return param_1;
}