// // sub_58380 from 0x58380 to 0x5848c (268 bytes) // // 2 xrefs: // > sub_584E4 @ 0x58568 // > sub_7C13C @ 0x7c178 // // 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_58380(__int64 a1, __int64 a2, char a3) { int v4; // w20 __int64 result; // x0 unsigned int i; // w20 __int64 v8; // x8 float v9; // s0 int v10; // w8 __int64 v11; // [xsp+0h] [xbp-30h] BYREF int v12; // [xsp+Ch] [xbp-24h] BYREF v4 = a2; result = sub_55DCC((__int64 *)a1, a2, a3 & 1, 0); if ( !(_DWORD)result ) { if ( (*(_BYTE *)(a1 + 512) & 0x10) == 0 || (result = sub_54DB0(a1, v4, a3 & 1), !(_DWORD)result) ) { result = (*(__int64 (__fastcall **)(__int64, int *))(*(_QWORD *)a1 + 296LL))(a1, &v12); if ( !(_DWORD)result ) { for ( i = 0; (int)i < v12; ++i ) { result = sub_59358(a1, i, &v11); if ( (_DWORD)result ) return result; if ( v11 && *(_DWORD *)(v11 + 256) == 35 ) { v8 = *(_QWORD *)(a1 + 32); v9 = 1.0; if ( v8 ) v9 = *(float *)(v8 + 488); sub_CBD5C(v11, 8, v9); } } v10 = *(_DWORD *)(a1 + 72); if ( (v10 & 4) != 0 ) goto LABEL_17; if ( (sub_55C5C(*(_QWORD *)(a1 + 8)) & 1) != 0 ) { v10 = *(_DWORD *)(a1 + 72); LABEL_17: *(_DWORD *)(a1 + 72) = v10 & 0xFFFFFFFB; return 0; } return 0; } } } return result; }