// // sub_58C3C from 0x58c3c to 0x58d3c (256 bytes) // // 1 xrefs: // > @ 0x10c470 // // 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_58C3C(__int64 a1, int a2, long double a3) { __int64 v5; // x9 __int64 v6; // x8 _QWORD *v7; // x20 __int64 result; // x0 __int64 v9; // x8 __int64 v10; // x10 __int64 v11; // x8 __int64 v12; // x10 __int64 v13; // [xsp+8h] [xbp-28h] BYREF if ( !*(_QWORD *)(*(_QWORD *)(a1 + 8) + 24LL * a2 + 73664) ) { *(_QWORD *)(a1 + 8LL * a2 + 336) = 0; return 0; } LODWORD(a3) = *(_DWORD *)(a1 + 4LL * a2 + 316); v5 = a1 + 8LL * a2; v6 = *(_QWORD *)(v5 + 336); v7 = (_QWORD *)(v5 + 336); if ( *(float *)&a3 == 0.0 ) { if ( v6 ) { result = sub_59358(a1, 4294967294LL, &v13); if ( (_DWORD)result ) return result; sub_593D0(); result = sub_CB928(*(_QWORD *)(v9 + v10), v13, *v7, 4); if ( (_DWORD)result ) return result; *v7 = 0; } return 0; } if ( v6 || (result = sub_59358(a1, 4294967294LL, &v13), !(_DWORD)result) && (sub_593D0(), result = sub_59400(*(_QWORD *)(v11 + v12), v13, v7, 2), !(_DWORD)result) ) { result = sub_5875C(a1, a2, a3); if ( !(_DWORD)result ) return 0; } return result; }