// // sub_58FA8 from 0x58fa8 to 0x5905c (180 bytes) // // 1 xrefs: // > @ 0x10c438 // // 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_58FA8(__int64 a1, float *a2) { float v3; // s0 float v4; // s0 float v5; // s0 __int64 result; // x0 if ( !a2 ) return 31; if ( (*(_BYTE *)(a1 + 72) & 0x10) != 0 ) { *a2 = 0.0; return 0; } else if ( (*(_BYTE *)(a1 + 512) & 0x10) != 0 ) { v3 = *(float *)(a1 + 240); result = 0; if ( v3 >= 1.0 ) { v5 = (float)(*(float *)(a1 + 164) * *(float *)(a1 + 120)) - (float)(*(float *)(a1 + 192) * (float)(*(float *)(a1 + 164) * *(float *)(a1 + 120))); v4 = (float)(v5 - (float)(*(float *)(a1 + 208) * v5)) * *(float *)(a1 + 492); } else { v4 = (float)((float)(1.0 - v3) + (float)(*(float *)(a1 + 164) * v3)) * (float)((float)((float)((float)((float)(1.0 - v3) + (float)(*(float *)(a1 + 120) * v3)) * *(float *)(a1 + 492)) * (float)((float)(1.0 - v3) + (float)((float)(1.0 - *(float *)(a1 + 192)) * v3))) * (float)((float)(1.0 - v3) + (float)((float)(1.0 - *(float *)(a1 + 208)) * v3))); } *a2 = v4; } else { *a2 = *(float *)(a1 + 492); return 0; } return result; }