// // sub_1024F0 from 0x1024f0 to 0x1025d4 (228 bytes) // // 1 xrefs: // > @ 0x11a108 // // 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 // float32x4_t *__fastcall sub_1024F0(float32x4_t *result, __int64 a2, __int64 a3, __int64 a4, __int64 a5) { __int64 i; // x30 int v6; // w8 int32x4_t v7; // q0 int64x2_t v8; // q1 int32x4_t v9; // q2 float32x4_t v10; // q3 __int64 v11; // x5 int8x16_t v12; // q5 int8x16_t v13; // q6 float32x4_t v14; // q7 float32x4_t v15; // q5 float v16; // w9 float v17; // s0 __int64 v18; // x1 int v19; // w8 if ( (int)a2 >> 2 ) { result = (float32x4_t *)sub_102CE0(result, a2, a3, a4, a5, i); for ( i = v11; v6; --v6 ) { v12 = vzip1q_s32(*(int32x4_t *)(a3 + 4LL * v7.n128_u32[1]), *(int32x4_t *)(a3 + 4LL * v7.n128_u32[3])); v13 = vzip1q_s32(*(int32x4_t *)(a3 + 4LL * v9.n128_u32[1]), *(int32x4_t *)(a3 + 4LL * v9.n128_u32[3])); v14 = vextq_s8(v12, vextq_s8(v13, v12, 8u), 8u); v12.n128_u64[1] = v13.n128_u64[0]; v15 = vmlaq_f32(v12, vsubq_f32(v14, v12), vmulq_f32(vcvtq_f32_u32(vshrq_n_u32(vuzp1q_s32(v7, v9), 1u)), v10)); v7 = vaddq_s64(v7, v8); v9 = vaddq_s64(v9, v8); *result++ = v15; } *(_QWORD *)a4 = v7.n128_u64[0]; } v16 = 2.3283e-10; v17 = 1.0; if ( (a2 & 3) != 0 ) { do { result->n128_f32[0] = (float)(*(float *)(a3 + 4LL * (unsigned int)(*(_DWORD *)(a4 + 4) + 1)) * (float)((float)*(unsigned int *)a4 * v16)) + (float)((float)(v17 - (float)((float)*(unsigned int *)a4 * v16)) * *(float *)(a3 + 4LL * *(unsigned int *)(a4 + 4))); result = (float32x4_t *)sub_102E10(&result->n128_u8[4], i); i = v18; } while ( v19 ); } return result; }