user: Please show me the C implementation that matches the assembly code listed below:

```asm
<helper_float_25_recursive>:
  endbr64
  sub    $0xd,%esi
  cmp    $0xc,%esi
  ja     L51
  lea    D4(%rip),%rdx
  push   %r12
  movslq (%rdx,%rsi,4),%rax
  push   %rbp
  push   %rbx
  mov    %rdi,%rbx
  add    %rdx,%rax
  notrack jmp *%rax
  mov    %rdi,%rdx
  lea    0x8000(%rdi),%rbp
  mov    %rdi,%rax
  nopl   (%rax)
L10:
  lea    0x20(%rax),%rcx
  lea    0x40(%rax),%rsi
  lea    0x60(%rax),%rdi
  lea    0x80(%rax),%r8
  lea    0xa0(%rax),%r9
  lea    0xc0(%rax),%r10
  lea    0xe0(%rax),%r11
  vmovups (%rax),%ymm0
  vmovups (%rcx),%ymm1
  vmovups (%rsi),%ymm2
  vmovups (%rdi),%ymm3
  vmovups (%r8),%ymm4
  vmovups (%r9),%ymm5
  vmovups (%r10),%ymm6
  vmovups (%r11),%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,(%rcx)
  vmovups %ymm10,(%rsi)
  vmovups %ymm11,(%rdi)
  vmovups %ymm12,(%r8)
  vmovups %ymm13,(%r9)
  vmovups %ymm14,(%r10)
  vmovups %ymm15,(%r11)
  add    $0x100,%rax
  cmp    %rax,%rbp
  jne    L10
  lea    0x100(%rbx),%rbp
  lea    0x8100(%rbx),%r12
  nopl   (%rax)
L50:
  lea    -0x100(%rbp),%rax
  nopw   0x0(%rax,%rax,1)
L24:
  lea    0x100(%rax),%rcx
  lea    0x200(%rax),%rsi
  lea    0x300(%rax),%rdi
  lea    0x400(%rax),%r8
  lea    0x500(%rax),%r9
  lea    0x600(%rax),%r10
  lea    0x700(%rax),%r11
  vmovups (%rax),%ymm0
  vmovups (%rcx),%ymm1
  vmovups (%rsi),%ymm2
  vmovups (%rdi),%ymm3
  vmovups (%r8),%ymm4
  vmovups (%r9),%ymm5
  vmovups (%r10),%ymm6
  vmovups (%r11),%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,(%rcx)
  vmovups %ymm10,(%rsi)
  vmovups %ymm11,(%rdi)
  vmovups %ymm12,(%r8)
  vmovups %ymm13,(%r9)
  vmovups %ymm14,(%r10)
  vmovups %ymm15,(%r11)
  add    $0x20,%rax
  cmp    %rax,%rbp
  jne    L24
  add    $0x800,%rbp
  cmp    %rbp,%r12
  jne    L50
  lea    0x800(%rbx),%rbp
  xor    %r12d,%r12d
L101:
  lea    -0x800(%rbp),%rax
  nop
L35:
  lea    0x800(%rax),%rcx
  lea    0x1000(%rax),%rsi
  lea    0x1800(%rax),%rdi
  lea    0x2000(%rax),%r8
  lea    0x2800(%rax),%r9
  lea    0x3000(%rax),%r10
  lea    0x3800(%rax),%r11
  vmovups (%rax),%ymm0
  vmovups (%rcx),%ymm1
  vmovups (%rsi),%ymm2
  vmovups (%rdi),%ymm3
  vmovups (%r8),%ymm4
  vmovups (%r9),%ymm5
  vmovups (%r10),%ymm6
  vmovups (%r11),%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,(%rcx)
  vmovups %ymm10,(%rsi)
  vmovups %ymm11,(%rdi)
  vmovups %ymm12,(%r8)
  vmovups %ymm13,(%r9)
  vmovups %ymm14,(%r10)
  vmovups %ymm15,(%r11)
  add    $0x20,%rax
  cmp    %rax,%rbp
  jne    L35
  add    $0x1000,%r12
  add    $0x4000,%rbp
  cmp    $0x2000,%r12
  jne    L101
  lea    0x4000(%rbx),%rax
L23:
  lea    0x4000(%rdx),%rcx
  vmovups (%rdx),%ymm0
  vmovups (%rcx),%ymm1
  vaddps %ymm1,%ymm0,%ymm8
  vsubps %ymm1,%ymm0,%ymm9
  vmovups %ymm8,(%rdx)
  vmovups %ymm9,(%rcx)
  add    $0x20,%rdx
  cmp    %rdx,%rax
  jne    L23
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  nopl   (%rax)
L51:
  ret
  mov    $0x16,%esi
  lea    0x1000000(%rbx),%rbp
  call   <helper_float_25_recursive>
  mov    $0x16,%esi
  mov    %rbp,%rdi
  call   <helper_float_25_recursive>
  lea    0x2000000(%rbx),%rdi
  mov    $0x16,%esi
  call   <helper_float_25_recursive>
  lea    0x3000000(%rbx),%rdi
  mov    $0x16,%esi
  call   <helper_float_25_recursive>
  lea    0x4000000(%rbx),%rdi
  mov    $0x16,%esi
  call   <helper_float_25_recursive>
  lea    0x5000000(%rbx),%rdi
  mov    $0x16,%esi
  call   <helper_float_25_recursive>
  lea    0x6000000(%rbx),%rdi
  mov    $0x16,%esi
  call   <helper_float_25_recursive>
  lea    0x7000000(%rbx),%rdi
  mov    $0x16,%esi
  call   <helper_float_25_recursive>
  mov    %rbx,%rax
  nopl   0x0(%rax,%rax,1)
L31:
  lea    0x1000000(%rax),%rdx
  lea    0x2000000(%rax),%rcx
  lea    0x3000000(%rax),%rsi
  lea    0x4000000(%rax),%rdi
  lea    0x5000000(%rax),%r8
  lea    0x6000000(%rax),%r9
  lea    0x7000000(%rax),%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)
  add    $0x20,%rax
  cmp    %rbp,%rax
  jne    L31
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  mov    $0xd,%esi
  lea    0x8000(%rbx),%rbp
  call   <helper_float_25_recursive>
  mov    $0xd,%esi
  mov    %rbp,%rdi
  call   <helper_float_25_recursive>
  lea    0x10000(%rbx),%rdi
  mov    $0xd,%esi
  call   <helper_float_25_recursive>
  lea    0x18000(%rbx),%rdi
  mov    $0xd,%esi
  call   <helper_float_25_recursive>
  lea    0x20000(%rbx),%rdi
  mov    $0xd,%esi
  call   <helper_float_25_recursive>
  lea    0x28000(%rbx),%rdi
  mov    $0xd,%esi
  call   <helper_float_25_recursive>
  lea    0x30000(%rbx),%rdi
  mov    $0xd,%esi
  call   <helper_float_25_recursive>
  lea    0x38000(%rbx),%rdi
  mov    $0xd,%esi
  call   <helper_float_25_recursive>
  mov    %rbx,%rax
  nopl   0x0(%rax,%rax,1)
L100:
  lea    0x8000(%rax),%rdx
  lea    0x10000(%rax),%rcx
  lea    0x18000(%rax),%rsi
  lea    0x20000(%rax),%rdi
  lea    0x28000(%rax),%r8
  lea    0x30000(%rax),%r9
  lea    0x38000(%rax),%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)
  add    $0x20,%rax
  cmp    %rax,%rbp
  jne    L100
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  mov    $0x10,%esi
  lea    0x40000(%rbx),%rbp
  call   <helper_float_25_recursive>
  mov    $0x10,%esi
  mov    %rbp,%rdi
  call   <helper_float_25_recursive>
  lea    0x80000(%rbx),%rdi
  mov    $0x10,%esi
  call   <helper_float_25_recursive>
  lea    0xc0000(%rbx),%rdi
  mov    $0x10,%esi
  call   <helper_float_25_recursive>
  lea    0x100000(%rbx),%rdi
  mov    $0x10,%esi
  call   <helper_float_25_recursive>
  lea    0x140000(%rbx),%rdi
  mov    $0x10,%esi
  call   <helper_float_25_recursive>
  lea    0x180000(%rbx),%rdi
  mov    $0x10,%esi
  call   <helper_float_25_recursive>
  lea    0x1c0000(%rbx),%rdi
  mov    $0x10,%esi
  call   <helper_float_25_recursive>
  mov    %rbx,%rax
  nopl   0x0(%rax,%rax,1)
L39:
  lea    0x40000(%rax),%rdx
  lea    0x80000(%rax),%rcx
  lea    0xc0000(%rax),%rsi
  lea    0x100000(%rax),%rdi
  lea    0x140000(%rax),%r8
  lea    0x180000(%rax),%r9
  lea    0x1c0000(%rax),%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)
  add    $0x20,%rax
  cmp    %rax,%rbp
  jne    L39
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
  mov    $0x13,%esi
  lea    0x200000(%rbx),%rbp
  call   <helper_float_25_recursive>
  mov    $0x13,%esi
  mov    %rbp,%rdi
  call   <helper_float_25_recursive>
  lea    0x400000(%rbx),%rdi
  mov    $0x13,%esi
  call   <helper_float_25_recursive>
  lea    0x600000(%rbx),%rdi
  mov    $0x13,%esi
  call   <helper_float_25_recursive>
  lea    0x800000(%rbx),%rdi
  mov    $0x13,%esi
  call   <helper_float_25_recursive>
  lea    0xa00000(%rbx),%rdi
  mov    $0x13,%esi
  call   <helper_float_25_recursive>
  lea    0xc00000(%rbx),%rdi
  mov    $0x13,%esi
  call   <helper_float_25_recursive>
  lea    0xe00000(%rbx),%rdi
  mov    $0x13,%esi
  call   <helper_float_25_recursive>
  mov    %rbx,%rax
  nopl   0x0(%rax,%rax,1)
L99:
  lea    0x200000(%rax),%rdx
  lea    0x400000(%rax),%rcx
  lea    0x600000(%rax),%rsi
  lea    0x800000(%rax),%rdi
  lea    0xa00000(%rax),%r8
  lea    0xc00000(%rax),%r9
  lea    0xe00000(%rax),%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)
  add    $0x20,%rax
  cmp    %rax,%rbp
  jne    L99
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
```

