// // sub_53484 from 0x53484 to 0x53590 (268 bytes) // // 2 xrefs: // > sub_53348 @ 0x533c0 // > sub_537A4 @ 0x53804 // // 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_53484(__int64 a1, __int64 a2, long double a3) { __int64 v3; // x11 int v4; // w9 __int64 v5; // x12 __int64 v6; // x8 __int64 v7; // x10 float v8; // s6 float v9; // s2 float v10; // s5 float v11; // s1 __int64 v12; // x11 float v13; // s1 __int64 v14; // x11 __int64 v15; // x3 __int64 v16; // x1 __int64 result; // x0 if ( !a2 ) return 31; v3 = *(_QWORD *)(a1 + 24); v4 = *(_DWORD *)(v3 + 72); if ( (v4 & 2) != 0 ) *(float *)&a3 = 0.0; if ( !*(_QWORD *)(a2 + 8) ) return 0; v5 = *(int *)(a2 + 16); v6 = *(_QWORD *)(v3 + 8 * v5 + 336); if ( !v6 ) return 0; v7 = *(_QWORD *)(v3 + 32); v8 = *(float *)(v3 + 4 * v5 + 316); v9 = (float)(1.0 - *(float *)(v3 + 240)) + (float)(*(float *)(v3 + 120) * *(float *)(v3 + 240)); v10 = *(float *)(v3 + 536); v11 = (float)(1.0 - *(float *)(v3 + 196)) - (float)(*(float *)(v3 + 212) * (float)(1.0 - *(float *)(v3 + 196))); v12 = *(_QWORD *)(a1 + 40); v13 = v11 * (float)((float)((float)((float)(*(float *)(v7 + 500) * v8) * v10) * *(float *)(v7 + 492)) * v9); if ( v12 ) { v14 = *(_QWORD *)(v12 + 280); if ( v14 ) v13 = *(float *)(v14 + 120) * v13; } *(float *)&a3 = v13 * *(float *)&a3; if ( (v4 & 0x200000) != 0 ) { v15 = 1; v16 = 64; } else if ( (*(_BYTE *)(v7 + 72) & 0x10) != 0 ) { v16 = 0; v15 = 0; } else { v15 = 0; v16 = (unsigned __int8)((v4 & 0xC0020) == 0) << 6; } result = sub_AC5A0(v6, v16, (*(_DWORD *)(a1 + 60) & 0x10000) == 0, v15, a3); if ( !(_DWORD)result ) return 0; return result; }