user: Converte this assembly snippet into its equivalent C code:

```asm
<helper_float_24_recursive>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%rbx
  cmp    $0xf,%esi
  je     L31
  cmp    $0x12,%esi
  je     L88
  cmp    $0x15,%esi
  je     L29
  cmp    $0x18,%esi
  je     L158
L45:
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L31:
  mov    %rdi,%r11
  lea    0x20000(%rdi),%rbp
  mov    %rdi,%rax
  nopl   (%rax)
L18:
  lea    0x10(%rax),%rdx
  lea    0x20(%rax),%rcx
  lea    0x30(%rax),%rsi
  lea    0x40(%rax),%rdi
  lea    0x50(%rax),%r8
  lea    0x60(%rax),%r9
  lea    0x70(%rax),%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm0,%xmm0
  xorps  %xmm9,%xmm9
  subps  %xmm0,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm0
  movaps %xmm1,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm1,%xmm1
  xorps  %xmm9,%xmm9
  subps  %xmm1,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm1
  movaps %xmm2,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm2,%xmm2
  xorps  %xmm9,%xmm9
  subps  %xmm2,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm2
  movaps %xmm3,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm3,%xmm3
  xorps  %xmm9,%xmm9
  subps  %xmm3,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm3
  movaps %xmm4,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm4,%xmm4
  xorps  %xmm9,%xmm9
  subps  %xmm4,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm4
  movaps %xmm5,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm5,%xmm5
  xorps  %xmm9,%xmm9
  subps  %xmm5,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm5
  movaps %xmm6,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm6,%xmm6
  xorps  %xmm9,%xmm9
  subps  %xmm6,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm6
  movaps %xmm7,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm7,%xmm7
  xorps  %xmm9,%xmm9
  subps  %xmm7,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm7
  movaps %xmm0,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm0,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm0,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm0
  movaps %xmm1,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm1,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm1,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm1
  movaps %xmm2,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm2,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm2,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm2
  movaps %xmm3,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm3,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm3,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm3
  movaps %xmm4,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm4,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm4,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm4
  movaps %xmm5,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm5,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm5,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm5
  movaps %xmm6,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm6,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm6,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm6
  movaps %xmm7,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm7,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm7,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  sub    $0xffffffffffffff80,%rax
  cmp    %rax,%rbp
  jne    L18
  lea    0x80(%rbx),%rbp
  lea    0x20080(%rbx),%r12
  nopw   0x0(%rax,%rax,1)
L51:
  lea    -0x80(%rbp),%rax
  nopl   0x0(%rax)
L159:
  lea    0x80(%rax),%rdx
  lea    0x100(%rax),%rcx
  lea    0x180(%rax),%rsi
  lea    0x200(%rax),%rdi
  lea    0x280(%rax),%r8
  lea    0x300(%rax),%r9
  lea    0x380(%rax),%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  add    $0x10,%rax
  cmp    %rax,%rbp
  jne    L159
  add    $0x400,%rbp
  cmp    %rbp,%r12
  jne    L51
  lea    0x400(%rbx),%rbp
  lea    0x20400(%rbx),%r12
  nop
L35:
  lea    -0x400(%rbp),%rax
  nopw   0x0(%rax,%rax,1)
L138:
  lea    0x400(%rax),%rdx
  lea    0x800(%rax),%rcx
  lea    0xc00(%rax),%rsi
  lea    0x1000(%rax),%rdi
  lea    0x1400(%rax),%r8
  lea    0x1800(%rax),%r9
  lea    0x1c00(%rax),%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  add    $0x10,%rax
  cmp    %rax,%rbp
  jne    L138
  add    $0x2000,%rbp
  cmp    %rbp,%r12
  jne    L35
  lea    0x2000(%rbx),%rbp
  xor    %r12d,%r12d
L89:
  lea    -0x2000(%rbp),%rax
  nopw   0x0(%rax,%rax,1)
L134:
  lea    0x2000(%rax),%rdx
  lea    0x4000(%rax),%rcx
  lea    0x6000(%rax),%rsi
  lea    0x8000(%rax),%rdi
  lea    0xa000(%rax),%r8
  lea    0xc000(%rax),%r9
  lea    0xe000(%rax),%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  add    $0x10,%rax
  cmp    %rax,%rbp
  jne    L134
  add    $0x4000,%r12
  add    $0x10000,%rbp
  cmp    $0x8000,%r12
  jne    L89
  add    $0x10000,%rbx
  nopl   0x0(%rax,%rax,1)
L95:
  lea    0x10000(%r11),%rax
  movups (%r11),%xmm0
  movups (%rax),%xmm1
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movups %xmm8,(%r11)
  movups %xmm9,(%rax)
  add    $0x10,%r11
  cmp    %r11,%rbx
  jne    L95
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L29:
  mov    $0x12,%esi
  lea    0x100000(%rbx),%rbp
  call   <helper_float_24_recursive>
  mov    $0x12,%esi
  mov    %rbp,%rdi
  call   <helper_float_24_recursive>
  lea    0x200000(%rbx),%rdi
  mov    $0x12,%esi
  call   <helper_float_24_recursive>
  lea    0x300000(%rbx),%rdi
  mov    $0x12,%esi
  call   <helper_float_24_recursive>
  lea    0x400000(%rbx),%rdi
  mov    $0x12,%esi
  call   <helper_float_24_recursive>
  lea    0x500000(%rbx),%rdi
  mov    $0x12,%esi
  call   <helper_float_24_recursive>
  lea    0x600000(%rbx),%rdi
  mov    $0x12,%esi
  call   <helper_float_24_recursive>
  lea    0x700000(%rbx),%rdi
  mov    $0x12,%esi
  call   <helper_float_24_recursive>
  nopl   0x0(%rax,%rax,1)
L39:
  lea    0x100000(%rbx),%rax
  lea    0x200000(%rbx),%rdx
  lea    0x300000(%rbx),%rcx
  lea    0x400000(%rbx),%rsi
  lea    0x500000(%rbx),%rdi
  lea    0x600000(%rbx),%r8
  lea    0x700000(%rbx),%r9
  movups (%rbx),%xmm0
  movups (%rax),%xmm1
  movups (%rdx),%xmm2
  movups (%rcx),%xmm3
  movups (%rsi),%xmm4
  movups (%rdi),%xmm5
  movups (%r8),%xmm6
  movups (%r9),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rbx)
  movups %xmm9,(%rax)
  movups %xmm10,(%rdx)
  movups %xmm11,(%rcx)
  movups %xmm12,(%rsi)
  movups %xmm13,(%rdi)
  movups %xmm14,(%r8)
  movups %xmm15,(%r9)
  add    $0x10,%rbx
  cmp    %rbx,%rbp
  jne    L39
  jmp    L45
L88:
  mov    $0xf,%esi
  lea    0x20000(%rbx),%rbp
  call   <helper_float_24_recursive>
  mov    $0xf,%esi
  mov    %rbp,%rdi
  call   <helper_float_24_recursive>
  lea    0x40000(%rbx),%rdi
  mov    $0xf,%esi
  call   <helper_float_24_recursive>
  lea    0x60000(%rbx),%rdi
  mov    $0xf,%esi
  call   <helper_float_24_recursive>
  lea    0x80000(%rbx),%rdi
  mov    $0xf,%esi
  call   <helper_float_24_recursive>
  lea    0xa0000(%rbx),%rdi
  mov    $0xf,%esi
  call   <helper_float_24_recursive>
  lea    0xc0000(%rbx),%rdi
  mov    $0xf,%esi
  call   <helper_float_24_recursive>
  lea    0xe0000(%rbx),%rdi
  mov    $0xf,%esi
  call   <helper_float_24_recursive>
  nopl   0x0(%rax)
L17:
  lea    0x20000(%rbx),%rax
  lea    0x40000(%rbx),%rdx
  lea    0x60000(%rbx),%rcx
  lea    0x80000(%rbx),%rsi
  lea    0xa0000(%rbx),%rdi
  lea    0xc0000(%rbx),%r8
  lea    0xe0000(%rbx),%r9
  movups (%rbx),%xmm0
  movups (%rax),%xmm1
  movups (%rdx),%xmm2
  movups (%rcx),%xmm3
  movups (%rsi),%xmm4
  movups (%rdi),%xmm5
  movups (%r8),%xmm6
  movups (%r9),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rbx)
  movups %xmm9,(%rax)
  movups %xmm10,(%rdx)
  movups %xmm11,(%rcx)
  movups %xmm12,(%rsi)
  movups %xmm13,(%rdi)
  movups %xmm14,(%r8)
  movups %xmm15,(%r9)
  add    $0x10,%rbx
  cmp    %rbx,%rbp
  jne    L17
  jmp    L45
L158:
  mov    $0x15,%esi
  lea    0x800000(%rbx),%rbp
  call   <helper_float_24_recursive>
  mov    $0x15,%esi
  mov    %rbp,%rdi
  call   <helper_float_24_recursive>
  lea    0x1000000(%rbx),%rdi
  mov    $0x15,%esi
  call   <helper_float_24_recursive>
  lea    0x1800000(%rbx),%rdi
  mov    $0x15,%esi
  call   <helper_float_24_recursive>
  lea    0x2000000(%rbx),%rdi
  mov    $0x15,%esi
  call   <helper_float_24_recursive>
  lea    0x2800000(%rbx),%rdi
  mov    $0x15,%esi
  call   <helper_float_24_recursive>
  lea    0x3000000(%rbx),%rdi
  mov    $0x15,%esi
  call   <helper_float_24_recursive>
  lea    0x3800000(%rbx),%rdi
  mov    $0x15,%esi
  call   <helper_float_24_recursive>
  nopl   0x0(%rax)
L30:
  lea    0x800000(%rbx),%rax
  lea    0x1000000(%rbx),%rdx
  lea    0x1800000(%rbx),%rcx
  lea    0x2000000(%rbx),%rsi
  lea    0x2800000(%rbx),%rdi
  lea    0x3000000(%rbx),%r8
  lea    0x3800000(%rbx),%r9
  movups (%rbx),%xmm0
  movups (%rax),%xmm1
  movups (%rdx),%xmm2
  movups (%rcx),%xmm3
  movups (%rsi),%xmm4
  movups (%rdi),%xmm5
  movups (%r8),%xmm6
  movups (%r9),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rbx)
  movups %xmm9,(%rax)
  movups %xmm10,(%rdx)
  movups %xmm11,(%rcx)
  movups %xmm12,(%rsi)
  movups %xmm13,(%rdi)
  movups %xmm14,(%r8)
  movups %xmm15,(%r9)
  add    $0x10,%rbx
  cmp    %rbx,%rbp
  jne    L30
  jmp    L45
```

