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

```asm
<helper_float_26_recursive>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %rdi,-0x48(%rbp)
  mov    %esi,-0x4c(%rbp)
  cmpl   $0xb,-0x4c(%rbp)
  jne    L382
  movl   $0x0,-0x40(%rbp)
  jmp    L156
L195:
  movl   $0x0,-0x3c(%rbp)
  jmp    L144
L409:
  mov    -0x40(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x3c(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x40(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x3c(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x8,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x40(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x3c(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x10,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x40(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x3c(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0x18,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x40(%rbp),%edi
  movslq %edi,%r8
  mov    -0x3c(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x20,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x40(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x3c(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x28,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x40(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x3c(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x30,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x40(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x3c(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x38,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vpermilps $0xa0,%ymm0,%ymm8
  vpermilps $0xf5,%ymm0,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm0
  vpermilps $0xa0,%ymm1,%ymm8
  vpermilps $0xf5,%ymm1,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm1
  vpermilps $0xa0,%ymm2,%ymm8
  vpermilps $0xf5,%ymm2,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm2
  vpermilps $0xa0,%ymm3,%ymm8
  vpermilps $0xf5,%ymm3,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm3
  vpermilps $0xa0,%ymm4,%ymm8
  vpermilps $0xf5,%ymm4,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm4
  vpermilps $0xa0,%ymm5,%ymm8
  vpermilps $0xf5,%ymm5,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm5
  vpermilps $0xa0,%ymm6,%ymm8
  vpermilps $0xf5,%ymm6,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm6
  vpermilps $0xa0,%ymm7,%ymm8
  vpermilps $0xf5,%ymm7,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vaddsubps %ymm11,%ymm8,%ymm7
  vpermilps $0x44,%ymm0,%ymm8
  vpermilps $0xee,%ymm0,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm0
  vpermilps $0x44,%ymm1,%ymm8
  vpermilps $0xee,%ymm1,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm1
  vpermilps $0x44,%ymm2,%ymm8
  vpermilps $0xee,%ymm2,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm2
  vpermilps $0x44,%ymm3,%ymm8
  vpermilps $0xee,%ymm3,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm3
  vpermilps $0x44,%ymm4,%ymm8
  vpermilps $0xee,%ymm4,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm4
  vpermilps $0x44,%ymm5,%ymm8
  vpermilps $0xee,%ymm5,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm5
  vpermilps $0x44,%ymm6,%ymm8
  vpermilps $0xee,%ymm6,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm6
  vpermilps $0x44,%ymm7,%ymm8
  vpermilps $0xee,%ymm7,%ymm9
  vxorps %ymm10,%ymm10,%ymm10
  vsubps %ymm9,%ymm10,%ymm11
  vblendps $0xcc,%ymm11,%ymm9,%ymm12
  vaddps %ymm8,%ymm12,%ymm7
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm0,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm0,%ymm0,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm0,%ymm11
  vaddps %ymm10,%ymm11,%ymm0
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm1,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm1,%ymm1,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm1,%ymm11
  vaddps %ymm10,%ymm11,%ymm1
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm2,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm2,%ymm2,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm2,%ymm11
  vaddps %ymm10,%ymm11,%ymm2
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm3,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm3,%ymm3,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm3,%ymm11
  vaddps %ymm10,%ymm11,%ymm3
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm4,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm4,%ymm4,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm4,%ymm11
  vaddps %ymm10,%ymm11,%ymm4
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm5,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm5,%ymm5,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm5,%ymm11
  vaddps %ymm10,%ymm11,%ymm5
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm6,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm6,%ymm6,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm6,%ymm11
  vaddps %ymm10,%ymm11,%ymm6
  vxorps %ymm8,%ymm8,%ymm8
  vsubps %ymm7,%ymm8,%ymm9
  vperm2f128 $0x0,%ymm7,%ymm7,%ymm10
  vperm2f128 $0x31,%ymm9,%ymm7,%ymm11
  vaddps %ymm10,%ymm11,%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0x3c(%rbp)
L144:
  cmpl   $0x7,-0x3c(%rbp)
  jle    L409
  addl   $0x40,-0x40(%rbp)
L156:
  cmpl   $0x7ff,-0x40(%rbp)
  jle    L195
  movl   $0x0,-0x38(%rbp)
  jmp    L388
L152:
  movl   $0x0,-0x34(%rbp)
  jmp    L268
L59:
  mov    -0x38(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x34(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x38(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x34(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x40,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x38(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x34(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  sub    $0xffffffffffffff80,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x38(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x34(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0xc0,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x38(%rbp),%edi
  movslq %edi,%r8
  mov    -0x34(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x100,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x38(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x34(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x140,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x38(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x34(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x180,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x38(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x34(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x1c0,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0x34(%rbp)
L268:
  cmpl   $0x3f,-0x34(%rbp)
  jle    L59
  addl   $0x200,-0x38(%rbp)
L388:
  cmpl   $0x7ff,-0x38(%rbp)
  jle    L152
  movl   $0x0,-0x30(%rbp)
  jmp    L410
L129:
  movl   $0x0,-0x2c(%rbp)
  jmp    L54
L24:
  mov    -0x30(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x30(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x2c(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x200,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x30(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x2c(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x400,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x30(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x2c(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0x600,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vmovups %ymm0,(%rax)
  vmovups %ymm1,(%rdx)
  vmovups %ymm2,(%rcx)
  vmovups %ymm3,(%rsi)
  addl   $0x8,-0x2c(%rbp)
L54:
  cmpl   $0x1ff,-0x2c(%rbp)
  jle    L24
  addl   $0x800,-0x30(%rbp)
L410:
  cmpl   $0x7ff,-0x30(%rbp)
  jle    L129
  jmp    L282
L382:
  cmpl   $0xe,-0x4c(%rbp)
  jne    L260
  mov    -0x48(%rbp),%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x2000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x4000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x6000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x8000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xa000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xc000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xe000,%rax
  mov    $0xb,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  movl   $0x0,-0x28(%rbp)
  jmp    L20
L326:
  movl   $0x0,-0x24(%rbp)
  jmp    L276
L249:
  mov    -0x28(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x24(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x28(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x24(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x800,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x28(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x24(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x1000,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x28(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x24(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0x1800,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x28(%rbp),%edi
  movslq %edi,%r8
  mov    -0x24(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x2000,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x28(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x24(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x2800,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x28(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x24(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x3000,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x28(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x24(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x3800,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0x24(%rbp)
L276:
  cmpl   $0x7ff,-0x24(%rbp)
  jle    L249
  addl   $0x4000,-0x28(%rbp)
L20:
  cmpl   $0x3fff,-0x28(%rbp)
  jle    L326
  jmp    L282
L260:
  cmpl   $0x11,-0x4c(%rbp)
  jne    L338
  mov    -0x48(%rbp),%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x10000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x20000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x30000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x40000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x50000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x60000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x70000,%rax
  mov    $0xe,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  movl   $0x0,-0x20(%rbp)
  jmp    L108
L9:
  movl   $0x0,-0x1c(%rbp)
  jmp    L23
L297:
  mov    -0x20(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x1c(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x20(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x1c(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x4000,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x20(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x1c(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x8000,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x20(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x1c(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0xc000,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x20(%rbp),%edi
  movslq %edi,%r8
  mov    -0x1c(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x10000,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x20(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x1c(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x14000,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x20(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x1c(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x18000,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x20(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x1c(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x1c000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0x1c(%rbp)
L23:
  cmpl   $0x3fff,-0x1c(%rbp)
  jle    L297
  addl   $0x20000,-0x20(%rbp)
L108:
  cmpl   $0x1ffff,-0x20(%rbp)
  jle    L9
  jmp    L282
L338:
  cmpl   $0x14,-0x4c(%rbp)
  jne    L415
  mov    -0x48(%rbp),%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x80000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x100000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x180000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x200000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x280000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x300000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x380000,%rax
  mov    $0x11,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  movl   $0x0,-0x18(%rbp)
  jmp    L200
L213:
  movl   $0x0,-0x14(%rbp)
  jmp    L294
L362:
  mov    -0x18(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x14(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x18(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x14(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x20000,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x18(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x14(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x40000,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x18(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x14(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0x60000,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x18(%rbp),%edi
  movslq %edi,%r8
  mov    -0x14(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x80000,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x18(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x14(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0xa0000,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x18(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x14(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0xc0000,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x18(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x14(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0xe0000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0x14(%rbp)
L294:
  cmpl   $0x1ffff,-0x14(%rbp)
  jle    L362
  addl   $0x100000,-0x18(%rbp)
L200:
  cmpl   $0xfffff,-0x18(%rbp)
  jle    L213
  jmp    L282
L415:
  cmpl   $0x17,-0x4c(%rbp)
  jne    L299
  mov    -0x48(%rbp),%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x400000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x800000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xc00000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1000000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1400000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1800000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1c00000,%rax
  mov    $0x14,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  movl   $0x0,-0x10(%rbp)
  jmp    L269
L254:
  movl   $0x0,-0xc(%rbp)
  jmp    L68
L288:
  mov    -0x10(%rbp),%eax
  movslq %eax,%rdx
  mov    -0xc(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x10(%rbp),%edx
  movslq %edx,%rcx
  mov    -0xc(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x100000,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x10(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0xc(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x200000,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x10(%rbp),%esi
  movslq %esi,%rdi
  mov    -0xc(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0x300000,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x10(%rbp),%edi
  movslq %edi,%r8
  mov    -0xc(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x400000,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x10(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0xc(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x500000,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x10(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0xc(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x600000,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x10(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0xc(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x700000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0xc(%rbp)
L68:
  cmpl   $0xfffff,-0xc(%rbp)
  jle    L288
  addl   $0x800000,-0x10(%rbp)
L269:
  cmpl   $0x7fffff,-0x10(%rbp)
  jle    L254
  jmp    L282
L299:
  cmpl   $0x1a,-0x4c(%rbp)
  jne    L282
  mov    -0x48(%rbp),%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x2000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x4000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x6000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x8000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xa000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xc000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xe000000,%rax
  mov    $0x17,%esi
  mov    %rax,%rdi
  call   <helper_float_26_recursive>
  movl   $0x0,-0x8(%rbp)
  jmp    L363
L373:
  movl   $0x0,-0x4(%rbp)
  jmp    L157
L86:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    -0x8(%rbp),%edx
  movslq %edx,%rcx
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  add    %rcx,%rdx
  add    $0x800000,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    -0x8(%rbp),%ecx
  movslq %ecx,%rsi
  mov    -0x4(%rbp),%ecx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  add    $0x1000000,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    -0x48(%rbp),%rcx
  add    %rsi,%rcx
  mov    -0x8(%rbp),%esi
  movslq %esi,%rdi
  mov    -0x4(%rbp),%esi
  movslq %esi,%rsi
  add    %rdi,%rsi
  add    $0x1800000,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x8(%rbp),%edi
  movslq %edi,%r8
  mov    -0x4(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x2000000,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x8(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x4(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x2800000,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x8(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x4(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x3000000,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x8(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x4(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x3800000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  vmovups (%rax),%ymm0
  vmovups (%rdx),%ymm1
  vmovups (%rcx),%ymm2
  vmovups (%rsi),%ymm3
  vmovups (%rdi),%ymm4
  vmovups (%r8),%ymm5
  vmovups (%r9),%ymm6
  vmovups (%r10),%ymm7
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vaddps %ymm3,%ymm2,%ymm10
  vsubps %ymm3,%ymm2,%ymm11
  vaddps %ymm5,%ymm4,%ymm12
  vsubps %ymm5,%ymm4,%ymm13
  vaddps %ymm7,%ymm6,%ymm14
  vsubps %ymm7,%ymm6,%ymm15
  vaddps %ymm10,%ymm8,%ymm0
  vsubps %ymm10,%ymm8,%ymm2
  vaddps %ymm11,%ymm9,%ymm1
  vsubps %ymm11,%ymm9,%ymm3
  vaddps %ymm14,%ymm12,%ymm4
  vsubps %ymm14,%ymm12,%ymm6
  vaddps %ymm15,%ymm13,%ymm5
  vsubps %ymm15,%ymm13,%ymm7
  vaddps %ymm4,%ymm0,%ymm8
  vsubps %ymm4,%ymm0,%ymm12
  vaddps %ymm5,%ymm1,%ymm9
  vsubps %ymm5,%ymm1,%ymm13
  vaddps %ymm6,%ymm2,%ymm10
  vsubps %ymm6,%ymm2,%ymm14
  vaddps %ymm7,%ymm3,%ymm11
  vsubps %ymm7,%ymm3,%ymm15
  vmovups %ymm8,(%rax)
  vmovups %ymm9,(%rdx)
  vmovups %ymm10,(%rcx)
  vmovups %ymm11,(%rsi)
  vmovups %ymm12,(%rdi)
  vmovups %ymm13,(%r8)
  vmovups %ymm14,(%r9)
  vmovups %ymm15,(%r10)
  addl   $0x8,-0x4(%rbp)
L157:
  cmpl   $0x7fffff,-0x4(%rbp)
  jle    L86
  addl   $0x4000000,-0x8(%rbp)
L363:
  cmpl   $0x3ffffff,-0x8(%rbp)
  jle    L373
  nop
L282:
  leave
  ret
```

