user: 请从给定的汇编指令推导出C源代码:

```asm
<helper_float_23_recursive>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %rdi,-0x48(%rbp)
  mov    %esi,-0x4c(%rbp)
  cmpl   $0x6,-0x4c(%rbp)
  jne    L99
  movl   $0x0,-0x40(%rbp)
  jmp    L366
L5:
  movl   $0x0,-0x3c(%rbp)
  jmp    L214
L122:
  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    $0x4,%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    $0x8,%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    $0xc,%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    $0x10,%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    $0x14,%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    $0x18,%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    $0x1c,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm0,%xmm0
  xorps  %xmm9,%xmm9
  subps  %xmm0,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm0
  movaps %xmm1,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm1,%xmm1
  xorps  %xmm9,%xmm9
  subps  %xmm1,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm1
  movaps %xmm2,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm2,%xmm2
  xorps  %xmm9,%xmm9
  subps  %xmm2,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm2
  movaps %xmm3,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm3,%xmm3
  xorps  %xmm9,%xmm9
  subps  %xmm3,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm3
  movaps %xmm4,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm4,%xmm4
  xorps  %xmm9,%xmm9
  subps  %xmm4,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm4
  movaps %xmm5,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm5,%xmm5
  xorps  %xmm9,%xmm9
  subps  %xmm5,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm5
  movaps %xmm6,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm6,%xmm6
  xorps  %xmm9,%xmm9
  subps  %xmm6,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm6
  movaps %xmm7,%xmm8
  shufps $0xa0,%xmm8,%xmm8
  shufps $0xf5,%xmm7,%xmm7
  xorps  %xmm9,%xmm9
  subps  %xmm7,%xmm9
  addsubps %xmm9,%xmm8
  movaps %xmm8,%xmm7
  movaps %xmm0,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm0,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm0,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm0
  movaps %xmm1,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm1,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm1,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm1
  movaps %xmm2,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm2,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm2,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm2
  movaps %xmm3,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm3,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm3,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm3
  movaps %xmm4,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm4,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm4,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm4
  movaps %xmm5,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm5,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm5,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm5
  movaps %xmm6,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm6,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm6,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm6
  movaps %xmm7,%xmm8
  shufps $0x44,%xmm8,%xmm8
  xorps  %xmm9,%xmm9
  movaps %xmm7,%xmm10
  shufps $0xe,%xmm9,%xmm10
  movaps %xmm7,%xmm11
  shufps $0xe0,%xmm11,%xmm9
  addps  %xmm8,%xmm10
  subps  %xmm9,%xmm10
  movaps %xmm10,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  addl   $0x4,-0x3c(%rbp)
L214:
  cmpl   $0x3,-0x3c(%rbp)
  jle    L122
  addl   $0x20,-0x40(%rbp)
L366:
  cmpl   $0x3f,-0x40(%rbp)
  jle    L5
  movl   $0x0,-0x38(%rbp)
  jmp    L408
L275:
  movl   $0x0,-0x34(%rbp)
  jmp    L141
L43:
  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    $0x20,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x48(%rbp),%rdx
  add    %rcx,%rdx
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  addl   $0x4,-0x34(%rbp)
L141:
  cmpl   $0x1f,-0x34(%rbp)
  jle    L43
  addl   $0x40,-0x38(%rbp)
L408:
  cmpl   $0x3f,-0x38(%rbp)
  jle    L275
  jmp    L389
L99:
  cmpl   $0x9,-0x4c(%rbp)
  jne    L16
  mov    -0x48(%rbp),%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x100,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x200,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x300,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x400,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x500,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x600,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x700,%rax
  mov    $0x6,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  movl   $0x0,-0x30(%rbp)
  jmp    L187
L156:
  movl   $0x0,-0x2c(%rbp)
  jmp    L30
L391:
  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    $0x40,%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
  sub    $0xffffffffffffff80,%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    $0xc0,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  mov    -0x30(%rbp),%edi
  movslq %edi,%r8
  mov    -0x2c(%rbp),%edi
  movslq %edi,%rdi
  add    %r8,%rdi
  add    $0x100,%rdi
  lea    0x0(,%rdi,4),%r8
  mov    -0x48(%rbp),%rdi
  add    %r8,%rdi
  mov    -0x30(%rbp),%r8d
  movslq %r8d,%r9
  mov    -0x2c(%rbp),%r8d
  movslq %r8d,%r8
  add    %r9,%r8
  add    $0x140,%r8
  lea    0x0(,%r8,4),%r9
  mov    -0x48(%rbp),%r8
  add    %r9,%r8
  mov    -0x30(%rbp),%r9d
  movslq %r9d,%r10
  mov    -0x2c(%rbp),%r9d
  movslq %r9d,%r9
  add    %r10,%r9
  add    $0x180,%r9
  lea    0x0(,%r9,4),%r10
  mov    -0x48(%rbp),%r9
  add    %r10,%r9
  mov    -0x30(%rbp),%r10d
  movslq %r10d,%r11
  mov    -0x2c(%rbp),%r10d
  movslq %r10d,%r10
  add    %r11,%r10
  add    $0x1c0,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  addl   $0x4,-0x2c(%rbp)
L30:
  cmpl   $0x3f,-0x2c(%rbp)
  jle    L391
  addl   $0x200,-0x30(%rbp)
L187:
  cmpl   $0x1ff,-0x30(%rbp)
  jle    L156
  jmp    L389
L16:
  cmpl   $0xc,-0x4c(%rbp)
  jne    L256
  mov    -0x48(%rbp),%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x800,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1000,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1800,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x2000,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x2800,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x3000,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x3800,%rax
  mov    $0x9,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  movl   $0x0,-0x28(%rbp)
  jmp    L346
L348:
  movl   $0x0,-0x24(%rbp)
  jmp    L433
L107:
  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    $0x200,%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    $0x400,%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    $0x600,%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    $0x800,%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    $0xa00,%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    $0xc00,%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    $0xe00,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  addl   $0x4,-0x24(%rbp)
L433:
  cmpl   $0x1ff,-0x24(%rbp)
  jle    L107
  addl   $0x1000,-0x28(%rbp)
L346:
  cmpl   $0xfff,-0x28(%rbp)
  jle    L348
  jmp    L389
L256:
  cmpl   $0xf,-0x4c(%rbp)
  jne    L54
  mov    -0x48(%rbp),%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x4000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x8000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xc000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x10000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x14000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x18000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1c000,%rax
  mov    $0xc,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  movl   $0x0,-0x20(%rbp)
  jmp    L306
L237:
  movl   $0x0,-0x1c(%rbp)
  jmp    L129
L108:
  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    $0x1000,%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    $0x2000,%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    $0x3000,%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    $0x4000,%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    $0x5000,%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    $0x6000,%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    $0x7000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  addl   $0x4,-0x1c(%rbp)
L129:
  cmpl   $0xfff,-0x1c(%rbp)
  jle    L108
  addl   $0x8000,-0x20(%rbp)
L306:
  cmpl   $0x7fff,-0x20(%rbp)
  jle    L237
  jmp    L389
L54:
  cmpl   $0x12,-0x4c(%rbp)
  jne    L328
  mov    -0x48(%rbp),%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x20000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x40000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x60000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x80000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xa0000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xc0000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0xe0000,%rax
  mov    $0xf,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  movl   $0x0,-0x18(%rbp)
  jmp    L93
L118:
  movl   $0x0,-0x14(%rbp)
  jmp    L62
L278:
  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    $0x8000,%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    $0x10000,%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    $0x18000,%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    $0x20000,%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    $0x28000,%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    $0x30000,%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    $0x38000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  addl   $0x4,-0x14(%rbp)
L62:
  cmpl   $0x7fff,-0x14(%rbp)
  jle    L278
  addl   $0x40000,-0x18(%rbp)
L93:
  cmpl   $0x3ffff,-0x18(%rbp)
  jle    L118
  jmp    L389
L328:
  cmpl   $0x15,-0x4c(%rbp)
  jne    L59
  mov    -0x48(%rbp),%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x100000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x200000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x300000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x400000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x500000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x600000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x700000,%rax
  mov    $0x12,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  movl   $0x0,-0x10(%rbp)
  jmp    L124
L413:
  movl   $0x0,-0xc(%rbp)
  jmp    L326
L449:
  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    $0x40000,%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    $0x80000,%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    $0xc0000,%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    $0x100000,%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    $0x140000,%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    $0x180000,%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    $0x1c0000,%r10
  lea    0x0(,%r10,4),%r11
  mov    -0x48(%rbp),%r10
  add    %r11,%r10
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movups (%rdi),%xmm4
  movups (%r8),%xmm5
  movups (%r9),%xmm6
  movups (%r10),%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm4,%xmm12
  movaps %xmm4,%xmm13
  addps  %xmm5,%xmm12
  subps  %xmm5,%xmm13
  movaps %xmm6,%xmm14
  movaps %xmm6,%xmm15
  addps  %xmm7,%xmm14
  subps  %xmm7,%xmm15
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movaps %xmm12,%xmm4
  movaps %xmm12,%xmm6
  addps  %xmm14,%xmm4
  subps  %xmm14,%xmm6
  movaps %xmm13,%xmm5
  movaps %xmm13,%xmm7
  addps  %xmm15,%xmm5
  subps  %xmm15,%xmm7
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm12
  addps  %xmm4,%xmm8
  subps  %xmm4,%xmm12
  movaps %xmm1,%xmm9
  movaps %xmm1,%xmm13
  addps  %xmm5,%xmm9
  subps  %xmm5,%xmm13
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm14
  addps  %xmm6,%xmm10
  subps  %xmm6,%xmm14
  movaps %xmm3,%xmm11
  movaps %xmm3,%xmm15
  addps  %xmm7,%xmm11
  subps  %xmm7,%xmm15
  movups %xmm8,(%rax)
  movups %xmm9,(%rdx)
  movups %xmm10,(%rcx)
  movups %xmm11,(%rsi)
  movups %xmm12,(%rdi)
  movups %xmm13,(%r8)
  movups %xmm14,(%r9)
  movups %xmm15,(%r10)
  addl   $0x4,-0xc(%rbp)
L326:
  cmpl   $0x3ffff,-0xc(%rbp)
  jle    L449
  addl   $0x200000,-0x10(%rbp)
L124:
  cmpl   $0x1fffff,-0x10(%rbp)
  jle    L413
  jmp    L389
L59:
  cmpl   $0x17,-0x4c(%rbp)
  jne    L389
  mov    -0x48(%rbp),%rax
  mov    $0x15,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x800000,%rax
  mov    $0x15,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1000000,%rax
  mov    $0x15,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  mov    -0x48(%rbp),%rax
  add    $0x1800000,%rax
  mov    $0x15,%esi
  mov    %rax,%rdi
  call   <helper_float_23_recursive>
  movl   $0x0,-0x8(%rbp)
  jmp    L45
L327:
  movl   $0x0,-0x4(%rbp)
  jmp    L301
L427:
  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    $0x200000,%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    $0x400000,%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    $0x600000,%rsi
  lea    0x0(,%rsi,4),%rdi
  mov    -0x48(%rbp),%rsi
  add    %rdi,%rsi
  movups (%rax),%xmm0
  movups (%rdx),%xmm1
  movups (%rcx),%xmm2
  movups (%rsi),%xmm3
  movaps %xmm0,%xmm8
  movaps %xmm0,%xmm9
  addps  %xmm1,%xmm8
  subps  %xmm1,%xmm9
  movaps %xmm2,%xmm10
  movaps %xmm2,%xmm11
  addps  %xmm3,%xmm10
  subps  %xmm3,%xmm11
  movaps %xmm8,%xmm0
  movaps %xmm8,%xmm2
  addps  %xmm10,%xmm0
  subps  %xmm10,%xmm2
  movaps %xmm9,%xmm1
  movaps %xmm9,%xmm3
  addps  %xmm11,%xmm1
  subps  %xmm11,%xmm3
  movups %xmm0,(%rax)
  movups %xmm1,(%rdx)
  movups %xmm2,(%rcx)
  movups %xmm3,(%rsi)
  addl   $0x4,-0x4(%rbp)
L301:
  cmpl   $0x1fffff,-0x4(%rbp)
  jle    L427
  addl   $0x800000,-0x8(%rbp)
L45:
  cmpl   $0x7fffff,-0x8(%rbp)
  jle    L327
  nop
L389:
  leave
  ret
```