assistant: ```c
void helper_float_24_recursive(float *buf, int depth) {
  if (depth == 15) {
    for (int j = 0; j < 32768; j += 32) {
      for (int k = 0; k < 4; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm0, %%xmm0\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm0, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm1, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm1, %%xmm1\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm1, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm1\n"
                         "movaps %%xmm2, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm2, %%xmm2\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm2, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "movaps %%xmm3, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm3, %%xmm3\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm3, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm3\n"
                         "movaps %%xmm4, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm4, %%xmm4\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm4, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm4\n"
                         "movaps %%xmm5, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm5, %%xmm5\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm5, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm5\n"
                         "movaps %%xmm6, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm6, %%xmm6\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm6, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm6\n"
                         "movaps %%xmm7, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm7, %%xmm7\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm7, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm0, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm0, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm0\n"
                         "movaps %%xmm1, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm1, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm1, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm1\n"
                         "movaps %%xmm2, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm2\n"
                         "movaps %%xmm3, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm3, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm3\n"
                         "movaps %%xmm4, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm4, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm4, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm4\n"
                         "movaps %%xmm5, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm5, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm5, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm5\n"
                         "movaps %%xmm6, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm6, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm6, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm6\n"
                         "movaps %%xmm7, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm7, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm7, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 4), "r"(buf + j + k + 8), "r"(buf + j + k + 12), "r"(buf + j + k + 16), "r"(buf + j + k + 20), "r"(buf + j + k + 24), "r"(buf + j + k + 28)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    for (int j = 0; j < 32768; j += 256) {
      for (int k = 0; k < 32; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 32), "r"(buf + j + k + 64), "r"(buf + j + k + 96), "r"(buf + j + k + 128), "r"(buf + j + k + 160), "r"(buf + j + k + 192), "r"(buf + j + k + 224)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    for (int j = 0; j < 32768; j += 2048) {
      for (int k = 0; k < 256; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 256), "r"(buf + j + k + 512), "r"(buf + j + k + 768), "r"(buf + j + k + 1024), "r"(buf + j + k + 1280), "r"(buf + j + k + 1536), "r"(buf + j + k + 1792)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    for (int j = 0; j < 32768; j += 16384) {
      for (int k = 0; k < 2048; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 2048), "r"(buf + j + k + 4096), "r"(buf + j + k + 6144), "r"(buf + j + k + 8192), "r"(buf + j + k + 10240), "r"(buf + j + k + 12288), "r"(buf + j + k + 14336)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    for (int j = 0; j < 32768; j += 32768) {
      for (int k = 0; k < 16384; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 16384)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 18) {
    helper_float_24_recursive(buf + 0, 15);
    helper_float_24_recursive(buf + 32768, 15);
    helper_float_24_recursive(buf + 65536, 15);
    helper_float_24_recursive(buf + 98304, 15);
    helper_float_24_recursive(buf + 131072, 15);
    helper_float_24_recursive(buf + 163840, 15);
    helper_float_24_recursive(buf + 196608, 15);
    helper_float_24_recursive(buf + 229376, 15);
    for (int j = 0; j < 262144; j += 262144) {
      for (int k = 0; k < 32768; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 32768), "r"(buf + j + k + 65536), "r"(buf + j + k + 98304), "r"(buf + j + k + 131072), "r"(buf + j + k + 163840), "r"(buf + j + k + 196608), "r"(buf + j + k + 229376)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 21) {
    helper_float_24_recursive(buf + 0, 18);
    helper_float_24_recursive(buf + 262144, 18);
    helper_float_24_recursive(buf + 524288, 18);
    helper_float_24_recursive(buf + 786432, 18);
    helper_float_24_recursive(buf + 1048576, 18);
    helper_float_24_recursive(buf + 1310720, 18);
    helper_float_24_recursive(buf + 1572864, 18);
    helper_float_24_recursive(buf + 1835008, 18);
    for (int j = 0; j < 2097152; j += 2097152) {
      for (int k = 0; k < 262144; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 262144), "r"(buf + j + k + 524288), "r"(buf + j + k + 786432), "r"(buf + j + k + 1048576), "r"(buf + j + k + 1310720), "r"(buf + j + k + 1572864), "r"(buf + j + k + 1835008)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 24) {
    helper_float_24_recursive(buf + 0, 21);
    helper_float_24_recursive(buf + 2097152, 21);
    helper_float_24_recursive(buf + 4194304, 21);
    helper_float_24_recursive(buf + 6291456, 21);
    helper_float_24_recursive(buf + 8388608, 21);
    helper_float_24_recursive(buf + 10485760, 21);
    helper_float_24_recursive(buf + 12582912, 21);
    helper_float_24_recursive(buf + 14680064, 21);
    for (int j = 0; j < 16777216; j += 16777216) {
      for (int k = 0; k < 2097152; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 2097152), "r"(buf + j + k + 4194304), "r"(buf + j + k + 6291456), "r"(buf + j + k + 8388608), "r"(buf + j + k + 10485760), "r"(buf + j + k + 12582912), "r"(buf + j + k + 14680064)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
}
```