/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140061f40 FUN_140061f40 * Pseudocode, not original source. */ undefined * FUN_140061f40(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_140163950; 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::vftable_meta_ptr) { return (undefined *)0xfffffffb; } return *ppuVar4; }