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

42 lines
1 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x14009b970 FUN_14009b970
* Pseudocode, not original source. */
uint FUN_14009b970(longlong param_1,longlong param_2)
{
uint uVar1;
longlong lVar2;
uint *puVar3;
int iVar4;
uint uVar5;
float fVar6;
fVar6 = (float)param_2;
if (param_2 < 0) {
fVar6 = fVar6 + 1.8446744e+19;
}
fVar6 = fVar6 / *(float *)(param_1 + 0x2c);
lVar2 = 0;
if ((9.223372e+18 < fVar6) && (fVar6 = fVar6 - 9.223372e+18, fVar6 < 9.223372e+18)) {
lVar2 = -0x8000000000000000;
}
uVar5 = (uint)((longlong)fVar6 + lVar2);
if (0xffffffff < (ulonglong)((longlong)fVar6 + lVar2)) {
uVar5 = 0xffffffff;
}
iVar4 = 0;
if (0x11 < uVar5) {
puVar3 = &DAT_14012f530;
do {
puVar3 = puVar3 + 1;
iVar4 = iVar4 + 1;
} while (*puVar3 < uVar5);
}
uVar1 = (&DAT_14012f530)[iVar4];
if ((&DAT_14012f530)[iVar4] == 0xffffffff) {
uVar1 = uVar5;
}
return uVar1;
}