// // sub_5BECC from 0x5becc to 0x5bfd4 (264 bytes) // // 2 xrefs: // > sub_922A0 @ 0x925bc // > @ 0x10c6c8 // // 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_5BECC(__int64 a1, _BYTE *a2) { _BYTE *v3; // x0 __int64 result; // x0 __int64 v6; // x8 __int64 v7; // x8 __int64 v8; // x9 __int64 v9; // x21 __int64 v10; // x8 __int64 v11; // x9 if ( !a2 ) return 31; *a2 = 0; v3 = *(_BYTE **)(a1 + 472); if ( !v3 ) return 30; if ( (v3[60] & 0x80) != 0 ) { *a2 = 0; return 0; } else { result = (*(__int64 (__fastcall **)(_BYTE *, _BYTE *, _QWORD))(*(_QWORD *)v3 + 184LL))(v3, a2, 0); if ( !(_DWORD)result ) { if ( *a2 || (*(_BYTE *)(*(_QWORD *)(a1 + 472) + 62LL) & 1) != 0 ) return 0; v6 = *(_QWORD *)(a1 + 416); *(_DWORD *)(a1 + 484) = -1; if ( v6 ) { sub_59598(a1 + 400); v7 = *(_QWORD *)(a1 + 8); v8 = *(_QWORD *)(v7 + 1624); *(_QWORD *)(a1 + 400) = v7 + 1616; *(_QWORD *)(a1 + 408) = v8; *(_QWORD *)(v7 + 1624) = a1 + 400; **(_QWORD **)(a1 + 408) = a1 + 400; *(_QWORD *)(a1 + 416) = a1; } if ( !*(_QWORD *)(a1 + 448) ) return 0; v9 = *(_QWORD *)(*(_QWORD *)(a1 + 472) + 40LL); if ( !v9 ) { return 0; } else { sub_59598(a1 + 432); v10 = *(_QWORD *)(v9 + 280); v11 = *(_QWORD *)(v10 + 72); *(_QWORD *)(a1 + 432) = v10 + 64; *(_QWORD *)(a1 + 440) = v11; *(_QWORD *)(v10 + 72) = a1 + 432; **(_QWORD **)(a1 + 440) = a1 + 432; *(_QWORD *)(a1 + 448) = a1; return 0; } } } return result; }