server-re/decomp/AgentManager_Release_x64/full/functions/0x14008ef20.c
2026-10-15 09:58:24 -04:00

48 lines
1.6 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14008ef20 FUN_14008ef20
* Pseudocode, not original source. */
undefined1 *
FUN_14008ef20(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined1 *puVar1;
ulonglong uVar2;
longlong lVar3;
float fVar4;
exception local_50 [72];
puVar1 = (undefined1 *)
(**(code **)(*param_1 + 8))(param_1,0x78,param_3,param_4,0xfffffffffffffffe);
if (puVar1 != (undefined1 *)0x0) {
FUN_14008ded0(puVar1);
}
*(undefined4 *)(puVar1 + 0x2c) = 0x3dcccccd;
*(undefined4 *)(puVar1 + 0x30) = 0x33d6bf95;
*(undefined4 *)(puVar1 + 0x34) = 0x40066666;
fVar4 = (float)*(uint *)(puVar1 + 0x28) * 2.1;
lVar3 = 0;
if ((9.223372e+18 < fVar4) && (fVar4 = fVar4 - 9.223372e+18, fVar4 < 9.223372e+18)) {
lVar3 = -0x8000000000000000;
}
*(longlong *)(puVar1 + 0x38) = (longlong)fVar4 + lVar3;
fVar4 = (float)*(uint *)(puVar1 + 0x28) * 1e-07;
lVar3 = 0;
if ((9.223372e+18 < fVar4) && (fVar4 = fVar4 - 9.223372e+18, fVar4 < 9.223372e+18)) {
lVar3 = -0x8000000000000000;
}
uVar2 = (longlong)fVar4 + lVar3;
if ((ulonglong)((longlong)fVar4 + lVar3) < 0x11) {
uVar2 = 0;
}
*(ulonglong *)(puVar1 + 0x40) = uVar2;
if (*(longlong *)(puVar1 + 0x20) != 0) {
FUN_14003db10(local_50,(wchar_t *)PTR_u_Collection_object_can_use_fast_h_14016f1d0,param_3,
param_4);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_50,(ThrowInfo *)&DAT_14016c210);
}
*(longlong **)(puVar1 + 0x50) = param_1;
return puVar1;
}