// // sub_5704C from 0x5704c to 0x57158 (268 bytes) // // 2 xrefs: // > @ 0x10c548 // > @ 0x10c770 // // 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_5704C(__int64 *a1, float a2, float a3) { __int64 result; // x0 __int64 v7; // x1 int v8; // w8 int v9; // [xsp+1Ch] [xbp-4h] BYREF result = (*(__int64 (__fastcall **)(__int64 *, int *))(*a1 + 152))(a1, &v9); if ( !(_DWORD)result ) { v8 = v9; if ( (v9 & 0x10) == 0 ) return 40; if ( (~LODWORD(a2) & 0x7F800000) == 0 || (~LODWORD(a3) & 0x7F800000) == 0 ) return 29; result = 31; if ( a3 >= a2 && a2 >= 0.0 && a3 >= 0.0 ) { if ( *((float *)a1 + 39) == a2 && *((float *)a1 + 40) == a3 ) return 0; *((float *)a1 + 39) = a2; *((float *)a1 + 40) = a3; if ( (v8 & 0x4F00000) == 0 && !*(_QWORD *)(a1[1] + 69120) ) { *((_DWORD *)a1 + 18) |= 4u; return 0; } *((_DWORD *)a1 + 18) |= 4u; result = sub_55DCC(a1, v7, 0, 0); if ( !(_DWORD)result ) { result = sub_5790C(result); if ( !(_DWORD)result ) return 0; } } } return result; }