assistant: ```c
void helper_float_25_recursive(float *buf, int depth) {
  if (depth == 13) {
    for (int j = 0; j < 8192; 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 < 8192; 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 < 8192; j += 4096) {
      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"
                         "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 + 512), "r"(buf + j + k + 1024), "r"(buf + j + k + 1536), "r"(buf + j + k + 2048), "r"(buf + j + k + 2560), "r"(buf + j + k + 3072), "r"(buf + j + k + 3584)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    for (int j = 0; j < 8192; j += 8192) {
      for (int k = 0; k < 4096; k += 8) {
        __asm__ volatile("vmovups (%0), %%ymm0\n"
                         "vmovups (%1), %%ymm1\n"
                         "vaddps %%ymm1, %%ymm0, %%ymm8\n"
                         "vsubps %%ymm1, %%ymm0, %%ymm9\n"
                         "vmovups %%ymm8, (%0)\n"
                         "vmovups %%ymm9, (%1)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 4096)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 16) {
    helper_float_25_recursive(buf + 0, 13);
    helper_float_25_recursive(buf + 8192, 13);
    helper_float_25_recursive(buf + 16384, 13);
    helper_float_25_recursive(buf + 24576, 13);
    helper_float_25_recursive(buf + 32768, 13);
    helper_float_25_recursive(buf + 40960, 13);
    helper_float_25_recursive(buf + 49152, 13);
    helper_float_25_recursive(buf + 57344, 13);
    for (int j = 0; j < 65536; j += 65536) {
      for (int k = 0; k < 8192; 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 + 8192), "r"(buf + j + k + 16384), "r"(buf + j + k + 24576), "r"(buf + j + k + 32768), "r"(buf + j + k + 40960), "r"(buf + j + k + 49152), "r"(buf + j + k + 57344)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 19) {
    helper_float_25_recursive(buf + 0, 16);
    helper_float_25_recursive(buf + 65536, 16);
    helper_float_25_recursive(buf + 131072, 16);
    helper_float_25_recursive(buf + 196608, 16);
    helper_float_25_recursive(buf + 262144, 16);
    helper_float_25_recursive(buf + 327680, 16);
    helper_float_25_recursive(buf + 393216, 16);
    helper_float_25_recursive(buf + 458752, 16);
    for (int j = 0; j < 524288; j += 524288) {
      for (int k = 0; k < 65536; 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 + 65536), "r"(buf + j + k + 131072), "r"(buf + j + k + 196608), "r"(buf + j + k + 262144), "r"(buf + j + k + 327680), "r"(buf + j + k + 393216), "r"(buf + j + k + 458752)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 22) {
    helper_float_25_recursive(buf + 0, 19);
    helper_float_25_recursive(buf + 524288, 19);
    helper_float_25_recursive(buf + 1048576, 19);
    helper_float_25_recursive(buf + 1572864, 19);
    helper_float_25_recursive(buf + 2097152, 19);
    helper_float_25_recursive(buf + 2621440, 19);
    helper_float_25_recursive(buf + 3145728, 19);
    helper_float_25_recursive(buf + 3670016, 19);
    for (int j = 0; j < 4194304; j += 4194304) {
      for (int k = 0; k < 524288; 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 + 524288), "r"(buf + j + k + 1048576), "r"(buf + j + k + 1572864), "r"(buf + j + k + 2097152), "r"(buf + j + k + 2621440), "r"(buf + j + k + 3145728), "r"(buf + j + k + 3670016)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
  if (depth == 25) {
    helper_float_25_recursive(buf + 0, 22);
    helper_float_25_recursive(buf + 4194304, 22);
    helper_float_25_recursive(buf + 8388608, 22);
    helper_float_25_recursive(buf + 12582912, 22);
    helper_float_25_recursive(buf + 16777216, 22);
    helper_float_25_recursive(buf + 20971520, 22);
    helper_float_25_recursive(buf + 25165824, 22);
    helper_float_25_recursive(buf + 29360128, 22);
    for (int j = 0; j < 33554432; j += 33554432) {
      for (int k = 0; k < 4194304; 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 + 4194304), "r"(buf + j + k + 8388608), "r"(buf + j + k + 12582912), "r"(buf + j + k + 16777216), "r"(buf + j + k + 20971520), "r"(buf + j + k + 25165824), "r"(buf + j + k + 29360128)
                         : "%ymm0", "%ymm1", "%ymm2", "%ymm3", "%ymm4", "%ymm5", "%ymm6", "%ymm7", "%ymm8", "%ymm9", "%ymm10", "%ymm11", "%ymm12", "%ymm13", "%ymm14", "%ymm15", "memory");
      }
    }
    return;
  }
}
```