// // sub_5CF84 from 0x5cf84 to 0x5d078 (244 bytes) // // 5 xrefs: // > sub_54DB0 @ 0x54ec0 // > sub_5CE24 @ 0x5cea0 // > sub_5CE24 @ 0x5ced8 // > sub_6FA5C @ 0x6fa9c // > sub_7BF50 @ 0x7c034 // // 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_5CF84(__int64 a1, __int64 *a2, __int64 *a3, float *a4, float *a5) { __int64 v10; // x9 int v16; // w8 __int64 v17; // x9 __int64 v19; // [xsp+8h] [xbp-68h] BYREF int v20; // [xsp+10h] [xbp-60h] __int64 v21; // [xsp+14h] [xbp-5Ch] int v22; // [xsp+1Ch] [xbp-54h] __int64 v23; // [xsp+20h] [xbp-50h] __int64 v24; // [xsp+28h] [xbp-48h] __int64 v25; // [xsp+30h] [xbp-40h] BYREF char v26; // [xsp+38h] [xbp-38h] if ( *(_QWORD *)(a1 + 416) ) { v25 = *(_QWORD *)(a1 + 400); FMOD_OS_CriticalSection_Enter(v25); v26 = 1; sub_5D454(a1); v10 = *a2; __asm { FMOV V0.2S, #1.0 } v20 = *((_DWORD *)a2 + 2); v19 = v10; v16 = *((_DWORD *)a3 + 2); v17 = *a3; v23 = _D0; v24 = 0; v22 = v16; v21 = v17; sub_611CC(*(_QWORD *)(a1 + 416), sub_5D414, &v19, a2, a3); if ( a4 ) *a4 = 1.0 - *(float *)&v23; if ( a5 ) *a5 = 1.0 - *((float *)&v23 + 1); sub_52090((__int64)&v25); } else { if ( a4 ) *a4 = 0.0; if ( a5 ) *a5 = 0.0; } return 0; }