assistant: ```c
void helper_float_23_recursive(float *buf, int depth) {
  if (depth == 6) {
    for (int j = 0; j < 64; j += 32) {
      for (int k = 0; k < 4; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm0, %%xmm0\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm0, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm1, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm1, %%xmm1\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm1, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm1\n"
                         "movaps %%xmm2, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm2, %%xmm2\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm2, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "movaps %%xmm3, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm3, %%xmm3\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm3, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm3\n"
                         "movaps %%xmm4, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm4, %%xmm4\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm4, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm4\n"
                         "movaps %%xmm5, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm5, %%xmm5\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm5, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm5\n"
                         "movaps %%xmm6, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm6, %%xmm6\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm6, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm6\n"
                         "movaps %%xmm7, %%xmm8\n"
                         "shufps $160, %%xmm8, %%xmm8\n"
                         "shufps $245, %%xmm7, %%xmm7\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "subps %%xmm7, %%xmm9\n"
                         "addsubps %%xmm9, %%xmm8\n"
                         "movaps %%xmm8, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm0, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm0, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm0\n"
                         "movaps %%xmm1, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm1, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm1, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm1\n"
                         "movaps %%xmm2, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm2\n"
                         "movaps %%xmm3, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm3, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm3\n"
                         "movaps %%xmm4, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm4, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm4, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm4\n"
                         "movaps %%xmm5, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm5, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm5, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm5\n"
                         "movaps %%xmm6, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm6, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm6, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm6\n"
                         "movaps %%xmm7, %%xmm8\n"
                         "shufps $68, %%xmm8, %%xmm8\n"
                         "xorps %%xmm9, %%xmm9\n"
                         "movaps %%xmm7, %%xmm10\n"
                         "shufps $14, %%xmm9, %%xmm10\n"
                         "movaps %%xmm7, %%xmm11\n"
                         "shufps $224, %%xmm11, %%xmm9\n"
                         "addps %%xmm8, %%xmm10\n"
                         "subps %%xmm9, %%xmm10\n"
                         "movaps %%xmm10, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 4), "r"(buf + j + k + 8), "r"(buf + j + k + 12), "r"(buf + j + k + 16), "r"(buf + j + k + 20), "r"(buf + j + k + 24), "r"(buf + j + k + 28)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    for (int j = 0; j < 64; j += 64) {
      for (int k = 0; k < 32; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 32)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 9) {
    helper_float_23_recursive(buf + 0, 6);
    helper_float_23_recursive(buf + 64, 6);
    helper_float_23_recursive(buf + 128, 6);
    helper_float_23_recursive(buf + 192, 6);
    helper_float_23_recursive(buf + 256, 6);
    helper_float_23_recursive(buf + 320, 6);
    helper_float_23_recursive(buf + 384, 6);
    helper_float_23_recursive(buf + 448, 6);
    for (int j = 0; j < 512; j += 512) {
      for (int k = 0; k < 64; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 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)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 12) {
    helper_float_23_recursive(buf + 0, 9);
    helper_float_23_recursive(buf + 512, 9);
    helper_float_23_recursive(buf + 1024, 9);
    helper_float_23_recursive(buf + 1536, 9);
    helper_float_23_recursive(buf + 2048, 9);
    helper_float_23_recursive(buf + 2560, 9);
    helper_float_23_recursive(buf + 3072, 9);
    helper_float_23_recursive(buf + 3584, 9);
    for (int j = 0; j < 4096; j += 4096) {
      for (int k = 0; k < 512; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 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)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 15) {
    helper_float_23_recursive(buf + 0, 12);
    helper_float_23_recursive(buf + 4096, 12);
    helper_float_23_recursive(buf + 8192, 12);
    helper_float_23_recursive(buf + 12288, 12);
    helper_float_23_recursive(buf + 16384, 12);
    helper_float_23_recursive(buf + 20480, 12);
    helper_float_23_recursive(buf + 24576, 12);
    helper_float_23_recursive(buf + 28672, 12);
    for (int j = 0; j < 32768; j += 32768) {
      for (int k = 0; k < 4096; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 4096), "r"(buf + j + k + 8192), "r"(buf + j + k + 12288), "r"(buf + j + k + 16384), "r"(buf + j + k + 20480), "r"(buf + j + k + 24576), "r"(buf + j + k + 28672)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 18) {
    helper_float_23_recursive(buf + 0, 15);
    helper_float_23_recursive(buf + 32768, 15);
    helper_float_23_recursive(buf + 65536, 15);
    helper_float_23_recursive(buf + 98304, 15);
    helper_float_23_recursive(buf + 131072, 15);
    helper_float_23_recursive(buf + 163840, 15);
    helper_float_23_recursive(buf + 196608, 15);
    helper_float_23_recursive(buf + 229376, 15);
    for (int j = 0; j < 262144; j += 262144) {
      for (int k = 0; k < 32768; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 32768), "r"(buf + j + k + 65536), "r"(buf + j + k + 98304), "r"(buf + j + k + 131072), "r"(buf + j + k + 163840), "r"(buf + j + k + 196608), "r"(buf + j + k + 229376)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 21) {
    helper_float_23_recursive(buf + 0, 18);
    helper_float_23_recursive(buf + 262144, 18);
    helper_float_23_recursive(buf + 524288, 18);
    helper_float_23_recursive(buf + 786432, 18);
    helper_float_23_recursive(buf + 1048576, 18);
    helper_float_23_recursive(buf + 1310720, 18);
    helper_float_23_recursive(buf + 1572864, 18);
    helper_float_23_recursive(buf + 1835008, 18);
    for (int j = 0; j < 2097152; j += 2097152) {
      for (int k = 0; k < 262144; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movups (%4), %%xmm4\n"
                         "movups (%5), %%xmm5\n"
                         "movups (%6), %%xmm6\n"
                         "movups (%7), %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm4, %%xmm12\n"
                         "movaps %%xmm4, %%xmm13\n"
                         "addps %%xmm5, %%xmm12\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm6, %%xmm14\n"
                         "movaps %%xmm6, %%xmm15\n"
                         "addps %%xmm7, %%xmm14\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movaps %%xmm12, %%xmm4\n"
                         "movaps %%xmm12, %%xmm6\n"
                         "addps %%xmm14, %%xmm4\n"
                         "subps %%xmm14, %%xmm6\n"
                         "movaps %%xmm13, %%xmm5\n"
                         "movaps %%xmm13, %%xmm7\n"
                         "addps %%xmm15, %%xmm5\n"
                         "subps %%xmm15, %%xmm7\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm12\n"
                         "addps %%xmm4, %%xmm8\n"
                         "subps %%xmm4, %%xmm12\n"
                         "movaps %%xmm1, %%xmm9\n"
                         "movaps %%xmm1, %%xmm13\n"
                         "addps %%xmm5, %%xmm9\n"
                         "subps %%xmm5, %%xmm13\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm14\n"
                         "addps %%xmm6, %%xmm10\n"
                         "subps %%xmm6, %%xmm14\n"
                         "movaps %%xmm3, %%xmm11\n"
                         "movaps %%xmm3, %%xmm15\n"
                         "addps %%xmm7, %%xmm11\n"
                         "subps %%xmm7, %%xmm15\n"
                         "movups %%xmm8, (%0)\n"
                         "movups %%xmm9, (%1)\n"
                         "movups %%xmm10, (%2)\n"
                         "movups %%xmm11, (%3)\n"
                         "movups %%xmm12, (%4)\n"
                         "movups %%xmm13, (%5)\n"
                         "movups %%xmm14, (%6)\n"
                         "movups %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 262144), "r"(buf + j + k + 524288), "r"(buf + j + k + 786432), "r"(buf + j + k + 1048576), "r"(buf + j + k + 1310720), "r"(buf + j + k + 1572864), "r"(buf + j + k + 1835008)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 23) {
    helper_float_23_recursive(buf + 0, 21);
    helper_float_23_recursive(buf + 2097152, 21);
    helper_float_23_recursive(buf + 4194304, 21);
    helper_float_23_recursive(buf + 6291456, 21);
    for (int j = 0; j < 8388608; j += 8388608) {
      for (int k = 0; k < 2097152; k += 4) {
        __asm__ volatile("movups (%0), %%xmm0\n"
                         "movups (%1), %%xmm1\n"
                         "movups (%2), %%xmm2\n"
                         "movups (%3), %%xmm3\n"
                         "movaps %%xmm0, %%xmm8\n"
                         "movaps %%xmm0, %%xmm9\n"
                         "addps %%xmm1, %%xmm8\n"
                         "subps %%xmm1, %%xmm9\n"
                         "movaps %%xmm2, %%xmm10\n"
                         "movaps %%xmm2, %%xmm11\n"
                         "addps %%xmm3, %%xmm10\n"
                         "subps %%xmm3, %%xmm11\n"
                         "movaps %%xmm8, %%xmm0\n"
                         "movaps %%xmm8, %%xmm2\n"
                         "addps %%xmm10, %%xmm0\n"
                         "subps %%xmm10, %%xmm2\n"
                         "movaps %%xmm9, %%xmm1\n"
                         "movaps %%xmm9, %%xmm3\n"
                         "addps %%xmm11, %%xmm1\n"
                         "subps %%xmm11, %%xmm3\n"
                         "movups %%xmm0, (%0)\n"
                         "movups %%xmm1, (%1)\n"
                         "movups %%xmm2, (%2)\n"
                         "movups %%xmm3, (%3)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 2097152), "r"(buf + j + k + 4194304), "r"(buf + j + k + 6291456)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
}
```