assistant: ```c
void helper_float_26_recursive(float *buf, int depth) {
  if (depth == 11) {
    for (int j = 0; j < 2048; j += 64) {
      for (int k = 0; k < 8; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vpermilps $160, %%ymm0, %%ymm8\n"
                         "vpermilps $245, %%ymm0, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm0\n"
                         "vpermilps $160, %%ymm1, %%ymm8\n"
                         "vpermilps $245, %%ymm1, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm1\n"
                         "vpermilps $160, %%ymm2, %%ymm8\n"
                         "vpermilps $245, %%ymm2, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm2\n"
                         "vpermilps $160, %%ymm3, %%ymm8\n"
                         "vpermilps $245, %%ymm3, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm3\n"
                         "vpermilps $160, %%ymm4, %%ymm8\n"
                         "vpermilps $245, %%ymm4, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm4\n"
                         "vpermilps $160, %%ymm5, %%ymm8\n"
                         "vpermilps $245, %%ymm5, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm5\n"
                         "vpermilps $160, %%ymm6, %%ymm8\n"
                         "vpermilps $245, %%ymm6, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm6\n"
                         "vpermilps $160, %%ymm7, %%ymm8\n"
                         "vpermilps $245, %%ymm7, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vaddsubps %%ymm11, %%ymm8, %%ymm7\n"
                         "vpermilps $68, %%ymm0, %%ymm8\n"
                         "vpermilps $238, %%ymm0, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm0\n"
                         "vpermilps $68, %%ymm1, %%ymm8\n"
                         "vpermilps $238, %%ymm1, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm1\n"
                         "vpermilps $68, %%ymm2, %%ymm8\n"
                         "vpermilps $238, %%ymm2, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm2\n"
                         "vpermilps $68, %%ymm3, %%ymm8\n"
                         "vpermilps $238, %%ymm3, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm3\n"
                         "vpermilps $68, %%ymm4, %%ymm8\n"
                         "vpermilps $238, %%ymm4, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm4\n"
                         "vpermilps $68, %%ymm5, %%ymm8\n"
                         "vpermilps $238, %%ymm5, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm5\n"
                         "vpermilps $68, %%ymm6, %%ymm8\n"
                         "vpermilps $238, %%ymm6, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm6\n"
                         "vpermilps $68, %%ymm7, %%ymm8\n"
                         "vpermilps $238, %%ymm7, %%ymm9\n"
                         "vxorps %%ymm10, %%ymm10, %%ymm10\n"
                         "vsubps %%ymm9, %%ymm10, %%ymm11\n"
                         "vblendps $204, %%ymm11, %%ymm9, %%ymm12\n"
                         "vaddps %%ymm8, %%ymm12, %%ymm7\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm0, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm0, %%ymm0, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm0, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm0\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm1, %%ymm1, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm1, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm1\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm2, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm2, %%ymm2, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm2\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm3, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm3, %%ymm3, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm3, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm3\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm4, %%ymm4, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm4, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm4\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm5, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm5, %%ymm5, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm5, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm5\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm6, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm6, %%ymm6, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm6, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm6\n"
                         "vxorps %%ymm8, %%ymm8, %%ymm8\n"
                         "vsubps %%ymm7, %%ymm8, %%ymm9\n"
                         "vperm2f128 $0, %%ymm7, %%ymm7, %%ymm10\n"
                         "vperm2f128 $49, %%ymm9, %%ymm7, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm11, %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 8), "r"(buf + j + k + 16), "r"(buf + j + k + 24), "r"(buf + j + k + 32), "r"(buf + j + k + 40), "r"(buf + j + k + 48), "r"(buf + j + k + 56)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    for (int j = 0; j < 2048; j += 512) {
      for (int k = 0; k < 64; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 64), "r"(buf + j + k + 128), "r"(buf + j + k + 192), "r"(buf + j + k + 256), "r"(buf + j + k + 320), "r"(buf + j + k + 384), "r"(buf + j + k + 448)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    for (int j = 0; j < 2048; j += 2048) {
      for (int k = 0; k < 512; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vmovups %%ymm0, (%0)\n"
                         "vmovups %%ymm1, (%1)\n"
                         "vmovups %%ymm2, (%2)\n"
                         "vmovups %%ymm3, (%3)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 512), "r"(buf + j + k + 1024), "r"(buf + j + k + 1536)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 14) {
    helper_float_26_recursive(buf + 0, 11);
    helper_float_26_recursive(buf + 2048, 11);
    helper_float_26_recursive(buf + 4096, 11);
    helper_float_26_recursive(buf + 6144, 11);
    helper_float_26_recursive(buf + 8192, 11);
    helper_float_26_recursive(buf + 10240, 11);
    helper_float_26_recursive(buf + 12288, 11);
    helper_float_26_recursive(buf + 14336, 11);
    for (int j = 0; j < 16384; j += 16384) {
      for (int k = 0; k < 2048; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%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)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 17) {
    helper_float_26_recursive(buf + 0, 14);
    helper_float_26_recursive(buf + 16384, 14);
    helper_float_26_recursive(buf + 32768, 14);
    helper_float_26_recursive(buf + 49152, 14);
    helper_float_26_recursive(buf + 65536, 14);
    helper_float_26_recursive(buf + 81920, 14);
    helper_float_26_recursive(buf + 98304, 14);
    helper_float_26_recursive(buf + 114688, 14);
    for (int j = 0; j < 131072; j += 131072) {
      for (int k = 0; k < 16384; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 16384), "r"(buf + j + k + 32768), "r"(buf + j + k + 49152), "r"(buf + j + k + 65536), "r"(buf + j + k + 81920), "r"(buf + j + k + 98304), "r"(buf + j + k + 114688)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 20) {
    helper_float_26_recursive(buf + 0, 17);
    helper_float_26_recursive(buf + 131072, 17);
    helper_float_26_recursive(buf + 262144, 17);
    helper_float_26_recursive(buf + 393216, 17);
    helper_float_26_recursive(buf + 524288, 17);
    helper_float_26_recursive(buf + 655360, 17);
    helper_float_26_recursive(buf + 786432, 17);
    helper_float_26_recursive(buf + 917504, 17);
    for (int j = 0; j < 1048576; j += 1048576) {
      for (int k = 0; k < 131072; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 131072), "r"(buf + j + k + 262144), "r"(buf + j + k + 393216), "r"(buf + j + k + 524288), "r"(buf + j + k + 655360), "r"(buf + j + k + 786432), "r"(buf + j + k + 917504)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 23) {
    helper_float_26_recursive(buf + 0, 20);
    helper_float_26_recursive(buf + 1048576, 20);
    helper_float_26_recursive(buf + 2097152, 20);
    helper_float_26_recursive(buf + 3145728, 20);
    helper_float_26_recursive(buf + 4194304, 20);
    helper_float_26_recursive(buf + 5242880, 20);
    helper_float_26_recursive(buf + 6291456, 20);
    helper_float_26_recursive(buf + 7340032, 20);
    for (int j = 0; j < 8388608; j += 8388608) {
      for (int k = 0; k < 1048576; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 1048576), "r"(buf + j + k + 2097152), "r"(buf + j + k + 3145728), "r"(buf + j + k + 4194304), "r"(buf + j + k + 5242880), "r"(buf + j + k + 6291456), "r"(buf + j + k + 7340032)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 26) {
    helper_float_26_recursive(buf + 0, 23);
    helper_float_26_recursive(buf + 8388608, 23);
    helper_float_26_recursive(buf + 16777216, 23);
    helper_float_26_recursive(buf + 25165824, 23);
    helper_float_26_recursive(buf + 33554432, 23);
    helper_float_26_recursive(buf + 41943040, 23);
    helper_float_26_recursive(buf + 50331648, 23);
    helper_float_26_recursive(buf + 58720256, 23);
    for (int j = 0; j < 67108864; j += 67108864) {
      for (int k = 0; k < 8388608; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vmovups (%2), %%ymm2\n"
                         "vmovups (%3), %%ymm3\n"
                         "vmovups (%4), %%ymm4\n"
                         "vmovups (%5), %%ymm5\n"
                         "vmovups (%6), %%ymm6\n"
                         "vmovups (%7), %%ymm7\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vaddps %%ymm3, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm3, %%ymm2, %%ymm11\n"
                         "vaddps %%ymm5, %%ymm4, %%ymm12\n"
                         "vsubps %%ymm5, %%ymm4, %%ymm13\n"
                         "vaddps %%ymm7, %%ymm6, %%ymm14\n"
                         "vsubps %%ymm7, %%ymm6, %%ymm15\n"
                         "vaddps %%ymm10, %%ymm8, %%ymm0\n"
                         "vsubps %%ymm10, %%ymm8, %%ymm2\n"
                         "vaddps %%ymm11, %%ymm9, %%ymm1\n"
                         "vsubps %%ymm11, %%ymm9, %%ymm3\n"
                         "vaddps %%ymm14, %%ymm12, %%ymm4\n"
                         "vsubps %%ymm14, %%ymm12, %%ymm6\n"
                         "vaddps %%ymm15, %%ymm13, %%ymm5\n"
                         "vsubps %%ymm15, %%ymm13, %%ymm7\n"
                         "vaddps %%ymm4, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm4, %%ymm0, %%ymm12\n"
                         "vaddps %%ymm5, %%ymm1, %%ymm9\n"
                         "vsubps %%ymm5, %%ymm1, %%ymm13\n"
                         "vaddps %%ymm6, %%ymm2, %%ymm10\n"
                         "vsubps %%ymm6, %%ymm2, %%ymm14\n"
                         "vaddps %%ymm7, %%ymm3, %%ymm11\n"
                         "vsubps %%ymm7, %%ymm3, %%ymm15\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n"
                         "vmovups %%ymm10, (%2)\n"
                         "vmovups %%ymm11, (%3)\n"
                         "vmovups %%ymm12, (%4)\n"
                         "vmovups %%ymm13, (%5)\n"
                         "vmovups %%ymm14, (%6)\n"
                         "vmovups %%ymm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 8388608), "r"(buf + j + k + 16777216), "r"(buf + j + k + 25165824), "r"(buf + j + k + 33554432), "r"(buf + j + k + 41943040), "r"(buf + j + k + 50331648), "r"(buf + j + k + 58720256)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
}
```