// // sub_105778 from 0x105778 to 0x105854 (220 bytes) // // 1 xrefs: // > @ 0x11c0b0 // // 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_105778(float32x4_t *result, int8x16_t *a2, int a3) { int i; // w8 int8x16_t v4; // q0 float32x4_t v5; // q1 int v6; // w11 int v7; // w12 int8x16_t v8; // q3 int v9; // w12 int v10; // w11 int v11; // w12 int v12; // w11 int8x16_t v13; // q4 int v14; // w11 int32x4_t v15; // q5 int v16; // w12 int8x16_t v17; // q2 int8x16_t v18; // q5 int8x16_t v19; // q0 for ( i = a3 >> 2; i; ++result ) { v4 = *a2; v5 = *result; --i; if ( COERCE_FLOAT(HIDWORD(a2->n128_u64[0])) > 0.0 ) v6 = 0; else v6 = -1; if ( v4.n128_f32[0] > 0.0 ) v7 = 0; else v7 = -1; v8.n128_u32[0] = v7; if ( COERCE_FLOAT(a2->n128_u64[1]) > 0.0 ) v9 = 0; else v9 = -1; v8.n128_u32[1] = v6; if ( v4.n128_f32[3] > 0.0 ) v10 = 0; else v10 = -1; v8.n128_u32[2] = v9; if ( v5.n128_f32[1] > 0.0 ) v11 = 0; else v11 = -1; v8.n128_u32[3] = v10; if ( v5.n128_f32[0] > 0.0 ) v12 = 0; else v12 = -1; v13.n128_u32[0] = v12; if ( v5.n128_f32[2] > 0.0 ) v14 = 0; else v14 = -1; v13.n128_u32[1] = v11; v15 = vcgtzq_f32(v4); if ( v5.n128_f32[3] > 0.0 ) v16 = 0; else v16 = -1; v13.n128_u64[1] = __PAIR64__(v16, v14); v17 = vcgtzq_f32(v5); v18 = vandq_s8(v15, v4); v19 = vandq_s8(v8, v4); *a2 = vsubq_f32(vaddq_f32(v5, vandq_s8(v18, v13)), vandq_s8(v18, v17)); *result = vsubq_f32(vaddq_f32(v5, vandq_s8(v19, v17)), vandq_s8(v19, v13)); ++a2; } return result; }