// // sub_584E4 from 0x584e4 to 0x585b0 (204 bytes) // // 1 xrefs: // > @ 0x10c408 // // 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_584E4(__int64 a1, int a2) { int v2; // w8 __int64 v3; // x9 unsigned int v4; // w10 int v5; // w8 char v7; // w19 __int64 v8; // x1 __int64 result; // x0 __int64 v10; // [xsp+8h] [xbp-18h] BYREF v2 = *(_DWORD *)(a1 + 72); if ( ((v2 ^ a2) & 1) == 0 ) return 0; v3 = *(_QWORD *)(a1 + 32); v4 = v2 & 0xFFFFFFFE; v5 = v2 | 1; v7 = a2; if ( (a2 & 1) == 0 ) v5 = v4; *(_DWORD *)(a1 + 72) = v5; if ( v3 ) v8 = (*(unsigned __int8 *)(v3 + 72) >> 4) & 1; else v8 = 0; sub_585B0(a1, v8); if ( (v7 & 1) == 0 && (*(_BYTE *)(a1 + 512) & 0x10) != 0 ) { *(_DWORD *)(a1 + 72) |= 0x80000u; result = sub_58380(a1, 0, 1); if ( (_DWORD)result ) return result; *(_DWORD *)(a1 + 72) &= ~0x80000u; } result = sub_59358(a1, 0, &v10); if ( !(_DWORD)result ) return sub_C7D1C(v10, (v7 & 1) == 0, 1); return result; }