server-re/decomp/Agent_Release_x64/full/functions/0x14002a130.c
2026-10-14 16:45:19 -04:00

45 lines
1.2 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x14002a130 FUN_14002a130
* Pseudocode, not original source. */
undefined * FUN_14002a130(longlong param_1,longlong param_2)
{
longlong lVar1;
longlong lVar2;
longlong lVar3;
undefined **ppuVar4;
double dVar5;
dVar5 = (double)param_2;
if (param_2 < 0) {
dVar5 = dVar5 + 1.8446744073709552e+19;
}
dVar5 = floor(dVar5 / (double)*(float *)(param_1 + 0x28));
if (dVar5 < 1.8446744073709552e+19) {
lVar1 = 0;
if ((9.223372036854776e+18 < dVar5) &&
(dVar5 = dVar5 - 9.223372036854776e+18, dVar5 < 9.223372036854776e+18)) {
lVar1 = -0x8000000000000000;
}
lVar1 = (longlong)dVar5 + lVar1;
}
else {
lVar1 = -1;
}
ppuVar4 = (undefined **)&DAT_14011fe50;
lVar3 = 0x28;
do {
lVar2 = lVar3 / 2;
if (ppuVar4[lVar2] < (undefined *)(lVar1 + 1U)) {
ppuVar4 = ppuVar4 + lVar2 + 1;
lVar2 = lVar3 + (-1 - lVar2);
}
lVar3 = lVar2;
} while (0 < lVar2);
if (ppuVar4 == &MBISingleton<MagiServerOption>::vftable_meta_ptr) {
return (undefined *)0xfffffffb;
}
return *ppuVar4;
}