// // sub_5B95C from 0x5b95c to 0x5ba6c (272 bytes) // // 1 xrefs: // > @ 0x10c6e0 // // 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_5B95C(__int64 a1) { __int64 v1; // x19 _DWORD *v2; // x1 int v3; // w2 __int64 v4; // x8 __int64 v5; // x9 __int64 v6; // x9 int v7; // w22 _DWORD *v8; // x20 unsigned int v9; // w21 __int64 v10; // x8 __int64 v11; // x8 int *v12; // x9 int v13; // t1 float *v15; // x23 __int64 v16; // x8 long double v17; // q0 float v18; // s1 _BYTE v19[4096]; // [xsp+0h] [xbp-1030h] BYREF if ( !*(_QWORD *)(a1 + 472) ) return 30; sub_5C688(a1); if ( !v5 ) return 30; v6 = *(_QWORD *)(v4 + 40); v7 = v3; v8 = v2; if ( v6 ) { v9 = *(_DWORD *)(v6 + 104); goto LABEL_7; } v10 = *(_QWORD *)(v4 + 48); if ( !v10 ) return 30; v9 = *(unsigned __int16 *)(v10 + 280); LABEL_7: if ( v3 < 1 ) return 31; v11 = (unsigned int)v3; v12 = v2; while ( v11 ) { v13 = *v12++; --v11; if ( (~v13 & 0x7F800000) == 0 ) return 29; } v15 = (float *)v19; memset(v19, 0, sizeof(v19)); v16 = 0; LODWORD(v17) = 1.0; while ( v16 < (int)v9 ) { v18 = 1.0; if ( v16 < v7 ) v18 = *(float *)&v8[v16]; *v15 = v18; v15 += 33; ++v16; } return (*(__int64 (__fastcall **)(__int64, _BYTE *, _QWORD, _QWORD, __int64, __int64, long double))(*(_QWORD *)v1 + 200LL))( v1, v19, v9, v9, 32, 1, v17); }