// // sub_5A244 from 0x5a244 to 0x5a364 (288 bytes) // // 3 xrefs: // > sub_59AE8 @ 0x59c5c // > sub_7C19C @ 0x7c4ac // > sub_7C19C @ 0x7c65c // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // __int64 __fastcall sub_5A244(float *a1, unsigned int *a2) { unsigned int i; // w21 __int64 result; // x0 _BYTE v6[4]; // [xsp+Ch] [xbp-14h] BYREF (*(void (__fastcall **)(float *, _QWORD))(*(_QWORD *)a1 + 144LL))(a1, *a2); sub_596C0((__int64)a1); (*(void (__fastcall **)(float *, float))(*(_QWORD *)a1 + 72LL))(a1, a1[13]); sub_5A76C(a1, a2[2], 2, a2[3], 2); sub_5A8E8(a1, a2[6]); sub_5A918(a1, a2[1], 2); (*(void (__fastcall **)(float *, _QWORD, float))(*(_QWORD *)a1 + 32LL))(a1, 0, a1[12]); for ( i = 0; i != 4; ++i ) (*(void (__fastcall **)(float *, _QWORD))(*(_QWORD *)a1 + 120LL))(a1, i); if ( !*((_QWORD *)a1 + 46) || ((*(void (__fastcall **)(float *, _BYTE *))(*(_QWORD *)a1 + 496LL))(a1, v6), result = sub_55C9C((__int64)a1, *((_QWORD *)a1 + 10), 0, 1u, v6[0], 0), !(_DWORD)result) ) { (*(void (__fastcall **)(_QWORD))(**((_QWORD **)a2 + 2) + 208LL))(*((_QWORD *)a2 + 2)); *(_DWORD *)(*((_QWORD *)a2 + 2) + 60LL) &= ~0x8000u; return 0; } return result; }