// // sub_5BFFC from 0x5bffc to 0x5c144 (328 bytes) // // 1 xrefs: // > @ 0x10c808 // // 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_5BFFC(__int64 a1, __int64 a2, __int64 a3) { __int64 v3; // x20 __int64 v4; // x25 __int64 v5; // x24 __int64 result; // x0 __int64 v10; // x21 __int64 v11; // x8 int v12; // w22 __int64 v13; // x0 __int64 v14; // [xsp+0h] [xbp-50h] BYREF __int64 v15; // [xsp+8h] [xbp-48h] BYREF _BYTE v16[4]; // [xsp+18h] [xbp-38h] BYREF _BYTE v17[4]; // [xsp+1Ch] [xbp-34h] BYREF v3 = *(_QWORD *)(a1 + 96); v4 = *(_QWORD *)(a1 + 104); v5 = *(_QWORD *)(a1 + 112); result = (*(__int64 (__fastcall **)(__int64, _BYTE *))(*(_QWORD *)a1 + 24LL))(a1, v17); if ( !(_DWORD)result ) { v10 = a2 ? a2 : v3; v11 = a3 ? a3 : v4; *(_QWORD *)(a1 + 96) = v10; *(_QWORD *)(a1 + 104) = v11; *(_QWORD *)(a1 + 112) = v5; if ( !a2 ) return 0; v12 = v17[0]; result = sub_C7F9C(v3, &v15, &v14, v16); if ( !(_DWORD)result ) { result = sub_C7EB4(v10, v15, v14, v16[0]); if ( !(_DWORD)result ) { result = sub_CC714(v10, 1, *(float *)(a1 + 52)); if ( !(_DWORD)result ) { result = sub_C7D1C(v10, v12 == 0, 1); if ( !(_DWORD)result ) { result = sub_C7EB4(v3, 0, 0, 0); if ( !(_DWORD)result ) { result = sub_CC714(v3, 1, 1.0); if ( !(_DWORD)result ) { if ( v3 == v5 || (result = sub_C7D1C(v3, 1, 1), !(_DWORD)result) ) { v13 = *(_QWORD *)(a1 + 472); if ( !v13 ) return 0; if ( !v17[0] ) return 0; result = (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v13 + 88LL))(v13, 1); if ( !(_DWORD)result ) return 0; } } } } } } } } return result; }