// // sub_57B24 from 0x57b24 to 0x57c48 (292 bytes) // // 1 xrefs: // > @ 0x10c5e0 // // 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_57B24(__int64 a1, __int64 a2, __int64 a3) { __int64 v3; // x19 __int64 v4; // x25 __int64 v5; // x24 __int64 result; // x0 __int64 v10; // x20 __int64 v11; // x8 _BYTE v12[4]; // [xsp+0h] [xbp-50h] BYREF _BYTE v13[4]; // [xsp+4h] [xbp-4Ch] BYREF __int64 v14; // [xsp+8h] [xbp-48h] BYREF __int64 v15; // [xsp+18h] [xbp-38h] BYREF v3 = *(_QWORD *)(a1 + 96); v4 = *(_QWORD *)(a1 + 104); v5 = *(_QWORD *)(a1 + 112); result = (*(__int64 (__fastcall **)(__int64, _BYTE *))(*(_QWORD *)a1 + 24LL))(a1, v12); if ( !(_DWORD)result ) { if ( a2 ) v10 = a2; else v10 = v3; if ( a3 ) v11 = a3; else v11 = v4; *(_QWORD *)(a1 + 96) = v10; *(_QWORD *)(a1 + 104) = v11; *(_QWORD *)(a1 + 112) = v5; if ( !a2 ) return 0; result = sub_C7F9C(v3, &v15, &v14, v13); if ( !(_DWORD)result ) { result = sub_C7EB4(v10, v15, v14, v13[0]); if ( !(_DWORD)result ) { result = sub_CC714(v10, 1, *(float *)(a1 + 52)); if ( !(_DWORD)result ) { result = sub_C7EB4(v3, 0, 0, 0); if ( !(_DWORD)result ) { result = sub_CC714(v3, 1, 1.0); if ( !(_DWORD)result ) { result = sub_C7D1C(v10, v12[0] == 0, 1); if ( !(_DWORD)result ) { result = sub_C7D1C(v3, 1, 1); if ( !(_DWORD)result ) return 0; } } } } } } } return result; }