// // sub_101BE4 from 0x101be4 to 0x101d30 (332 bytes) // // 1 xrefs: // > @ 0x11a0e8 // // 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_101BE4(float32x4_t *result, __int64 a2, __int64 a3, __int64 a4, __int64 a5) { __int64 i; // x30 int v6; // w8 float32x4_t v7; // q0 int32x4_t v8; // q1 int64x2_t v9; // q2 int32x4_t v10; // q3 float32x4_t v11; // q4 __int64 v12; // x5 int64x2_t v13; // q6 int64x2_t v14; // q7 int16x8_t v15; // q16 int16x8_t v16; // q6 int32x4_t v17; // q5 float32x4_t v18; // q7 float32x4_t v19; // q16 float v20; // w9 float v21; // s0 float32x2_t v22; // d1 unsigned int v23; // w10 __int64 v24; // x1 int v25; // w8 if ( (int)a2 >> 2 ) { result = (float32x4_t *)sub_102CA4(result, a2, a3, a4, a5, i); for ( i = v12; v6; result += 2 ) { v13 = vzip1q_s32(*(int32x4_t *)(a3 + 4LL * v8.n128_u32[1]), *(int32x4_t *)(a3 + 4LL * v8.n128_u32[3])); v14 = vzip1q_s32(*(int32x4_t *)(a3 + 4LL * v10.n128_u32[1]), *(int32x4_t *)(a3 + 4LL * v10.n128_u32[3])); v15 = vzip1q_s64(v13, v14); v16 = vzip2q_s64(v13, v14); v17 = vmulq_f32(vcvtq_f32_u32(vshrq_n_u32(vuzp1q_s32(v8, v10), 1u)), v7); v18 = vcvtq_f32_s32(vmovl_s16((int16x4_t)v15.n128_u64[0])); v19 = vcvtq_f32_s32(vmovl_high_s16(v15)); v8 = vaddq_s64(v8, v9); v10 = vaddq_s64(v10, v9); --v6; *result = vmulq_f32( vmlaq_f32( v18, vzip1q_s32(v17, v17), vsubq_f32(vcvtq_f32_s32(vmovl_s16((int16x4_t)v16.n128_u64[0])), v18)), v11); result[1] = vmulq_f32( vmlaq_f32(v19, vzip2q_s32(v17, v17), vsubq_f32(vcvtq_f32_s32(vmovl_high_s16(v16)), v19)), v11); } *(_QWORD *)a4 = v8.n128_u64[0]; } v20 = 2.3283e-10; v21 = 1.0; v22.n64_u64[0] = 0x3800000038000000LL; if ( (a2 & 3) != 0 ) { do { v23 = 2 * *(_DWORD *)(a4 + 4); result->n128_u64[0] = vmul_f32( vmla_n_f32( vmul_n_f32( vcvt_f32_s32((int32x2_t)__PAIR64__( *(__int16 *)(a3 + 2LL * v23 + 2), *(__int16 *)(a3 + 2LL * v23))), v21 - (float)((float)*(unsigned int *)a4 * v20)), vcvt_f32_s32((int32x2_t)__PAIR64__( *(__int16 *)(a3 + 2LL * (v23 + 2) + 2), *(__int16 *)(a3 + 2LL * (v23 + 2)))), (float)*(unsigned int *)a4 * v20), v22).n64_u64[0]; result = (float32x4_t *)sub_102E10(&result->n128_i8[8], i); i = v24; } while ( v25 ); } return result; }