// // sub_5B838 from 0x5b838 to 0x5b95c (292 bytes) // // 1 xrefs: // > @ 0x10c6d8 // // 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_5B838(__int64 a1, __int64 a2) { __int64 v2; // x0 __int64 v3; // x1 char v4; // zf __int64 v5; // x0 __int64 v6; // x1 __int64 v7; // x0 __int64 v8; // x1 __int64 v9; // x0 __int64 v10; // x1 __int64 v11; // x0 __int64 v12; // x1 __int64 v13; // x0 __int64 v14; // x1 __int64 v15; // x0 __int64 v16; // x1 __int64 v17; // x0 __int64 result; // x0 __int64 v19; // x8 __int64 v20; // x19 __int64 v21; // x9 __int64 v22; // x1 __int64 v23; // x2 __int64 v24; // x8 int v25; // w8 __int64 v26; // x2 unsigned int v27; // [xsp+Ch] [xbp-1014h] BYREF _BYTE v28[4096]; // [xsp+10h] [xbp-1010h] BYREF v2 = sub_5C748(a1, a2); if ( v4 ) return 29; v5 = sub_5C748(v2, v3); if ( v4 ) return 29; v7 = sub_5C748(v5, v6); if ( v4 ) return 29; v9 = sub_5C748(v7, v8); if ( v4 ) return 29; v11 = sub_5C748(v9, v10); if ( v4 ) return 29; v13 = sub_5C748(v11, v12); if ( v4 ) return 29; v15 = sub_5C748(v13, v14); if ( v4 ) return 29; v17 = sub_5C748(v15, v16); if ( v4 ) return 29; v19 = *(_QWORD *)(v17 + 472); v20 = v17; if ( !v19 || !*(_QWORD *)(v17 + 32) ) return 30; v21 = *(_QWORD *)(v19 + 40); if ( v21 ) { v22 = *(unsigned int *)(v21 + 104); v23 = *(unsigned int *)(v21 + 116); goto LABEL_18; } v24 = *(_QWORD *)(v19 + 48); if ( !v24 ) return 30; v22 = *(unsigned __int16 *)(v24 + 280); v23 = 0; LABEL_18: result = sub_C9A84(*(unsigned int *)(v17 + 548), v22, v23, v28, &v27); if ( !(_DWORD)result ) { v25 = *(_DWORD *)(v20 + 548); v26 = 2; if ( v25 != 3 && v25 != 1000 ) v26 = *(unsigned int *)(*(_QWORD *)(v20 + 8) + 1748LL); return (*(__int64 (__fastcall **)(__int64, _BYTE *, __int64, _QWORD, _QWORD, __int64))(*(_QWORD *)v20 + 200LL))( v20, v28, v26, v27, 0, 1); } return result; }