user: Demonstrate the C code that generates the assembly output below:

```asm
<tce_sortacc_6_scalar>:
  endbr64
  mov    %ecx,%eax
  mov    %r8d,%ecx
  push   %r15
  mov    %edx,%r10d
  push   %r14
  movd   %eax,%xmm6
  imul   %ecx,%eax
  mov    %r9d,%edx
  push   %r13
  movd   %ecx,%xmm2
  imul   %edx,%ecx
  movd   %edx,%xmm5
  push   %r12
  movd   %r10d,%xmm1
  mov    %rsi,%r13
  punpckldq %xmm5,%xmm2
  push   %rbp
  imul   %edx,%eax
  punpckldq %xmm6,%xmm1
  mov    %rdi,%r14
  push   %rbx
  punpcklqdq %xmm2,%xmm1
  sub    $0x298,%rsp
  mov    0x2d0(%rsp),%esi
  mov    0x2d8(%rsp),%r8d
  mov    %fs:0x28,%rdi
  mov    %rdi,0x288(%rsp)
  xor    %edi,%edi
  movaps %xmm1,0x250(%rsp)
  movslq 0x2e0(%rsp),%rdi
  mov    0x308(%rsp),%r9d
  imul   %esi,%eax
  movd   %r8d,%xmm7
  movd   %esi,%xmm1
  mov    %r8d,0x280(%rsp)
  imul   %esi,%ecx
  punpckldq %xmm7,%xmm1
  movd   %esi,%xmm5
  movslq 0x2f8(%rsp),%r8
  imul   %esi,%edx
  pshufd $0x0,%xmm7,%xmm3
  movq   %xmm1,0x260(%rsp)
  movslq 0x2e8(%rsp),%rsi
  movd   %eax,%xmm1
  mov    0x250(%rsp,%rdi,4),%eax
  mov    0x250(%rsp,%r8,4),%r11d
  movl   $0x1,0x284(%rsp)
  movd   %ecx,%xmm6
  movslq 0x2f0(%rsp),%rcx
  mov    0x250(%rsp,%rsi,4),%ebp
  movd   %edx,%xmm2
  punpckldq %xmm6,%xmm1
  mov    %eax,0x60(%rsp)
  movslq 0x300(%rsp),%rdx
  punpckldq %xmm5,%xmm2
  mov    0x250(%rsp,%rcx,4),%r15d
  movslq %r9d,%rax
  mov    %ebp,0x64(%rsp)
  punpcklqdq %xmm2,%xmm1
  mov    0x250(%rsp,%rdx,4),%ebx
  mov    %r11d,0x6c(%rsp)
  movdqa %xmm1,%xmm2
  psrlq  $0x20,%xmm1
  mov    %r15d,0x68(%rsp)
  pmuludq %xmm3,%xmm2
  psrlq  $0x20,%xmm3
  mov    %ebx,0x80(%rsp)
  pmuludq %xmm3,%xmm1
  pshufd $0x8,%xmm2,%xmm2
  pshufd $0x8,%xmm1,%xmm1
  punpckldq %xmm1,%xmm2
  movaps %xmm2,0x270(%rsp)
  mov    0x250(%rsp,%rax,4),%r10d
  mov    0x270(%rsp,%rax,4),%eax
  mov    0x270(%rsp,%rdi,4),%edi
  mov    %eax,0x58(%rsp)
  mov    %ebp,%eax
  imul   %r15d,%eax
  mov    %edi,0x28(%rsp)
  mov    0x270(%rsp,%rsi,4),%edi
  imul   %r11d,%r15d
  mov    %r10d,0x8(%rsp)
  mov    %edi,0x20(%rsp)
  mov    0x270(%rsp,%rcx,4),%edi
  imul   %r11d,%eax
  imul   %ebx,%r11d
  mov    %edi,0x18(%rsp)
  mov    0x270(%rsp,%r8,4),%edi
  imul   %ebx,%eax
  mov    %edi,0x10(%rsp)
  mov    0x270(%rsp,%rdx,4),%edi
  mov    %edi,0xc(%rsp)
  imul   %r10d,%eax
  mov    %eax,0x2c(%rsp)
  mov    %r15d,%eax
  imul   %ebx,%eax
  imul   %r10d,%ebx
  imul   %r10d,%eax
  mov    %ebx,0x14(%rsp)
  mov    %eax,0x24(%rsp)
  mov    %r11d,%eax
  imul   %r10d,%eax
  mov    %eax,0x1c(%rsp)
  cmp    $0x5,%r9d
  je     L859
  cmpl   $0x5,0x300(%rsp)
  je     L441
L2560:
  cmpl   $0x5,0x2f8(%rsp)
  je     L1909
L1844:
  cmpl   $0x5,0x2f0(%rsp)
  je     L1575
L2477:
  cmpl   $0x5,0x2e8(%rsp)
  je     L2168
L209:
  cmpl   $0x5,0x2e0(%rsp)
  je     L735
L236:
  mov    0x288(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L320
  add    $0x298,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L859:
  mov    0x60(%rsp),%eax
  test   %eax,%eax
  jle    L534
  test   %ebp,%ebp
  jle    L2037
  mov    0x68(%rsp),%eax
  test   %eax,%eax
  jle    L49
  mov    0x6c(%rsp),%eax
  test   %eax,%eax
  jle    L49
  mov    0x80(%rsp),%r15d
  test   %r15d,%r15d
  jle    L49
  test   %r10d,%r10d
  jle    L49
  movslq 0x28(%rsp),%rax
  cmpl   $0x1,0x58(%rsp)
  mov    %rax,0x88(%rsp)
  movslq 0x2c(%rsp),%rax
  mov    %rax,0x90(%rsp)
  jne    L2278
  movslq 0x8(%rsp),%r9
  movapd %xmm0,%xmm2
  movl   $0x0,0x118(%rsp)
  movl   $0x0,0x110(%rsp)
  unpcklpd %xmm2,%xmm2
  lea    0x0(,%r9,8),%rbx
  mov    %r9,%rax
  movq   $0x0,0x108(%rsp)
  mov    %rbx,0x120(%rsp)
  movslq 0xc(%rsp),%rbx
  shr    %eax
  sub    $0x1,%eax
  movl   $0x0,0x38(%rsp)
  mov    %rbx,0x30(%rsp)
  shl    $0x3,%rbx
  add    $0x1,%rax
  mov    %rbx,0x128(%rsp)
  shl    $0x4,%rax
  movslq 0x20(%rsp),%rbx
  movq   $0x0,0x100(%rsp)
  mov    %rax,%r11
  mov    %r9d,%eax
  mov    %rbx,0xb0(%rsp)
  movslq 0x24(%rsp),%rbx
  mov    %eax,%r10d
  shl    $0x3,%rax
  mov    %rax,0x138(%rsp)
  and    $0xfffffffe,%r10d
  mov    %rbx,0xb8(%rsp)
  movslq 0x18(%rsp),%rbx
  mov    %rbx,0xc8(%rsp)
  movslq 0x1c(%rsp),%rbx
  mov    %rbx,0xc0(%rsp)
  movslq 0x14(%rsp),%rbx
  mov    %rbx,0xd8(%rsp)
  movslq 0x10(%rsp),%rbx
  mov    %rbx,0xd0(%rsp)
  lea    0x8(%r14),%rbx
  mov    %rbx,0x130(%rsp)
L1256:
  mov    0x118(%rsp),%eax
  movl   $0x0,0x40(%rsp)
  mov    %r11,%r15
  mov    %r13,%rbx
  mov    %r9,0x140(%rsp)
  mov    %r14,%r11
  mov    %eax,0xf8(%rsp)
  mov    0x110(%rsp),%eax
  mov    %eax,0xf0(%rsp)
  mov    0x108(%rsp),%rax
  mov    %rax,0xe8(%rsp)
  mov    0x100(%rsp),%rax
  mov    %rax,0xe0(%rsp)
L1881:
  mov    0xe0(%rsp),%rax
  movl   $0x0,0x48(%rsp)
  mov    %rax,0xa8(%rsp)
  mov    0xe8(%rsp),%rax
  mov    %rax,0xa0(%rsp)
  mov    0xf8(%rsp),%eax
  mov    %eax,0x98(%rsp)
  mov    0xf0(%rsp),%eax
  mov    %eax,0x84(%rsp)
L2309:
  mov    0x98(%rsp),%eax
  mov    0xa8(%rsp),%r12
  xor    %r14d,%r14d
  mov    0xa0(%rsp),%rbp
  mov    %eax,0x78(%rsp)
  mov    0x84(%rsp),%eax
  mov    %eax,0x70(%rsp)
L948:
  lea    (%rbx,%rbp,8),%rax
  mov    0x78(%rsp),%esi
  mov    0x70(%rsp),%ecx
  xor    %r13d,%r13d
  mov    0x130(%rsp),%rdi
  mov    %rax,%r9
  lea    (%rdi,%r12,8),%r8
L2343:
  cmpl   $0x1,0x8(%rsp)
  lea    -0x8(%r8),%rdi
  je     L220
  cmp    %r8,%rax
  je     L220
  xor    %edx,%edx
L1645:
  movupd (%rdi,%rdx,1),%xmm1
  movupd (%rax,%rdx,1),%xmm4
  mulpd  %xmm2,%xmm1
  addpd  %xmm4,%xmm1
  movups %xmm1,(%rax,%rdx,1)
  add    $0x10,%rdx
  cmp    %r15,%rdx
  jne    L1645
  cmp    %r10d,0x8(%rsp)
  je     L65
  lea    (%rsi,%r10,1),%edx
  movslq %edx,%rdx
  lea    (%rbx,%rdx,8),%rdi
  lea    (%rcx,%r10,1),%edx
  movslq %edx,%rdx
  movsd  (%r11,%rdx,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdi),%xmm1
  movsd  %xmm1,(%rdi)
L65:
  mov    0x120(%rsp),%rdi
  add    $0x1,%r13d
  add    0x128(%rsp),%r8
  add    0xc(%rsp),%ecx
  add    0x8(%rsp),%esi
  add    %rdi,%rax
  add    %rdi,%r9
  cmp    %r13d,0x80(%rsp)
  jne    L2343
  mov    0x10(%rsp),%edi
  add    $0x1,%r14d
  add    %edi,0x70(%rsp)
  add    0xd8(%rsp),%rbp
  mov    0x14(%rsp),%edi
  add    0xd0(%rsp),%r12
  add    %edi,0x78(%rsp)
  cmp    %r14d,0x6c(%rsp)
  jne    L948
  mov    0x18(%rsp),%esi
  addl   $0x1,0x48(%rsp)
  add    %esi,0x84(%rsp)
  mov    0x48(%rsp),%eax
  mov    0x1c(%rsp),%esi
  add    %esi,0x98(%rsp)
  mov    0xc0(%rsp),%rsi
  add    %rsi,0xa0(%rsp)
  mov    0xc8(%rsp),%rsi
  add    %rsi,0xa8(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L2309
  mov    0xb0(%rsp),%rsi
  addl   $0x1,0x40(%rsp)
  add    %rsi,0xe0(%rsp)
  mov    0x40(%rsp),%eax
  mov    0xb8(%rsp),%rsi
  add    %rsi,0xe8(%rsp)
  mov    0x20(%rsp),%esi
  add    %esi,0xf0(%rsp)
  mov    0x24(%rsp),%esi
  add    %esi,0xf8(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L1881
  mov    0x88(%rsp),%rdi
  addl   $0x1,0x38(%rsp)
  mov    %r11,%r14
  mov    %rbx,%r13
  add    %rdi,0x100(%rsp)
  mov    0x140(%rsp),%r9
  mov    %r15,%r11
  mov    0x90(%rsp),%rdi
  mov    0x38(%rsp),%eax
  add    %rdi,0x108(%rsp)
  mov    0x28(%rsp),%edi
  add    %edi,0x110(%rsp)
  mov    0x2c(%rsp),%edi
  add    %edi,0x118(%rsp)
  cmp    %eax,0x60(%rsp)
  jne    L1256
L503:
  cmpl   $0x5,0x300(%rsp)
  je     L1039
  cmpl   $0x5,0x2f8(%rsp)
  je     L2359
L957:
  cmpl   $0x5,0x2f0(%rsp)
  jne    L2477
  jmp    L2031
L441:
  mov    0x60(%rsp),%r12d
  test   %r12d,%r12d
  jle    L2501
  mov    0x64(%rsp),%ebp
  test   %ebp,%ebp
  jle    L1736
L168:
  mov    0x68(%rsp),%ebx
  test   %ebx,%ebx
  jle    L1817
  mov    0x6c(%rsp),%r11d
  test   %r11d,%r11d
  jle    L1817
  mov    0x80(%rsp),%r10d
  test   %r10d,%r10d
  jle    L1817
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  jle    L1817
  movslq %eax,%r9
  movslq 0x20(%rsp),%rax
  movslq 0x28(%rsp),%rbx
  mov    %rax,0xb0(%rsp)
  movslq 0x24(%rsp),%rax
  mov    %rbx,0x88(%rsp)
  movslq 0x2c(%rsp),%rbx
  mov    %rax,0xb8(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rbx,0x90(%rsp)
  movslq 0xc(%rsp),%rbx
  mov    %rax,0xc8(%rsp)
  movslq 0x1c(%rsp),%rax
  mov    %rbx,0x30(%rsp)
  mov    %rax,0xc0(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0xd8(%rsp)
  movslq 0x10(%rsp),%rax
  mov    %rax,0xd0(%rsp)
L1039:
  cmpl   $0x1,0x58(%rsp)
  jne    L2394
  mov    0xc(%rsp),%eax
  movapd %xmm0,%xmm2
  movl   $0x0,0x198(%rsp)
  lea    0x0(,%r9,8),%r15
  movl   $0x0,0x190(%rsp)
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0x188(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1a0(%rsp)
  mov    0x8(%rsp),%eax
  movq   $0x0,0x180(%rsp)
  movq   $0x0,0x178(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1a8(%rsp)
  mov    0x30(%rsp),%rax
  movl   $0x0,0x100(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x38(%rsp)
L80:
  mov    0x198(%rsp),%eax
  movl   $0x0,0xf8(%rsp)
  mov    %eax,0x170(%rsp)
  mov    0x190(%rsp),%eax
  mov    %eax,0x168(%rsp)
  mov    0x188(%rsp),%eax
  mov    %eax,0x160(%rsp)
  mov    0x178(%rsp),%rax
  mov    %rax,0x158(%rsp)
  mov    0x180(%rsp),%rax
  mov    %rax,0x150(%rsp)
  mov    %r13,%rax
  mov    %r14,%r13
  mov    %r15,%r14
  mov    %rax,%r15
L1520:
  mov    0x170(%rsp),%eax
  movq   $0x0,0x128(%rsp)
  movl   $0x0,0xe8(%rsp)
  mov    %eax,0x148(%rsp)
  mov    0x168(%rsp),%eax
  mov    %eax,0x140(%rsp)
  mov    0x160(%rsp),%eax
  mov    %eax,0x138(%rsp)
  mov    0x158(%rsp),%rax
  mov    %rax,0x130(%rsp)
L2540:
  mov    0x128(%rsp),%rax
  add    0x150(%rsp),%rax
  movl   $0x0,0xf0(%rsp)
  mov    %rax,0x118(%rsp)
  mov    0x148(%rsp),%eax
  mov    %eax,0xa0(%rsp)
  mov    0x140(%rsp),%eax
  mov    %eax,0x120(%rsp)
  mov    0x130(%rsp),%rax
  mov    %rax,0x110(%rsp)
  mov    0x138(%rsp),%eax
  mov    %eax,0x108(%rsp)
L583:
  mov    0x108(%rsp),%eax
  movl   $0x0,0x78(%rsp)
  movl   $0x0,0x98(%rsp)
  mov    %eax,0x84(%rsp)
L1993:
  mov    0x78(%rsp),%edi
  mov    0x80(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x1b0(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x30(%rsp)
  cmp    %edi,%ebx
  jle    L1422
  movslq 0x98(%rsp),%rax
  add    0x118(%rsp),%rax
  movq   $0x0,0x50(%rsp)
  movq   $0x0,0x48(%rsp)
  lea    (%r15,%rax,8),%rbx
  mov    0x84(%rsp),%eax
  add    0x120(%rsp),%eax
  mov    %rbx,0xa8(%rsp)
  cltq
  add    0x110(%rsp),%rax
  mov    %rbx,0x70(%rsp)
  lea    0x0(%r13,%rax,8),%rax
  mov    %rax,0xe0(%rsp)
L403:
  mov    0x48(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x8(%rbx),%ebp
  add    $0x7,%eax
  cmp    %eax,%edi
  cmovle %edi,%ebp
  cmp    %ebx,%ebp
  jle    L2181
  mov    %ebp,%r12d
  mov    0xa8(%rsp),%r10
  mov    0x84(%rsp),%r8d
  sub    %ebx,%r12d
  mov    0x70(%rsp),%rcx
  mov    0xe0(%rsp),%rdi
  mov    %r12d,%eax
  mov    0x98(%rsp),%r9d
  sub    0x50(%rsp),%rdi
  shr    %eax
  add    0xa0(%rsp),%r9d
  lea    -0x1(%rax),%r11d
  mov    %r12d,%eax
  and    $0xfffffffe,%eax
  add    $0x1,%r11
  mov    %eax,%esi
  mov    %eax,0x40(%rsp)
  shl    $0x4,%r11
  add    %ebx,%esi
  mov    0x78(%rsp),%ebx
  nopw   0x0(%rax,%rax,1)
L924:
  lea    0x8(%rdi),%rax
  cmp    %rax,%rcx
  je     L1548
  cmp    $0x1,%r12d
  je     L1548
  xor    %eax,%eax
  nopl   0x0(%rax)
L1927:
  movupd (%rdi,%rax,1),%xmm1
  movupd (%rcx,%rax,1),%xmm4
  mulpd  %xmm2,%xmm1
  addpd  %xmm4,%xmm1
  movups %xmm1,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r11,%rax
  jne    L1927
  cmp    0x40(%rsp),%r12d
  je     L1021
  lea    (%r9,%rsi,1),%eax
  cltq
  lea    (%r15,%rax,8),%rdx
  lea    (%r8,%rsi,1),%eax
  cltq
  movsd  0x0(%r13,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L1021:
  add    $0x1,%ebx
  add    %r14,%rcx
  add    0x38(%rsp),%rdi
  add    0xc(%rsp),%r8d
  add    0x8(%rsp),%r9d
  add    %r14,%r10
  cmp    0x30(%rsp),%ebx
  jne    L924
L2181:
  addq   $0x8,0x48(%rsp)
  mov    0x48(%rsp),%rax
  subq   $0x40,0x50(%rsp)
  addq   $0x40,0x70(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L403
L1422:
  mov    0x1b0(%rsp),%eax
  mov    0x80(%rsp),%ebx
  mov    0x1a0(%rsp),%edi
  add    %edi,0x84(%rsp)
  mov    %eax,0x78(%rsp)
  mov    0x1a8(%rsp),%edi
  add    %edi,0x98(%rsp)
  cmp    %ebx,%eax
  jl     L1993
  mov    0x10(%rsp),%edi
  mov    0xd0(%rsp),%rsi
  addl   $0x1,0xf0(%rsp)
  mov    0xf0(%rsp),%eax
  add    %edi,0x108(%rsp)
  add    %rsi,0x110(%rsp)
  mov    0xd8(%rsp),%rsi
  sub    %edi,0x120(%rsp)
  mov    0x14(%rsp),%edi
  add    %rsi,0x118(%rsp)
  add    %edi,0xa0(%rsp)
  cmp    0x6c(%rsp),%eax
  jne    L583
  mov    0xc0(%rsp),%rdi
  addl   $0x1,0xe8(%rsp)
  add    %rdi,0x128(%rsp)
  mov    0xe8(%rsp),%eax
  mov    0xc8(%rsp),%rdi
  add    %rdi,0x130(%rsp)
  mov    0x18(%rsp),%edi
  add    %edi,0x138(%rsp)
  sub    %edi,0x140(%rsp)
  mov    0x1c(%rsp),%edi
  add    %edi,0x148(%rsp)
  cmp    0x68(%rsp),%eax
  jne    L2540
  mov    0xb8(%rsp),%rdi
  addl   $0x1,0xf8(%rsp)
  add    %rdi,0x150(%rsp)
  mov    0xf8(%rsp),%eax
  mov    0xb0(%rsp),%rdi
  add    %rdi,0x158(%rsp)
  mov    0x20(%rsp),%edi
  add    %edi,0x160(%rsp)
  sub    %edi,0x168(%rsp)
  mov    0x24(%rsp),%edi
  add    %edi,0x170(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L1520
  mov    %r15,%rax
  mov    0x88(%rsp),%rdi
  mov    %r14,%r15
  addl   $0x1,0x100(%rsp)
  add    %rdi,0x178(%rsp)
  mov    %r13,%r14
  mov    0x90(%rsp),%rdi
  mov    %rax,%r13
  add    %rdi,0x180(%rsp)
  mov    0x100(%rsp),%eax
  mov    0x28(%rsp),%edi
  add    %edi,0x188(%rsp)
  sub    %edi,0x190(%rsp)
  mov    0x2c(%rsp),%edi
  add    %edi,0x198(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L80
L713:
  cmpl   $0x5,0x2f8(%rsp)
  jne    L1844
L166:
  cmpl   $0x1,0x58(%rsp)
  jne    L1217
  mov    0x10(%rsp),%eax
  movapd %xmm0,%xmm2
  mov    0xd8(%rsp),%r15
  movl   $0x0,0x1a0(%rsp)
  movl   $0x0,0x198(%rsp)
  unpcklpd %xmm2,%xmm2
  shl    $0x3,%eax
  shl    $0x3,%r15
  movl   $0x0,0x190(%rsp)
  mov    %eax,0x1c0(%rsp)
  mov    0x14(%rsp),%eax
  movl   $0x0,0x188(%rsp)
  movq   $0x0,0x180(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1c8(%rsp)
  mov    0xd0(%rsp),%rax
  movq   $0x0,0x178(%rsp)
  movl   $0x0,0xd0(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x38(%rsp)
  movslq 0xc(%rsp),%rax
  mov    %rax,0x1e8(%rsp)
  movslq 0x8(%rsp),%rax
  mov    %rax,0x1f0(%rsp)
  mov    %r14,%rax
  mov    %r15,%r14
  mov    %rax,%r15
L2298:
  mov    0x180(%rsp),%rax
  movq   $0x0,0x150(%rsp)
  movl   $0x0,0xd8(%rsp)
  lea    0x0(,%rax,8),%rbx
  mov    %rax,0x140(%rsp)
  mov    %rbx,0x1d0(%rsp)
  mov    0x1a0(%rsp),%ebx
  mov    %ebx,0x170(%rsp)
  mov    0x198(%rsp),%ebx
  mov    %ebx,0x168(%rsp)
  mov    0x190(%rsp),%ebx
  mov    %ebx,0x160(%rsp)
  mov    0x188(%rsp),%ebx
  mov    %ebx,0x158(%rsp)
  mov    0x178(%rsp),%rbx
  mov    %rbx,0x148(%rsp)
L2513:
  mov    0x140(%rsp),%rbx
  movl   $0x0,0xe0(%rsp)
  mov    %rbx,%rax
  mov    %rbx,0xf0(%rsp)
  neg    %rax
  shl    $0x3,%rax
  mov    %rax,0x1d8(%rsp)
  mov    0x150(%rsp),%rax
  lea    0x0(,%rax,8),%rdx
  mov    0x148(%rsp),%rax
  mov    %rax,0x138(%rsp)
  mov    0x170(%rsp),%eax
  mov    %eax,0x130(%rsp)
  mov    0x168(%rsp),%eax
  mov    %eax,0x128(%rsp)
  mov    0x160(%rsp),%eax
  mov    %eax,0x120(%rsp)
  mov    0x158(%rsp),%eax
  mov    %eax,0x118(%rsp)
  mov    %r13,%rax
  sub    0x1d0(%rsp),%rax
  sub    %rdx,%rax
  mov    %rax,0x1f8(%rsp)
L650:
  mov    0xf0(%rsp),%rbx
  mov    0x1d8(%rsp),%rax
  movl   $0x0,0x78(%rsp)
  lea    (%rax,%rbx,8),%rax
  mov    0x120(%rsp),%ebx
  mov    %ebx,0x110(%rsp)
  mov    0x118(%rsp),%ebx
  mov    %ebx,0x108(%rsp)
  mov    0x1f8(%rsp),%rbx
  sub    %rax,%rbx
  mov    %rbx,0x200(%rsp)
L1626:
  mov    0x78(%rsp),%edi
  mov    0x6c(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x1e0(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x30(%rsp)
  cmp    %edi,%ebx
  jle    L2070
  mov    0x110(%rsp),%ebx
  mov    0x128(%rsp),%eax
  movl   $0x0,0xe8(%rsp)
  mov    0x130(%rsp),%edx
  mov    0x200(%rsp),%rcx
  add    %ebx,%eax
  mov    %ebx,0x98(%rsp)
  cltq
  lea    0x0(%r13,%rax,8),%rdi
  mov    %rdi,0x1a8(%rsp)
  mov    0x108(%rsp),%edi
  add    %edi,%edx
  mov    %edi,0x84(%rsp)
  movslq %edx,%rdx
  lea    (%r15,%rdx,8),%rsi
  mov    %rsi,0x1b8(%rsp)
  mov    0xf0(%rsp),%rsi
  add    %rsi,%rax
  mov    %rsi,0x100(%rsp)
  lea    (%rcx,%rax,8),%rax
  mov    %rax,0x1b0(%rsp)
  mov    0x138(%rsp),%rax
  mov    %rax,0xf8(%rsp)
L629:
  mov    0x100(%rsp),%rax
  mov    0x1a8(%rsp),%rbx
  movq   $0x0,0x50(%rsp)
  mov    0xf8(%rsp),%rdi
  movq   $0x0,0x48(%rsp)
  shl    $0x3,%rax
  add    %rax,%rbx
  add    0x1b0(%rsp),%rax
  mov    %rbx,0x70(%rsp)
  mov    0x1b8(%rsp),%rbx
  mov    %rax,0xa8(%rsp)
  lea    (%rbx,%rdi,8),%rbx
  mov    %rbx,0xa0(%rsp)
L2004:
  mov    0x48(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x8(%rbx),%ebp
  add    $0x7,%eax
  cmp    %eax,%edi
  cmovle %edi,%ebp
  cmp    %ebx,%ebp
  jle    L2557
  mov    %ebp,%r12d
  mov    0xa8(%rsp),%r10
  mov    0x98(%rsp),%r9d
  sub    %ebx,%r12d
  mov    0x84(%rsp),%r8d
  mov    0x70(%rsp),%rcx
  mov    %r12d,%eax
  mov    0xa0(%rsp),%rdi
  sub    0x50(%rsp),%rdi
  shr    %eax
  lea    -0x1(%rax),%r11d
  mov    %r12d,%eax
  and    $0xfffffffe,%eax
  add    $0x1,%r11
  mov    %eax,%esi
  mov    %eax,0x40(%rsp)
  shl    $0x4,%r11
  add    %ebx,%esi
  mov    0x78(%rsp),%ebx
  cs nopw 0x0(%rax,%rax,1)
L853:
  lea    0x8(%rdi),%rax
  cmp    %rax,%rcx
  je     L1247
  cmp    $0x1,%r12d
  je     L1247
  xor    %eax,%eax
  nopl   0x0(%rax)
L410:
  movupd (%rdi,%rax,1),%xmm1
  movupd (%rcx,%rax,1),%xmm5
  mulpd  %xmm2,%xmm1
  addpd  %xmm5,%xmm1
  movups %xmm1,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r11,%rax
  jne    L410
  cmp    0x40(%rsp),%r12d
  je     L2066
  lea    (%r9,%rsi,1),%eax
  cltq
  lea    0x0(%r13,%rax,8),%rdx
  lea    (%r8,%rsi,1),%eax
  cltq
  movsd  (%r15,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L2066:
  add    $0x1,%ebx
  add    %r14,%rcx
  add    0x38(%rsp),%rdi
  add    0x10(%rsp),%r8d
  add    0x14(%rsp),%r9d
  add    %r14,%r10
  cmp    0x30(%rsp),%ebx
  jne    L853
L2557:
  addq   $0x8,0x48(%rsp)
  mov    0x48(%rsp),%rax
  subq   $0x40,0x50(%rsp)
  addq   $0x40,0x70(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L2004
  mov    0x1e8(%rsp),%rdi
  addl   $0x1,0xe8(%rsp)
  add    %rdi,0xf8(%rsp)
  mov    0xe8(%rsp),%eax
  mov    0xc(%rsp),%edi
  add    %edi,0x84(%rsp)
  mov    0x8(%rsp),%edi
  add    %edi,0x98(%rsp)
  mov    0x1f0(%rsp),%rdi
  add    %rdi,0x100(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L629
L2070:
  mov    0x1e0(%rsp),%eax
  mov    0x1c0(%rsp),%edi
  add    %edi,0x108(%rsp)
  mov    0x1c8(%rsp),%edi
  mov    %eax,0x78(%rsp)
  add    %edi,0x110(%rsp)
  cmp    %eax,0x6c(%rsp)
  jg     L1626
  mov    0x18(%rsp),%edi
  mov    0x1c(%rsp),%esi
  addl   $0x1,0xe0(%rsp)
  mov    0xe0(%rsp),%eax
  add    %edi,0x118(%rsp)
  add    %esi,0x120(%rsp)
  sub    %esi,0x128(%rsp)
  mov    0xc0(%rsp),%rsi
  sub    %edi,0x130(%rsp)
  mov    0xc8(%rsp),%rdi
  add    %rsi,0xf0(%rsp)
  add    %rdi,0x138(%rsp)
  cmp    0x68(%rsp),%eax
  jne    L650
  mov    0xb8(%rsp),%rdi
  mov    0xb0(%rsp),%rsi
  addl   $0x1,0xd8(%rsp)
  mov    0xd8(%rsp),%eax
  add    %rdi,0x140(%rsp)
  add    %rsi,0x148(%rsp)
  mov    0x24(%rsp),%esi
  add    %rdi,0x150(%rsp)
  mov    0x20(%rsp),%edi
  add    %esi,0x160(%rsp)
  add    %edi,0x158(%rsp)
  sub    %esi,0x168(%rsp)
  sub    %edi,0x170(%rsp)
  cmp    0x64(%rsp),%eax
  jne    L2513
  mov    0x88(%rsp),%rdi
  mov    0x2c(%rsp),%esi
  addl   $0x1,0xd0(%rsp)
  mov    0xd0(%rsp),%eax
  add    %rdi,0x178(%rsp)
  mov    0x90(%rsp),%rdi
  add    %esi,0x190(%rsp)
  add    %rdi,0x180(%rsp)
  mov    0x28(%rsp),%edi
  sub    %esi,0x198(%rsp)
  add    %edi,0x188(%rsp)
  sub    %edi,0x1a0(%rsp)
  cmp    0x60(%rsp),%eax
  jl     L2298
  mov    %r15,%r14
L1076:
  cmpl   $0x5,0x2f0(%rsp)
  jne    L2477
L1090:
  mov    0x1c(%rsp),%eax
  shl    $0x3,%eax
  cmpl   $0x1,0x58(%rsp)
  jne    L663
  mov    %eax,0x180(%rsp)
  mov    0x18(%rsp),%eax
  movapd %xmm0,%xmm2
  mov    0xc0(%rsp),%r15
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0x160(%rsp)
  movl   $0x0,0x158(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x188(%rsp)
  shl    $0x3,%r15
  mov    0xc8(%rsp),%rax
  movq   $0x0,0x150(%rsp)
  movq   $0x0,0x148(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x38(%rsp)
  movslq 0x10(%rsp),%rax
  movl   $0x0,0xc0(%rsp)
  mov    %rax,0x1a0(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0x1c0(%rsp)
  mov    %r14,%rax
  mov    %r15,%r14
  mov    %rax,%r15
L2495:
  mov    0x160(%rsp),%edi
  mov    0x150(%rsp),%rbx
  movq   $0x0,0x140(%rsp)
  movl   $0x0,0xc8(%rsp)
  mov    %edi,0x138(%rsp)
  mov    0x158(%rsp),%edi
  lea    0x0(,%rbx,8),%rax
  mov    %rbx,0xf0(%rsp)
  mov    %r13,%rbx
  mov    %edi,0x130(%rsp)
  mov    0x148(%rsp),%rdi
  sub    %rax,%rbx
  mov    %rax,0x190(%rsp)
  mov    %rdi,0x128(%rsp)
  mov    %rbx,0x1a8(%rsp)
L865:
  mov    0x140(%rsp),%rax
  mov    0xf0(%rsp),%rdx
  movl   $0x0,0xe8(%rsp)
  mov    0x1a8(%rsp),%rbx
  movl   $0x0,0x78(%rsp)
  shl    $0x3,%rax
  neg    %rdx
  movl   $0x0,0xe0(%rsp)
  sub    %rax,%rbx
  lea    (%rax,%rdx,8),%rax
  add    0x190(%rsp),%rax
  mov    %rbx,0x1b0(%rsp)
  mov    %rax,0x1b8(%rsp)
L1212:
  mov    0x78(%rsp),%edi
  mov    0x68(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x198(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x30(%rsp)
  cmp    %edi,%ebx
  jle    L397
  movslq 0xe0(%rsp),%rax
  movslq 0xe8(%rsp),%rdx
  movq   $0x0,0x108(%rsp)
  mov    0x1b0(%rsp),%rdi
  movl   $0x0,0xd0(%rsp)
  lea    0x0(%r13,%rax,8),%rbx
  mov    %rbx,0x170(%rsp)
  lea    (%r15,%rdx,8),%rbx
  mov    %rbx,0x178(%rsp)
  mov    0xf0(%rsp),%rbx
  add    %rbx,%rax
  mov    %rbx,0x110(%rsp)
  movslq 0xc(%rsp),%rbx
  lea    (%rdi,%rax,8),%rax
  mov    0x138(%rsp),%edi
  sub    0x1b8(%rsp),%rax
  mov    %rbx,0x1d0(%rsp)
  movslq 0x8(%rsp),%rbx
  mov    %edi,0x120(%rsp)
  mov    0x130(%rsp),%edi
  mov    %rbx,0x1c8(%rsp)
  mov    %edi,0x118(%rsp)
  mov    %rax,0x168(%rsp)
L1910:
  mov    0x108(%rsp),%rax
  add    0x128(%rsp),%rax
  movl   $0x0,0xd8(%rsp)
  mov    %rax,0xf8(%rsp)
  mov    0x118(%rsp),%eax
  add    0xe8(%rsp),%eax
  mov    %eax,0x84(%rsp)
  mov    0x120(%rsp),%eax
  add    0xe0(%rsp),%eax
  mov    %eax,0x98(%rsp)
  mov    0x110(%rsp),%rax
  mov    %rax,0x100(%rsp)
L2202:
  mov    0x100(%rsp),%rax
  mov    0x170(%rsp),%rbx
  movq   $0x0,0x50(%rsp)
  mov    0xf8(%rsp),%rdi
  movq   $0x0,0x48(%rsp)
  shl    $0x3,%rax
  add    %rax,%rbx
  add    0x168(%rsp),%rax
  mov    %rbx,0x70(%rsp)
  mov    0x178(%rsp),%rbx
  mov    %rax,0xa8(%rsp)
  lea    (%rbx,%rdi,8),%rbx
  mov    %rbx,0xa0(%rsp)
L1739:
  mov    0x48(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x8(%rbx),%ebp
  add    $0x7,%eax
  cmp    %eax,%edi
  cmovle %edi,%ebp
  cmp    %ebx,%ebp
  jle    L1073
  mov    %ebp,%r12d
  mov    0xa8(%rsp),%r10
  mov    0x98(%rsp),%r9d
  sub    %ebx,%r12d
  mov    0x84(%rsp),%r8d
  mov    0x70(%rsp),%rcx
  mov    %r12d,%eax
  mov    0xa0(%rsp),%rdi
  sub    0x50(%rsp),%rdi
  shr    %eax
  lea    -0x1(%rax),%r11d
  mov    %r12d,%eax
  and    $0xfffffffe,%eax
  add    $0x1,%r11
  mov    %eax,%esi
  mov    %eax,0x40(%rsp)
  shl    $0x4,%r11
  add    %ebx,%esi
  mov    0x78(%rsp),%ebx
  nopw   0x0(%rax,%rax,1)
L1721:
  lea    0x8(%rdi),%rax
  cmp    %rax,%rcx
  je     L1411
  cmp    $0x1,%r12d
  je     L1411
  xor    %eax,%eax
  nopl   0x0(%rax)
L1771:
  movupd (%rdi,%rax,1),%xmm1
  movupd (%rcx,%rax,1),%xmm6
  mulpd  %xmm2,%xmm1
  addpd  %xmm6,%xmm1
  movups %xmm1,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r11,%rax
  jne    L1771
  cmp    0x40(%rsp),%r12d
  je     L2220
  lea    (%r9,%rsi,1),%eax
  cltq
  lea    0x0(%r13,%rax,8),%rdx
  lea    (%r8,%rsi,1),%eax
  cltq
  movsd  (%r15,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L2220:
  add    $0x1,%ebx
  add    %r14,%rcx
  add    0x38(%rsp),%rdi
  add    0x18(%rsp),%r8d
  add    0x1c(%rsp),%r9d
  add    %r14,%r10
  cmp    0x30(%rsp),%ebx
  jne    L1721
L1073:
  addq   $0x8,0x48(%rsp)
  mov    0x48(%rsp),%rax
  subq   $0x40,0x50(%rsp)
  addq   $0x40,0x70(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L1739
  mov    0x1d0(%rsp),%rdi
  addl   $0x1,0xd8(%rsp)
  add    %rdi,0xf8(%rsp)
  mov    0xd8(%rsp),%eax
  mov    0xc(%rsp),%edi
  add    %edi,0x84(%rsp)
  mov    0x8(%rsp),%edi
  add    %edi,0x98(%rsp)
  mov    0x1c8(%rsp),%rdi
  add    %rdi,0x100(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L2202
  mov    0x1a0(%rsp),%rdi
  addl   $0x1,0xd0(%rsp)
  add    %rdi,0x108(%rsp)
  mov    0xd0(%rsp),%eax
  mov    0x1c0(%rsp),%rdi
  add    %rdi,0x110(%rsp)
  mov    0x10(%rsp),%edi
  add    %edi,0x118(%rsp)
  mov    0x14(%rsp),%edi
  add    %edi,0x120(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L1910
L397:
  mov    0x198(%rsp),%eax
  mov    0x180(%rsp),%edi
  add    %edi,0xe0(%rsp)
  mov    0x188(%rsp),%edi
  mov    %eax,0x78(%rsp)
  add    %edi,0xe8(%rsp)
  cmp    %eax,0x68(%rsp)
  jg     L1212
  mov    0xb8(%rsp),%rdi
  mov    0xb0(%rsp),%rsi
  addl   $0x1,0xc8(%rsp)
  mov    0xc8(%rsp),%eax
  add    %rsi,0x128(%rsp)
  mov    0x20(%rsp),%esi
  add    %rdi,0xf0(%rsp)
  add    %esi,0x130(%rsp)
  mov    0x24(%rsp),%esi
  add    %rdi,0x140(%rsp)
  add    %esi,0x138(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L865
  mov    0x88(%rsp),%rdi
  addl   $0x1,0xc0(%rsp)
  add    %rdi,0x148(%rsp)
  mov    0xc0(%rsp),%eax
  mov    0x90(%rsp),%rdi
  add    %rdi,0x150(%rsp)
  mov    0x28(%rsp),%edi
  add    %edi,0x158(%rsp)
  mov    0x2c(%rsp),%edi
  add    %edi,0x160(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L2495
  mov    %r15,%r14
L213:
  cmpl   $0x5,0x2e8(%rsp)
  je     L2055
  cmpl   $0x5,0x2e0(%rsp)
  jne    L236
L735:
  mov    0x60(%rsp),%r8d
  test   %r8d,%r8d
  jle    L236
  mov    0x64(%rsp),%edi
  test   %edi,%edi
  jle    L236
  mov    0x68(%rsp),%esi
  test   %esi,%esi
  jle    L236
  mov    0x6c(%rsp),%ecx
  test   %ecx,%ecx
  jle    L236
  mov    0x80(%rsp),%edx
  test   %edx,%edx
  jle    L236
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  jle    L236
  movslq 0x28(%rsp),%rax
  mov    %rax,0x88(%rsp)
  movslq 0x2c(%rsp),%rax
  mov    %rax,0x90(%rsp)
  jmp    L2431
L2168:
  mov    0x60(%rsp),%r12d
  test   %r12d,%r12d
  jle    L236
  mov    0x64(%rsp),%ebp
  test   %ebp,%ebp
  jle    L236
L2299:
  mov    0x68(%rsp),%ebx
  test   %ebx,%ebx
  jle    L236
  mov    0x6c(%rsp),%r11d
  test   %r11d,%r11d
  jle    L236
  mov    0x80(%rsp),%r10d
  test   %r10d,%r10d
  jle    L236
  mov    0x8(%rsp),%r9d
  test   %r9d,%r9d
  jle    L236
  movslq 0x28(%rsp),%rax
  mov    %rax,0x88(%rsp)
  movslq 0x2c(%rsp),%rax
  mov    %rax,0x90(%rsp)
  movslq 0x20(%rsp),%rax
  mov    %rax,0xb0(%rsp)
  movslq 0x24(%rsp),%rax
  mov    %rax,0xb8(%rsp)
L2055:
  mov    0x24(%rsp),%eax
  shl    $0x3,%eax
  cmpl   $0x1,0x58(%rsp)
  jne    L1815
  mov    %eax,0x188(%rsp)
  mov    0x20(%rsp),%eax
  movapd %xmm0,%xmm2
  mov    0xb8(%rsp),%r15
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0x160(%rsp)
  movl   $0x0,0x158(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x190(%rsp)
  movslq 0x1c(%rsp),%rax
  shl    $0x3,%r15
  movq   $0x0,0xe8(%rsp)
  mov    %rax,0xc0(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x180(%rsp)
  mov    0xb0(%rsp),%rax
  movq   $0x0,0x150(%rsp)
  movl   $0x0,0xb0(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x30(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rax,0x1a8(%rsp)
  movslq 0xc(%rsp),%rax
  mov    %rax,0x1b0(%rsp)
  mov    %r14,%rax
  mov    %r15,%r14
  mov    %rax,%r15
L1597:
  mov    0xe8(%rsp),%rax
  movl   $0x0,0x78(%rsp)
  movl   $0x0,0xe0(%rsp)
  movl   $0x0,0xd8(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x198(%rsp)
  movslq 0x8(%rsp),%rax
  mov    %rax,0x1b8(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0x1c0(%rsp)
L887:
  mov    0x78(%rsp),%edi
  mov    0x64(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x1a0(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x38(%rsp)
  cmp    %edi,%ebx
  jle    L1094
  movslq 0xd8(%rsp),%rax
  mov    0xe8(%rsp),%rbx
  movq   $0x0,0x138(%rsp)
  movl   $0x0,0xb8(%rsp)
  lea    (%rax,%rbx,1),%rdx
  lea    0x0(%r13,%rax,8),%rax
  mov    %rbx,0x120(%rsp)
  mov    %rax,0x168(%rsp)
  movslq 0xe0(%rsp),%rax
  lea    0x0(%r13,%rdx,8),%rdi
  mov    %rdi,0x130(%rsp)
  lea    (%r15,%rax,8),%rax
  mov    %rax,0x170(%rsp)
  mov    0x160(%rsp),%eax
  mov    %eax,0x148(%rsp)
  mov    0x158(%rsp),%eax
  mov    %eax,0x140(%rsp)
  mov    0x150(%rsp),%rax
  mov    %rax,0x128(%rsp)
  movslq 0x10(%rsp),%rax
  mov    %rax,0x1c8(%rsp)
L1670:
  mov    0x130(%rsp),%rax
  sub    0x198(%rsp),%rax
  movq   $0x0,0x100(%rsp)
  sub    0x138(%rsp),%rax
  movl   $0x0,0xc8(%rsp)
  mov    %rax,0x178(%rsp)
  mov    0x148(%rsp),%eax
  mov    %eax,0x118(%rsp)
  mov    0x140(%rsp),%eax
  mov    %eax,0x110(%rsp)
  mov    0x120(%rsp),%rax
  mov    %rax,0x108(%rsp)
L2538:
  mov    0x100(%rsp),%rax
  add    0x128(%rsp),%rax
  movl   $0x0,0xd0(%rsp)
  mov    %rax,0xf0(%rsp)
  mov    0x110(%rsp),%eax
  add    0xe0(%rsp),%eax
  mov    %eax,0x98(%rsp)
  mov    0x118(%rsp),%eax
  add    0xd8(%rsp),%eax
  mov    %eax,0x84(%rsp)
  mov    0x108(%rsp),%rax
  mov    %rax,0xf8(%rsp)
L1543:
  mov    0xf8(%rsp),%rax
  mov    0x168(%rsp),%rbx
  movq   $0x0,0x50(%rsp)
  mov    0xf0(%rsp),%rdi
  movq   $0x0,0x48(%rsp)
  shl    $0x3,%rax
  add    %rax,%rbx
  add    0x178(%rsp),%rax
  mov    %rbx,0x70(%rsp)
  mov    0x170(%rsp),%rbx
  mov    %rax,0xa0(%rsp)
  lea    (%rbx,%rdi,8),%rbx
  mov    %rbx,0xa8(%rsp)
L749:
  mov    0x48(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x8(%rbx),%ebp
  add    $0x7,%eax
  cmp    %eax,%edi
  cmovle %edi,%ebp
  cmp    %ebx,%ebp
  jle    L1048
  mov    %ebp,%r12d
  mov    0xa0(%rsp),%r10
  mov    0x84(%rsp),%r9d
  sub    %ebx,%r12d
  mov    0x98(%rsp),%r8d
  mov    0x70(%rsp),%rcx
  mov    %r12d,%eax
  mov    0xa8(%rsp),%rdi
  sub    0x50(%rsp),%rdi
  shr    %eax
  lea    -0x1(%rax),%r11d
  mov    %r12d,%eax
  and    $0xfffffffe,%eax
  add    $0x1,%r11
  mov    %eax,%esi
  mov    %eax,0x40(%rsp)
  shl    $0x4,%r11
  add    %ebx,%esi
  mov    0x78(%rsp),%ebx
  xchg   %ax,%ax
L1878:
  lea    0x8(%rdi),%rax
  cmp    %rax,%rcx
  je     L2215
  cmp    $0x1,%r12d
  je     L2215
  xor    %eax,%eax
  nopl   0x0(%rax)
L1572:
  movupd (%rdi,%rax,1),%xmm1
  movupd (%rcx,%rax,1),%xmm7
  mulpd  %xmm2,%xmm1
  addpd  %xmm7,%xmm1
  movups %xmm1,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r11
  jne    L1572
  cmp    0x40(%rsp),%r12d
  je     L1232
  lea    (%r9,%rsi,1),%eax
  cltq
  lea    0x0(%r13,%rax,8),%rdx
  lea    (%r8,%rsi,1),%eax
  cltq
  movsd  (%r15,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L1232:
  add    $0x1,%ebx
  add    %r14,%rcx
  add    0x30(%rsp),%rdi
  add    0x20(%rsp),%r8d
  add    0x24(%rsp),%r9d
  add    %r14,%r10
  cmp    0x38(%rsp),%ebx
  jne    L1878
L1048:
  addq   $0x8,0x48(%rsp)
  mov    0x48(%rsp),%rax
  subq   $0x40,0x50(%rsp)
  addq   $0x40,0x70(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L749
  mov    0x1b0(%rsp),%rdi
  addl   $0x1,0xd0(%rsp)
  add    %rdi,0xf0(%rsp)
  mov    0xd0(%rsp),%eax
  mov    0xc(%rsp),%edi
  add    %edi,0x98(%rsp)
  mov    0x8(%rsp),%edi
  add    %edi,0x84(%rsp)
  mov    0x1b8(%rsp),%rdi
  add    %rdi,0xf8(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L1543
  mov    0x1c8(%rsp),%rdi
  addl   $0x1,0xc8(%rsp)
  add    %rdi,0x100(%rsp)
  mov    0xc8(%rsp),%eax
  mov    0x1c0(%rsp),%rdi
  add    %rdi,0x108(%rsp)
  mov    0x10(%rsp),%edi
  add    %edi,0x110(%rsp)
  mov    0x14(%rsp),%edi
  add    %edi,0x118(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L2538
  mov    0xc0(%rsp),%rdi
  addl   $0x1,0xb8(%rsp)
  add    %rdi,0x120(%rsp)
  mov    0xb8(%rsp),%eax
  mov    0x1a8(%rsp),%rdi
  add    %rdi,0x128(%rsp)
  mov    0x180(%rsp),%rdi
  add    %rdi,0x130(%rsp)
  add    %rdi,0x138(%rsp)
  mov    0x18(%rsp),%edi
  add    %edi,0x140(%rsp)
  mov    0x1c(%rsp),%edi
  add    %edi,0x148(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L1670
L1094:
  mov    0x1a0(%rsp),%eax
  mov    0x188(%rsp),%edi
  add    %edi,0xd8(%rsp)
  mov    0x190(%rsp),%edi
  mov    %eax,0x78(%rsp)
  add    %edi,0xe0(%rsp)
  cmp    %eax,0x64(%rsp)
  jg     L887
  mov    0x88(%rsp),%rdi
  addl   $0x1,0xb0(%rsp)
  add    %rdi,0x150(%rsp)
  mov    0xb0(%rsp),%eax
  mov    0x90(%rsp),%rdi
  add    %rdi,0xe8(%rsp)
  mov    0x28(%rsp),%edi
  add    %edi,0x158(%rsp)
  mov    0x2c(%rsp),%edi
  add    %edi,0x160(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L1597
  mov    %r15,%r14
L1948:
  cmpl   $0x5,0x2e0(%rsp)
  jne    L236
L2431:
  cmpl   $0x1,0x58(%rsp)
  jne    L880
  mov    0x28(%rsp),%eax
  movapd %xmm0,%xmm2
  mov    0x90(%rsp),%r15
  movl   $0x0,0xc0(%rsp)
  movl   $0x0,0xb8(%rsp)
  unpcklpd %xmm2,%xmm2
  shl    $0x3,%eax
  movl   $0x0,0x70(%rsp)
  shl    $0x3,%r15
  mov    %eax,0x150(%rsp)
  mov    0x2c(%rsp),%eax
  shl    $0x3,%eax
  mov    %eax,0x158(%rsp)
  mov    0x88(%rsp),%rax
  shl    $0x3,%rax
  mov    %rax,0x38(%rsp)
  movslq 0x20(%rsp),%rax
  mov    %rax,0x170(%rsp)
  movslq 0x24(%rsp),%rax
  mov    %rax,0x178(%rsp)
  movslq 0xc(%rsp),%rax
  mov    %rax,0x180(%rsp)
  mov    %r14,%rax
  mov    %r15,%r14
  mov    %rax,%r15
L2274:
  mov    0x70(%rsp),%edi
  mov    0x60(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x168(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x30(%rsp)
  cmp    %edi,%ebx
  jle    L563
  movslq 0xc0(%rsp),%rax
  movl   $0x0,0x110(%rsp)
  movl   $0x0,0x108(%rsp)
  movl   $0x0,0xa0(%rsp)
  lea    0x0(%r13,%rax,8),%rax
  mov    %rax,0x160(%rsp)
  movslq 0xb8(%rsp),%rax
  movq   $0x0,0x100(%rsp)
  movq   $0x0,0xf8(%rsp)
  lea    (%r15,%rax,8),%rax
  mov    %rax,0x140(%rsp)
  movslq 0x8(%rsp),%rax
  mov    %rax,0x1a8(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rax,0x1a0(%rsp)
  movslq 0x1c(%rsp),%rax
  mov    %rax,0x198(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0x190(%rsp)
  movslq 0x10(%rsp),%rax
  mov    %rax,0x188(%rsp)
L2251:
  mov    0x110(%rsp),%eax
  movl   $0x0,0xa8(%rsp)
  mov    %eax,0xf0(%rsp)
  mov    0x108(%rsp),%eax
  mov    %eax,0xe8(%rsp)
  mov    0xf8(%rsp),%rax
  mov    %rax,0xe0(%rsp)
  mov    0x100(%rsp),%rax
  mov    %rax,0xd8(%rsp)
L1215:
  mov    0xf0(%rsp),%eax
  movq   $0x0,0x120(%rsp)
  movq   $0x0,0xc8(%rsp)
  mov    %eax,0x138(%rsp)
  mov    0xe8(%rsp),%eax
  movl   $0x0,0xb0(%rsp)
  mov    %eax,0x130(%rsp)
  mov    0xd8(%rsp),%rax
  mov    %rax,0x128(%rsp)
L997:
  mov    0xc8(%rsp),%rax
  mov    0xe0(%rsp),%rbx
  movl   $0x0,0x98(%rsp)
  add    %rax,%rbx
  sub    0x120(%rsp),%rax
  shl    $0x3,%rax
  mov    %rbx,0xd0(%rsp)
  mov    0xb8(%rsp),%ebx
  mov    %rax,0x148(%rsp)
  add    0x130(%rsp),%ebx
  mov    0x128(%rsp),%rax
  mov    %ebx,0x84(%rsp)
  mov    0xc0(%rsp),%ebx
  add    0x138(%rsp),%ebx
  mov    %ebx,0x78(%rsp)
  mov    %rax,0x118(%rsp)
L257:
  mov    0x118(%rsp),%rbx
  mov    0x160(%rsp),%rax
  movq   $0x0,0x48(%rsp)
  mov    0xd0(%rsp),%rdi
  lea    (%rax,%rbx,8),%rax
  mov    0x140(%rsp),%rbx
  mov    %rax,0x90(%rsp)
  mov    %rax,0x58(%rsp)
  mov    0x148(%rsp),%rax
  lea    (%rbx,%rdi,8),%rbx
  mov    %rbx,0x88(%rsp)
  mov    %rax,0x50(%rsp)
L1400:
  mov    0x48(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x8(%rbx),%ebp
  add    $0x7,%eax
  cmp    %eax,%edi
  cmovle %edi,%ebp
  cmp    %ebx,%ebp
  jle    L2382
  mov    %ebp,%r12d
  mov    0x90(%rsp),%r10
  mov    0x78(%rsp),%r9d
  sub    %ebx,%r12d
  mov    0x84(%rsp),%r8d
  mov    0x58(%rsp),%rcx
  mov    %r12d,%eax
  mov    0x88(%rsp),%rdi
  sub    0x50(%rsp),%rdi
  shr    %eax
  lea    -0x1(%rax),%r11d
  mov    %r12d,%eax
  and    $0xfffffffe,%eax
  add    $0x1,%r11
  mov    %eax,%esi
  mov    %eax,0x40(%rsp)
  shl    $0x4,%r11
  add    %ebx,%esi
  mov    0x70(%rsp),%ebx
L599:
  lea    0x8(%rdi),%rax
  cmp    %rax,%rcx
  je     L922
  cmp    $0x1,%r12d
  je     L922
  xor    %eax,%eax
  nopl   0x0(%rax)
L83:
  movupd (%rdi,%rax,1),%xmm1
  movupd (%rcx,%rax,1),%xmm3
  mulpd  %xmm2,%xmm1
  addpd  %xmm3,%xmm1
  movups %xmm1,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r11
  jne    L83
  cmp    %r12d,0x40(%rsp)
  je     L2445
  lea    (%r9,%rsi,1),%eax
  cltq
  lea    0x0(%r13,%rax,8),%rdx
  lea    (%r8,%rsi,1),%eax
  cltq
  movsd  (%r15,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L2445:
  add    $0x1,%ebx
  add    0x38(%rsp),%rdi
  add    %r14,%rcx
  add    0x28(%rsp),%r8d
  add    0x2c(%rsp),%r9d
  add    %r14,%r10
  cmp    0x30(%rsp),%ebx
  jne    L599
L2382:
  addq   $0x8,0x48(%rsp)
  mov    0x48(%rsp),%rax
  subq   $0x40,0x50(%rsp)
  addq   $0x40,0x58(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L1400
  mov    0x180(%rsp),%rdi
  addl   $0x1,0x98(%rsp)
  add    %rdi,0xd0(%rsp)
  mov    0x98(%rsp),%eax
  mov    0xc(%rsp),%edi
  add    %edi,0x84(%rsp)
  mov    0x8(%rsp),%edi
  add    %edi,0x78(%rsp)
  mov    0x1a8(%rsp),%rdi
  add    %rdi,0x118(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L257
  mov    0x188(%rsp),%rdi
  addl   $0x1,0xb0(%rsp)
  add    %rdi,0xc8(%rsp)
  mov    0xb0(%rsp),%eax
  add    %rdi,0x120(%rsp)
  mov    0x190(%rsp),%rdi
  add    %rdi,0x128(%rsp)
  mov    0x10(%rsp),%edi
  add    %edi,0x130(%rsp)
  mov    0x14(%rsp),%edi
  add    %edi,0x138(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L997
  mov    0x198(%rsp),%rdi
  addl   $0x1,0xa8(%rsp)
  add    %rdi,0xd8(%rsp)
  mov    0xa8(%rsp),%eax
  mov    0x1a0(%rsp),%rdi
  add    %rdi,0xe0(%rsp)
  mov    0x18(%rsp),%edi
  add    %edi,0xe8(%rsp)
  mov    0x1c(%rsp),%edi
  add    %edi,0xf0(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L1215
  mov    0x170(%rsp),%rdi
  addl   $0x1,0xa0(%rsp)
  add    %rdi,0xf8(%rsp)
  mov    0xa0(%rsp),%eax
  mov    0x178(%rsp),%rdi
  add    %rdi,0x100(%rsp)
  mov    0x20(%rsp),%edi
  add    %edi,0x108(%rsp)
  mov    0x24(%rsp),%edi
  add    %edi,0x110(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L2251
L563:
  mov    0x168(%rsp),%eax
  mov    0x150(%rsp),%edi
  add    %edi,0xb8(%rsp)
  mov    0x158(%rsp),%edi
  mov    %eax,0x70(%rsp)
  add    %edi,0xc0(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L2274
  jmp    L236
  cs nopw 0x0(%rax,%rax,1)
L2215:
  mov    0x50(%rsp),%rdx
  mov    0x48(%rsp),%rax
  add    %rdi,%rdx
  nopl   (%rax)
L1216:
  movsd  (%rdx,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%r10,%rax,8),%xmm1
  movsd  %xmm1,(%r10,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ebp
  jg     L1216
  jmp    L1232
  nopw   0x0(%rax,%rax,1)
L922:
  mov    0x50(%rsp),%rdx
  mov    0x48(%rsp),%rax
  add    %rdi,%rdx
  nopl   (%rax)
L1703:
  movsd  (%rdx,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%r10,%rax,8),%xmm1
  movsd  %xmm1,(%r10,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ebp
  jg     L1703
  jmp    L2445
  nopw   0x0(%rax,%rax,1)
L1411:
  mov    0x50(%rsp),%rdx
  mov    0x48(%rsp),%rax
  add    %rdi,%rdx
  nopl   (%rax)
L1636:
  movsd  (%rdx,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%r10,%rax,8),%xmm1
  movsd  %xmm1,(%r10,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ebp
  jg     L1636
  jmp    L2220
  nopw   0x0(%rax,%rax,1)
L1247:
  mov    0x50(%rsp),%rdx
  mov    0x48(%rsp),%rax
  add    %rdi,%rdx
  nopl   (%rax)
L972:
  movsd  (%rdx,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%r10,%rax,8),%xmm1
  movsd  %xmm1,(%r10,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ebp
  jg     L972
  jmp    L2066
  nopw   0x0(%rax,%rax,1)
L1548:
  mov    0x50(%rsp),%rdx
  mov    0x48(%rsp),%rax
  add    %rdi,%rdx
  nopl   (%rax)
L774:
  movsd  (%rdx,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%r10,%rax,8),%xmm1
  movsd  %xmm1,(%r10,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ebp
  jg     L774
  jmp    L1021
L1817:
  cmpl   $0x5,0x2f8(%rsp)
  jne    L1844
L2359:
  mov    0x68(%rsp),%edi
  test   %edi,%edi
  jle    L812
  mov    0x6c(%rsp),%esi
  test   %esi,%esi
  jle    L812
  mov    0x80(%rsp),%ecx
  test   %ecx,%ecx
  jle    L812
  mov    0x8(%rsp),%edx
  test   %edx,%edx
  jle    L812
  movslq 0x28(%rsp),%rax
  mov    %rax,0x88(%rsp)
  movslq 0x2c(%rsp),%rax
  mov    %rax,0x90(%rsp)
  movslq 0x20(%rsp),%rax
  mov    %rax,0xb0(%rsp)
  movslq 0x24(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rax,0xc8(%rsp)
  movslq 0x1c(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0xd8(%rsp)
  movslq 0x10(%rsp),%rax
  mov    %rax,0xd0(%rsp)
  jmp    L166
L1575:
  mov    0x60(%rsp),%eax
  test   %eax,%eax
  jle    L236
L2031:
  mov    0x64(%rsp),%eax
  test   %eax,%eax
  jle    L1124
  mov    0x68(%rsp),%eax
  test   %eax,%eax
  jle    L1746
  mov    0x6c(%rsp),%eax
  test   %eax,%eax
  jle    L1746
  mov    0x80(%rsp),%eax
  test   %eax,%eax
  jle    L1746
  mov    0x8(%rsp),%r15d
  test   %r15d,%r15d
  jle    L1746
  movslq 0x28(%rsp),%rax
  mov    %rax,0x88(%rsp)
  movslq 0x2c(%rsp),%rax
  mov    %rax,0x90(%rsp)
  movslq 0x20(%rsp),%rax
  mov    %rax,0xb0(%rsp)
  movslq 0x24(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rax,0xc8(%rsp)
  movslq 0x1c(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  jmp    L1090
L812:
  cmpl   $0x5,0x2f0(%rsp)
  jne    L2477
L1746:
  cmpl   $0x5,0x2e8(%rsp)
  jne    L209
  jmp    L2299
L1909:
  mov    0x60(%rsp),%r9d
  test   %r9d,%r9d
  jle    L1037
L1621:
  mov    0x64(%rsp),%r8d
  test   %r8d,%r8d
  jg     L2359
L319:
  cmpl   $0x5,0x2f0(%rsp)
  jne    L2477
L1124:
  cmpl   $0x5,0x2e8(%rsp)
  jne    L209
  jmp    L236
  xchg   %ax,%ax
L220:
  mov    0x138(%rsp),%rdx
  add    %r9,%rdx
  mov    %rdx,0x50(%rsp)
  mov    %r9,%rdx
L1016:
  movsd  (%rdi),%xmm1
  add    $0x8,%rdx
  add    $0x8,%rdi
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rdx),%xmm1
  movsd  %xmm1,-0x8(%rdx)
  cmp    0x50(%rsp),%rdx
  jne    L1016
  jmp    L65
L49:
  cmpl   $0x5,0x300(%rsp)
  je     L168
L832:
  cmpl   $0x5,0x2f8(%rsp)
  jne    L957
  jmp    L1621
L534:
  cmpl   $0x5,0x300(%rsp)
  jne    L2560
L2501:
  cmpl   $0x5,0x2f8(%rsp)
  jne    L1844
L1037:
  cmpl   $0x5,0x2f0(%rsp)
  jne    L2477
  jmp    L236
L2278:
  movslq 0x58(%rsp),%rdx
  movslq %edi,%rax
  movslq %r10d,%r9
  xor    %ecx,%ecx
  mov    %rax,0x30(%rsp)
  shl    $0x3,%rax
  mov    %rcx,%rsi
  lea    0x0(,%r9,8),%rdi
  lea    0x0(,%rdx,8),%r8
  mov    %rdx,%r11
  mov    %rax,0x150(%rsp)
  lea    -0x1(%r9),%rax
  imul   %r8,%rax
  test   %edx,%edx
  movl   $0x0,0x120(%rsp)
  movapd %xmm0,%xmm2
  movl   $0x0,0x118(%rsp)
  unpcklpd %xmm2,%xmm2
  movq   $0x0,0x110(%rsp)
  cmovns %rax,%rsi
  cmovs  %rax,%rcx
  mov    %r10d,%eax
  shl    $0x4,%rdx
  shr    %eax
  mov    %rdx,0x148(%rsp)
  lea    -0x1(%rax),%edx
  mov    %r10d,%eax
  mov    %rsi,0x128(%rsp)
  and    $0xfffffffe,%eax
  mov    %rcx,0x130(%rsp)
  imul   %eax,%r11d
  mov    %eax,0x140(%rsp)
  mov    %r10d,%eax
  lea    -0x1(%rax),%ebx
  shl    $0x3,%rax
  movq   $0x0,0x108(%rsp)
  mov    %ebx,0x158(%rsp)
  movslq 0x20(%rsp),%rbx
  mov    %rax,0x168(%rsp)
  lea    0x1(%rdx),%rax
  mov    %rbx,0xb0(%rsp)
  movslq 0x24(%rsp),%rbx
  shl    $0x4,%rax
  mov    %r11d,0x138(%rsp)
  mov    %rbx,0xb8(%rsp)
  movslq 0x18(%rsp),%rbx
  movl   $0x0,0x38(%rsp)
  mov    %rbx,0xc8(%rsp)
  movslq 0x1c(%rsp),%rbx
  mov    %rax,0x170(%rsp)
  mov    %rbx,0xc0(%rsp)
  movslq 0x14(%rsp),%rbx
  mov    %rbx,0xd8(%rsp)
  movslq 0x10(%rsp),%rbx
  mov    %rbx,0xd0(%rsp)
  lea    -0x8(%rdi),%rbx
  mov    %rbx,0x160(%rsp)
L1008:
  mov    0x120(%rsp),%eax
  movl   $0x0,0x40(%rsp)
  mov    %r14,%r10
  mov    %r13,%rbp
  mov    %r9,0x178(%rsp)
  mov    %rdi,%r9
  mov    %eax,0x100(%rsp)
  mov    0x118(%rsp),%eax
  mov    %eax,0xf8(%rsp)
  mov    0x110(%rsp),%rax
  mov    %rax,0xf0(%rsp)
  mov    0x108(%rsp),%rax
  mov    %rax,0xe8(%rsp)
L1743:
  mov    0xf0(%rsp),%rax
  movl   $0x0,0x48(%rsp)
  mov    %rax,0xe0(%rsp)
  mov    0xe8(%rsp),%rax
  mov    %rax,0xa8(%rsp)
  mov    0x100(%rsp),%eax
  mov    %eax,0xa0(%rsp)
  mov    0xf8(%rsp),%eax
  mov    %eax,0x98(%rsp)
L1638:
  mov    0xa0(%rsp),%eax
  movl   $0x0,0x50(%rsp)
  mov    0xe0(%rsp),%r11
  mov    0xa8(%rsp),%rbx
  mov    %eax,0x84(%rsp)
  mov    0x98(%rsp),%eax
  mov    %eax,0x78(%rsp)
L964:
  movl   $0x0,0x70(%rsp)
  lea    0x0(,%rbx,8),%rdx
  lea    0x0(%rbp,%r11,8),%rax
  mov    0x84(%rsp),%r13d
  mov    0x78(%rsp),%r12d
  mov    %rax,%rsi
  lea    (%r10,%rdx,1),%r14
L2170:
  mov    0x130(%rsp),%rdi
  lea    (%rdi,%rdx,1),%rcx
  mov    0x160(%rsp),%rdi
  add    %r10,%rcx
  add    %rax,%rdi
  cmp    %rdi,%rcx
  mov    0x128(%rsp),%rcx
  seta   %dil
  add    %rdx,%rcx
  add    %r10,%rcx
  cmp    %rax,%rcx
  setb   %cl
  or     %dil,%cl
  je     L1758
  mov    0x170(%rsp),%rcx
  cmpl   $0x2,0x158(%rsp)
  lea    (%r10,%rdx,1),%rdi
  lea    (%rcx,%rax,1),%r15
  mov    %rax,%rcx
  jbe    L1758
L1395:
  movsd  (%rdi),%xmm1
  movupd (%rcx),%xmm5
  add    $0x10,%rcx
  movhpd (%rdi,%r8,1),%xmm1
  add    0x148(%rsp),%rdi
  mulpd  %xmm2,%xmm1
  addpd  %xmm5,%xmm1
  movups %xmm1,-0x10(%rcx)
  cmp    %r15,%rcx
  jne    L1395
  mov    0x140(%rsp),%edi
  cmp    %edi,0x8(%rsp)
  je     L1882
  lea    0x0(%r13,%rdi,1),%ecx
  movslq %ecx,%rcx
  lea    0x0(%rbp,%rcx,8),%rdi
  mov    0x138(%rsp),%ecx
  add    %r12d,%ecx
  movslq %ecx,%rcx
  movsd  (%r10,%rcx,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdi),%xmm1
  movsd  %xmm1,(%rdi)
L1882:
  addl   $0x1,0x70(%rsp)
  add    %r9,%rax
  mov    0x70(%rsp),%edi
  add    %r9,%rsi
  mov    0x150(%rsp),%rcx
  add    0xc(%rsp),%r12d
  add    0x8(%rsp),%r13d
  add    %rcx,%rdx
  add    %rcx,%r14
  cmp    %edi,0x80(%rsp)
  jne    L2170
  mov    0x10(%rsp),%esi
  addl   $0x1,0x50(%rsp)
  add    %esi,0x78(%rsp)
  mov    0x50(%rsp),%eax
  mov    0x14(%rsp),%esi
  add    0xd0(%rsp),%rbx
  add    %esi,0x84(%rsp)
  add    0xd8(%rsp),%r11
  cmp    %eax,0x6c(%rsp)
  jne    L964
  mov    0x18(%rsp),%edi
  addl   $0x1,0x48(%rsp)
  add    %edi,0x98(%rsp)
  mov    0x48(%rsp),%eax
  mov    0x1c(%rsp),%edi
  add    %edi,0xa0(%rsp)
  mov    0xc8(%rsp),%rdi
  add    %rdi,0xa8(%rsp)
  mov    0xc0(%rsp),%rdi
  add    %rdi,0xe0(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L1638
  mov    0xb0(%rsp),%rdi
  addl   $0x1,0x40(%rsp)
  add    %rdi,0xe8(%rsp)
  mov    0x40(%rsp),%eax
  mov    0xb8(%rsp),%rdi
  add    %rdi,0xf0(%rsp)
  mov    0x20(%rsp),%edi
  add    %edi,0xf8(%rsp)
  mov    0x24(%rsp),%edi
  add    %edi,0x100(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L1743
  addl   $0x1,0x38(%rsp)
  mov    %r9,%rdi
  mov    0x38(%rsp),%eax
  mov    %r10,%r14
  mov    0x88(%rsp),%rsi
  mov    0x178(%rsp),%r9
  mov    %rbp,%r13
  add    %rsi,0x108(%rsp)
  mov    0x90(%rsp),%rsi
  add    %rsi,0x110(%rsp)
  mov    0x28(%rsp),%esi
  add    %esi,0x118(%rsp)
  mov    0x2c(%rsp),%esi
  add    %esi,0x120(%rsp)
  cmp    %eax,0x60(%rsp)
  jne    L1008
  jmp    L503
  xchg   %ax,%ax
L1758:
  mov    0x168(%rsp),%rdi
  mov    %rsi,%rcx
  lea    (%rdi,%rsi,1),%r15
  mov    %r14,%rdi
L1691:
  movsd  (%rdi),%xmm1
  add    $0x8,%rcx
  add    %r8,%rdi
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rcx),%xmm1
  movsd  %xmm1,-0x8(%rcx)
  cmp    %r15,%rcx
  jne    L1691
  jmp    L1882
L2037:
  cmpl   $0x5,0x300(%rsp)
  jne    L832
L1736:
  cmpl   $0x5,0x2f8(%rsp)
  jne    L1844
  jmp    L319
L880:
  mov    0x2c(%rsp),%eax
  movapd %xmm0,%xmm2
  movl   $0x0,0xc8(%rsp)
  movl   $0x0,0xf0(%rsp)
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0xa8(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1c0(%rsp)
  mov    0x28(%rsp),%eax
  shl    $0x3,%eax
  mov    %eax,0x1b8(%rsp)
  movslq 0x58(%rsp),%rax
  lea    0x0(,%rax,8),%ebx
  mov    %rax,%rbp
  lea    0x0(,%rax,8),%r12
  mov    %r13,%rax
  mov    %ebx,0x188(%rsp)
  shl    $0x4,%rbp
  mov    %r14,%r13
  mov    0x88(%rsp),%rbx
  mov    %rbp,%r14
  mov    %rax,%rbp
  shl    $0x3,%rbx
  mov    %rbx,0x70(%rsp)
  mov    0x90(%rsp),%rbx
  shl    $0x3,%rbx
  mov    %rbx,0x78(%rsp)
L988:
  mov    0xa8(%rsp),%edi
  mov    0x60(%rsp),%ebx
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%esi
  cmp    %ebx,%eax
  mov    %ebx,%eax
  mov    %esi,0x1d8(%rsp)
  cmovl  %esi,%eax
  mov    %eax,0x50(%rsp)
  cmp    %edi,%eax
  jle    L1082
  movl   $0x0,0x118(%rsp)
  movslq 0x20(%rsp),%rax
  movl   $0x0,0x110(%rsp)
  mov    %rax,0x1c8(%rsp)
  movslq 0x24(%rsp),%rax
  movq   $0x0,0x128(%rsp)
  mov    %rax,0x1d0(%rsp)
  movslq 0xc8(%rsp),%rax
  movq   $0x0,0xf8(%rsp)
  mov    %rax,0x1b0(%rsp)
  mov    %rax,0x120(%rsp)
  movslq 0xc(%rsp),%rax
  movl   $0x0,0xd0(%rsp)
  mov    %rax,0x210(%rsp)
  movslq 0x8(%rsp),%rax
  mov    %rax,0x208(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rax,0x200(%rsp)
  movslq 0x1c(%rsp),%rax
  mov    %rax,0x1f8(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0x1f0(%rsp)
  movslq 0x10(%rsp),%rax
  mov    %rax,0x1e8(%rsp)
  movslq 0xf0(%rsp),%rax
  mov    %rax,0x198(%rsp)
L1020:
  mov    0x118(%rsp),%eax
  movq   $0x0,0x160(%rsp)
  movl   $0x0,0xd8(%rsp)
  mov    %eax,0x158(%rsp)
  mov    0x110(%rsp),%eax
  mov    %eax,0x150(%rsp)
  mov    0x128(%rsp),%rax
  mov    %rax,0x148(%rsp)
  mov    0x120(%rsp),%rax
  sub    0xf8(%rsp),%rax
  mov    %rax,0x1e0(%rsp)
L2219:
  mov    0xf8(%rsp),%rax
  add    0x160(%rsp),%rax
  movl   $0x0,0xe0(%rsp)
  mov    %rax,0x180(%rsp)
  mov    0x158(%rsp),%eax
  mov    %eax,0x140(%rsp)
  mov    0x150(%rsp),%eax
  mov    %eax,0x138(%rsp)
  mov    0x148(%rsp),%rax
  mov    %rax,0x130(%rsp)
L2300:
  mov    0xc8(%rsp),%eax
  add    0x138(%rsp),%eax
  movl   $0x0,0xe8(%rsp)
  mov    %eax,0x100(%rsp)
  mov    0xf0(%rsp),%eax
  add    0x140(%rsp),%eax
  mov    0x130(%rsp),%rbx
  mov    %eax,0x108(%rsp)
  mov    0x198(%rsp),%rax
  mov    %rbx,0x170(%rsp)
  add    %rbx,%rax
  mov    %rax,0x178(%rsp)
  mov    0x180(%rsp),%rax
  mov    %rax,0x168(%rsp)
L34:
  mov    0x178(%rsp),%rbx
  movl   $0x0,0xb0(%rsp)
  movq   $0x0,0xa0(%rsp)
  lea    0x0(%rbp,%rbx,8),%rax
  mov    %rax,0xb8(%rsp)
  mov    0x198(%rsp),%rax
  sub    %rbx,%rax
  add    0x170(%rsp),%rax
  mov    0x168(%rsp),%rbx
  shl    $0x3,%rax
  mov    %rax,0x190(%rsp)
  mov    0x1b0(%rsp),%rax
  add    %rbx,%rax
  mov    %rax,0x1a0(%rsp)
  mov    0x1e0(%rsp),%rax
  add    %rbx,%rax
  mov    %rax,0x1a8(%rsp)
L1629:
  mov    0xa0(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x7(%rbx),%edx
  add    $0x8,%eax
  cmp    %edx,%edi
  cmovle %edi,%eax
  cmp    %ebx,%eax
  jle    L106
  mov    %rbx,%r10
  mov    0x58(%rsp),%r11d
  movslq 0xb0(%rsp),%rdx
  xor    %ecx,%ecx
  mov    0x1a0(%rsp),%rbx
  sub    %r10d,%eax
  mov    0x190(%rsp),%rdi
  mov    %eax,0x90(%rsp)
  lea    (%rbx,%rdx,1),%r8
  add    0x1a8(%rsp),%rdx
  mov    0xb8(%rsp),%rbx
  lea    0x0(%r13,%rdx,8),%rsi
  lea    -0x1(%rax),%rdx
  shl    $0x3,%r8
  imul   %r12,%rdx
  add    %rbx,%rdi
  test   %r11d,%r11d
  mov    %rsi,0x30(%rsp)
  mov    %eax,%esi
  cmovns %rdx,%rcx
  mov    %rcx,0x38(%rsp)
  mov    $0x0,%ecx
  cmovns %rcx,%rdx
  and    $0xfffffffe,%esi
  mov    0x100(%rsp),%ecx
  mov    %esi,0x98(%rsp)
  add    %r10d,%esi
  mov    %rdx,0x40(%rsp)
  mov    %eax,%edx
  imul   %esi,%r11d
  mov    %esi,%r9d
  shr    %edx
  mov    0x108(%rsp),%esi
  lea    -0x1(%rdx),%r15d
  lea    -0x1(%rax),%edx
  lea    -0x8(,%rax,8),%rax
  mov    %edx,0x84(%rsp)
  mov    %r11d,%r10d
  mov    0xa8(%rsp),%r11d
  mov    %rax,0x48(%rsp)
  lea    0x8(,%rdx,8),%rax
  mov    %rax,0xc0(%rsp)
  lea    0x1(%r15),%rax
  shl    $0x4,%rax
  mov    %rax,0x88(%rsp)
  nopl   0x0(%rax)
L2209:
  mov    0x40(%rsp),%rax
  mov    0x48(%rsp),%rdx
  add    %r8,%rax
  add    %rdi,%rdx
  add    %r13,%rax
  cmp    %rdx,%rax
  mov    0x38(%rsp),%rax
  seta   %dl
  add    %r8,%rax
  add    %r13,%rax
  cmp    %rdi,%rax
  setb   %al
  or     %dl,%al
  je     L27
  mov    0x88(%rsp),%rax
  cmpl   $0x2,0x84(%rsp)
  lea    0x0(%r13,%r8,1),%rdx
  lea    (%rax,%rdi,1),%r15
  mov    %rdi,%rax
  jbe    L27
  nopl   0x0(%rax)
L1764:
  movsd  (%rdx),%xmm1
  movupd (%rax),%xmm3
  add    $0x10,%rax
  movhpd (%rdx,%r12,1),%xmm1
  add    %r14,%rdx
  mulpd  %xmm2,%xmm1
  addpd  %xmm3,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %r15,%rax
  jne    L1764
  mov    0x98(%rsp),%edx
  cmp    %edx,0x90(%rsp)
  je     L2559
  lea    (%rsi,%r9,1),%eax
  cltq
  lea    0x0(%rbp,%rax,8),%rdx
  lea    (%rcx,%r10,1),%eax
  cltq
  movsd  0x0(%r13,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L2559:
  mov    0x70(%rsp),%rdx
  mov    0x78(%rsp),%rax
  add    $0x1,%r11d
  add    %rdx,0x30(%rsp)
  add    0x28(%rsp),%ecx
  add    %rdx,%r8
  add    %rax,%rdi
  add    %rax,%rbx
  add    0x2c(%rsp),%esi
  cmp    %r11d,0x50(%rsp)
  jne    L2209
L106:
  addq   $0x8,0xa0(%rsp)
  mov    0x188(%rsp),%edi
  mov    0xa0(%rsp),%rax
  add    %edi,0xb0(%rsp)
  addq   $0x40,0xb8(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L1629
  mov    0xc(%rsp),%edi
  addl   $0x1,0xe8(%rsp)
  add    %edi,0x100(%rsp)
  mov    0xe8(%rsp),%eax
  mov    0x8(%rsp),%edi
  add    %edi,0x108(%rsp)
  mov    0x210(%rsp),%rdi
  add    %rdi,0x168(%rsp)
  mov    0x208(%rsp),%rdi
  add    %rdi,0x170(%rsp)
  add    %rdi,0x178(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L34
  mov    0x1e8(%rsp),%rdi
  addl   $0x1,0xe0(%rsp)
  add    %rdi,0x180(%rsp)
  mov    0xe0(%rsp),%eax
  mov    0x1f0(%rsp),%rdi
  add    %rdi,0x130(%rsp)
  mov    0x10(%rsp),%edi
  add    %edi,0x138(%rsp)
  mov    0x14(%rsp),%edi
  add    %edi,0x140(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L2300
  mov    0x1f8(%rsp),%rdi
  addl   $0x1,0xd8(%rsp)
  add    %rdi,0x148(%rsp)
  mov    0xd8(%rsp),%eax
  mov    0x18(%rsp),%edi
  add    %edi,0x150(%rsp)
  mov    0x1c(%rsp),%edi
  add    %edi,0x158(%rsp)
  mov    0x200(%rsp),%rdi
  add    %rdi,0x160(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L2219
  mov    0x1c8(%rsp),%rdi
  mov    0x1d0(%rsp),%rsi
  addl   $0x1,0xd0(%rsp)
  mov    0xd0(%rsp),%eax
  add    %rsi,0x128(%rsp)
  mov    0x20(%rsp),%esi
  add    %rdi,0xf8(%rsp)
  add    %esi,0x110(%rsp)
  mov    0x24(%rsp),%esi
  add    %rdi,0x120(%rsp)
  add    %esi,0x118(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L1020
L1082:
  mov    0x1d8(%rsp),%eax
  mov    0x1c0(%rsp),%edi
  add    %edi,0xf0(%rsp)
  mov    0x1b8(%rsp),%edi
  mov    %eax,0xa8(%rsp)
  add    %edi,0xc8(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L988
  jmp    L236
  nopl   0x0(%rax,%rax,1)
L27:
  mov    0xc0(%rsp),%rax
  mov    0x30(%rsp),%rdx
  lea    (%rax,%rbx,1),%r15
  mov    %rbx,%rax
  nopl   0x0(%rax)
L1647:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rax,%r15
  jne    L1647
  jmp    L2559
L1815:
  mov    %eax,0x1d0(%rsp)
  mov    0x20(%rsp),%eax
  movapd %xmm0,%xmm2
  movl   $0x0,0x1a8(%rsp)
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0x1a0(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1d8(%rsp)
  movslq 0x58(%rsp),%rax
  movq   $0x0,0x198(%rsp)
  lea    0x0(,%rax,8),%ebx
  mov    %rax,%rbp
  movq   $0x0,0x120(%rsp)
  lea    0x0(,%rax,8),%r12
  mov    %ebx,0x128(%rsp)
  mov    0xb0(%rsp),%rbx
  shl    $0x4,%rbp
  mov    %r13,%rax
  movq   $0x0,0x118(%rsp)
  mov    %r14,%r13
  mov    %rbp,%r14
  mov    %rax,%rbp
  movl   $0x0,0xd8(%rsp)
  shl    $0x3,%rbx
  mov    %rbx,0x70(%rsp)
  mov    0xb8(%rsp),%rbx
  shl    $0x3,%rbx
  mov    %rbx,0x78(%rsp)
L881:
  movl   $0x0,0x110(%rsp)
  movl   $0x0,0x108(%rsp)
  movl   $0x0,0xb8(%rsp)
L144:
  mov    0xb8(%rsp),%edi
  mov    0x64(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x1e8(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x50(%rsp)
  cmp    %edi,%ebx
  jle    L1707
  movl   $0x0,0xe0(%rsp)
  movslq 0x1c(%rsp),%rax
  movq   $0x0,0x190(%rsp)
  mov    %rax,0x220(%rsp)
  movslq 0x18(%rsp),%rax
  mov    %rax,0x218(%rsp)
  movslq 0x110(%rsp),%rax
  mov    %rax,0x1c8(%rsp)
  add    0x118(%rsp),%rax
  mov    %rax,0x188(%rsp)
  mov    0x1a8(%rsp),%eax
  mov    %eax,0x180(%rsp)
  mov    0x1a0(%rsp),%eax
  mov    %eax,0x178(%rsp)
  mov    0x120(%rsp),%rax
  mov    %rax,0x170(%rsp)
  movslq 0xc(%rsp),%rax
  mov    %rax,0x210(%rsp)
  movslq 0x8(%rsp),%rax
  mov    %rax,0x208(%rsp)
  movslq 0x14(%rsp),%rax
  mov    %rax,0x200(%rsp)
  movslq 0x10(%rsp),%rax
  mov    %rax,0x1f8(%rsp)
  movslq 0x108(%rsp),%rax
  mov    %rax,0x1b0(%rsp)
L272:
  mov    0x190(%rsp),%rbx
  mov    0x118(%rsp),%rsi
  movl   $0x0,0xe8(%rsp)
  mov    0x170(%rsp),%rdi
  mov    0x1b0(%rsp),%rdx
  mov    %rbx,%rax
  add    %rsi,%rax
  add    %rdi,%rdx
  sub    0x120(%rsp),%rdx
  mov    %rdi,0x158(%rsp)
  mov    %rax,0x150(%rsp)
  mov    0x180(%rsp),%eax
  mov    %eax,0x168(%rsp)
  mov    0x178(%rsp),%eax
  mov    %eax,0x160(%rsp)
  mov    0x198(%rsp),%rax
  add    %rdi,%rax
  sub    %rax,%rdx
  mov    0x188(%rsp),%rax
  mov    %rdx,0x1e0(%rsp)
  sub    %rsi,%rax
  sub    %rbx,%rax
  mov    %rax,0x1f0(%rsp)
L2258:
  mov    0x160(%rsp),%eax
  add    0x110(%rsp),%eax
  movl   $0x0,0xf0(%rsp)
  mov    %eax,0xf8(%rsp)
  mov    0x168(%rsp),%eax
  add    0x108(%rsp),%eax
  mov    0x158(%rsp),%rbx
  mov    %eax,0x100(%rsp)
  mov    0x1e0(%rsp),%rax
  mov    %rbx,0x140(%rsp)
  add    %rbx,%rax
  mov    %rax,0x148(%rsp)
  mov    0x150(%rsp),%rax
  mov    %rax,0x138(%rsp)
L1678:
  mov    0x148(%rsp),%rbx
  movl   $0x0,0xc0(%rsp)
  movq   $0x0,0xb0(%rsp)
  lea    0x0(%rbp,%rbx,8),%rax
  mov    %rax,0xc8(%rsp)
  mov    0x1b0(%rsp),%rax
  sub    %rbx,%rax
  add    0x140(%rsp),%rax
  mov    0x1c8(%rsp),%rbx
  shl    $0x3,%rax
  mov    %rax,0x130(%rsp)
  mov    0x138(%rsp),%rax
  add    %rax,%rbx
  mov    %rbx,0x1b8(%rsp)
  mov    0x1f0(%rsp),%rbx
  add    %rax,%rbx
  mov    %rbx,0x1c0(%rsp)
L863:
  mov    0xb0(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x7(%rbx),%edx
  add    $0x8,%eax
  cmp    %edx,%edi
  cmovle %edi,%eax
  cmp    %ebx,%eax
  jle    L2212
  mov    %rbx,%r10
  mov    0x58(%rsp),%r11d
  movslq 0xc0(%rsp),%rdx
  xor    %ecx,%ecx
  mov    0x1b8(%rsp),%rbx
  sub    %r10d,%eax
  mov    0x130(%rsp),%rdi
  mov    %eax,0xa0(%rsp)
  lea    (%rbx,%rdx,1),%r8
  add    0x1c0(%rsp),%rdx
  mov    0xc8(%rsp),%rbx
  lea    0x0(%r13,%rdx,8),%rsi
  lea    -0x1(%rax),%rdx
  shl    $0x3,%r8
  imul   %r12,%rdx
  add    %rbx,%rdi
  test   %r11d,%r11d
  mov    %rsi,0x30(%rsp)
  mov    %eax,%esi
  cmovns %rdx,%rcx
  mov    %rcx,0x38(%rsp)
  mov    $0x0,%ecx
  cmovns %rcx,%rdx
  and    $0xfffffffe,%esi
  mov    0xf8(%rsp),%ecx
  mov    %esi,0xa8(%rsp)
  add    %r10d,%esi
  mov    %rdx,0x40(%rsp)
  mov    %eax,%edx
  imul   %esi,%r11d
  mov    %esi,%r9d
  shr    %edx
  mov    0x100(%rsp),%esi
  lea    -0x1(%rdx),%r15d
  lea    -0x1(%rax),%edx
  lea    -0x8(,%rax,8),%rax
  mov    %edx,0x84(%rsp)
  mov    %r11d,%r10d
  mov    0xb8(%rsp),%r11d
  mov    %rax,0x48(%rsp)
  lea    0x8(,%rdx,8),%rax
  mov    %rax,0xd0(%rsp)
  lea    0x1(%r15),%rax
  shl    $0x4,%rax
  mov    %rax,0x98(%rsp)
  nop
L1114:
  mov    0x40(%rsp),%rax
  mov    0x48(%rsp),%rdx
  add    %r8,%rax
  add    %rdi,%rdx
  add    %r13,%rax
  cmp    %rdx,%rax
  mov    0x38(%rsp),%rax
  seta   %dl
  add    %r8,%rax
  add    %r13,%rax
  cmp    %rdi,%rax
  setb   %al
  or     %dl,%al
  je     L2022
  mov    0x98(%rsp),%rax
  cmpl   $0x2,0x84(%rsp)
  lea    0x0(%r13,%r8,1),%rdx
  lea    (%rax,%rdi,1),%r15
  mov    %rdi,%rax
  jbe    L2022
  nopl   0x0(%rax)
L2421:
  movsd  (%rdx),%xmm1
  movupd (%rax),%xmm7
  add    $0x10,%rax
  movhpd (%rdx,%r12,1),%xmm1
  add    %r14,%rdx
  mulpd  %xmm2,%xmm1
  addpd  %xmm7,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %r15,%rax
  jne    L2421
  mov    0xa8(%rsp),%edx
  cmp    %edx,0xa0(%rsp)
  je     L533
  lea    (%rsi,%r9,1),%eax
  cltq
  lea    0x0(%rbp,%rax,8),%rdx
  lea    (%rcx,%r10,1),%eax
  cltq
  movsd  0x0(%r13,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L533:
  mov    0x70(%rsp),%rdx
  mov    0x78(%rsp),%rax
  add    $0x1,%r11d
  add    %rdx,0x30(%rsp)
  add    0x20(%rsp),%ecx
  add    %rdx,%r8
  add    %rax,%rdi
  add    %rax,%rbx
  add    0x24(%rsp),%esi
  cmp    %r11d,0x50(%rsp)
  jne    L1114
L2212:
  addq   $0x8,0xb0(%rsp)
  mov    0x128(%rsp),%edi
  mov    0xb0(%rsp),%rax
  add    %edi,0xc0(%rsp)
  addq   $0x40,0xc8(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L863
  mov    0xc(%rsp),%edi
  addl   $0x1,0xf0(%rsp)
  add    %edi,0xf8(%rsp)
  mov    0xf0(%rsp),%eax
  mov    0x8(%rsp),%edi
  add    %edi,0x100(%rsp)
  mov    0x210(%rsp),%rdi
  add    %rdi,0x138(%rsp)
  mov    0x208(%rsp),%rdi
  add    %rdi,0x140(%rsp)
  add    %rdi,0x148(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L1678
  mov    0x1f8(%rsp),%rdi
  addl   $0x1,0xe8(%rsp)
  add    %rdi,0x150(%rsp)
  mov    0xe8(%rsp),%eax
  mov    0x200(%rsp),%rdi
  add    %rdi,0x158(%rsp)
  mov    0x10(%rsp),%edi
  add    %edi,0x160(%rsp)
  mov    0x14(%rsp),%edi
  add    %edi,0x168(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L2258
  mov    0x220(%rsp),%rdi
  addl   $0x1,0xe0(%rsp)
  add    %rdi,0x170(%rsp)
  mov    0xe0(%rsp),%eax
  mov    0x18(%rsp),%edi
  add    %edi,0x178(%rsp)
  mov    0x1c(%rsp),%edi
  add    %edi,0x180(%rsp)
  mov    0x218(%rsp),%rdi
  add    %rdi,0x188(%rsp)
  add    %rdi,0x190(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L272
L1707:
  mov    0x1e8(%rsp),%eax
  mov    0x1d0(%rsp),%edi
  add    %edi,0x108(%rsp)
  mov    0x1d8(%rsp),%edi
  mov    %eax,0xb8(%rsp)
  add    %edi,0x110(%rsp)
  cmp    %eax,0x64(%rsp)
  jg     L144
  mov    0x88(%rsp),%rdi
  addl   $0x1,0xd8(%rsp)
  add    %rdi,0x118(%rsp)
  mov    0xd8(%rsp),%eax
  mov    0x90(%rsp),%rdi
  add    %rdi,0x120(%rsp)
  sub    %rdi,0x198(%rsp)
  mov    0x28(%rsp),%edi
  add    %edi,0x1a0(%rsp)
  mov    0x2c(%rsp),%edi
  add    %edi,0x1a8(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L881
  mov    %r13,%r14
  mov    %rbp,%r13
  jmp    L1948
  nopl   0x0(%rax)
L2022:
  mov    0xd0(%rsp),%rax
  mov    0x30(%rsp),%rdx
  lea    (%rax,%rbx,1),%r15
  mov    %rbx,%rax
  nopl   0x0(%rax)
L1828:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %r15,%rax
  jne    L1828
  jmp    L533
L320:
  call   <__stack_chk_fail@plt>
L663:
  mov    %eax,0x1e0(%rsp)
  mov    0x18(%rsp),%eax
  movapd %xmm0,%xmm2
  movq   $0x0,0x1c8(%rsp)
  unpcklpd %xmm2,%xmm2
  movq   $0x0,0x1c0(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1e8(%rsp)
  movslq 0x58(%rsp),%rax
  movl   $0x0,0x1b8(%rsp)
  lea    0x0(,%rax,8),%ebx
  mov    %rax,%rbp
  lea    0x0(,%rax,8),%r12
  movslq 0x10(%rsp),%rax
  mov    %ebx,0x148(%rsp)
  shl    $0x4,%rbp
  mov    0xc8(%rsp),%rbx
  mov    %rax,0x218(%rsp)
  movslq 0x14(%rsp),%rax
  movl   $0x0,0x1b0(%rsp)
  shl    $0x3,%rbx
  mov    %rbx,0x70(%rsp)
  mov    0xc0(%rsp),%rbx
  mov    %rax,0x238(%rsp)
  movslq 0xc(%rsp),%rax
  movq   $0x0,0x140(%rsp)
  shl    $0x3,%rbx
  mov    %rbx,0x78(%rsp)
  movq   $0x0,0x138(%rsp)
  movl   $0x0,0xf0(%rsp)
  mov    %rax,0x240(%rsp)
  mov    %r13,%rax
  mov    %r14,%r13
  mov    %rbp,%r14
  mov    %rax,%rbp
L1921:
  mov    0x1c0(%rsp),%rax
  movq   $0x0,0x1a0(%rsp)
  movl   $0x0,0xf8(%rsp)
  mov    %rax,0x1a8(%rsp)
  mov    0x1b8(%rsp),%eax
  mov    %eax,0x198(%rsp)
  mov    0x1b0(%rsp),%eax
  mov    %eax,0x190(%rsp)
  mov    0x140(%rsp),%rax
  mov    %rax,0x188(%rsp)
  mov    0x138(%rsp),%rax
  mov    %rax,0x130(%rsp)
  movslq 0x8(%rsp),%rax
  mov    %rax,0x248(%rsp)
L1046:
  mov    0x140(%rsp),%rax
  mov    0x138(%rsp),%rdi
  movl   $0x0,0x128(%rsp)
  mov    0x1a0(%rsp),%rbx
  movl   $0x0,0x120(%rsp)
  movl   $0x0,0xc8(%rsp)
  neg    %rax
  sub    0x1c8(%rsp),%rax
  mov    %rax,0x220(%rsp)
  mov    0x130(%rsp),%rax
  sub    %rdi,%rax
  sub    %rbx,%rax
  add    %rdi,%rbx
  mov    %rax,0x228(%rsp)
  mov    %rbx,0x230(%rsp)
L1113:
  mov    0xc8(%rsp),%edi
  mov    0x68(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x1f8(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x50(%rsp)
  cmp    %edi,%ebx
  jle    L610
  mov    0x198(%rsp),%eax
  mov    0x220(%rsp),%rbx
  movl   $0x0,0x100(%rsp)
  mov    %eax,0x180(%rsp)
  mov    0x190(%rsp),%eax
  mov    %eax,0x178(%rsp)
  mov    0x188(%rsp),%rax
  mov    %rax,0x170(%rsp)
  mov    0x130(%rsp),%rax
  mov    %rax,0x168(%rsp)
  movslq 0x120(%rsp),%rax
  add    %rax,%rbx
  mov    %rax,0x200(%rsp)
  movslq 0x128(%rsp),%rax
  mov    %rbx,0x1f0(%rsp)
  mov    0x228(%rsp),%rbx
  mov    %rax,0x1d0(%rsp)
  add    %rax,%rbx
  mov    %rbx,0x208(%rsp)
L1160:
  mov    0x178(%rsp),%eax
  add    0x128(%rsp),%eax
  movl   $0x0,0x108(%rsp)
  mov    %eax,0x110(%rsp)
  mov    0x180(%rsp),%eax
  add    0x120(%rsp),%eax
  mov    0x170(%rsp),%rbx
  mov    %eax,0x118(%rsp)
  mov    0x1f0(%rsp),%rax
  mov    %rbx,0x158(%rsp)
  add    %rbx,%rax
  mov    0x168(%rsp),%rbx
  mov    %rax,0x160(%rsp)
  mov    0x208(%rsp),%rax
  mov    %rbx,0xe0(%rsp)
  add    %rbx,%rax
  add    0x1a8(%rsp),%rbx
  sub    0x230(%rsp),%rax
  sub    %rbx,%rax
  mov    %rax,0x210(%rsp)
L1625:
  mov    0x160(%rsp),%rbx
  movl   $0x0,0xd0(%rsp)
  movq   $0x0,0xc0(%rsp)
  lea    0x0(%rbp,%rbx,8),%rax
  mov    %rax,0xd8(%rsp)
  mov    0x200(%rsp),%rax
  sub    %rbx,%rax
  add    0x158(%rsp),%rax
  shl    $0x3,%rax
  mov    %rax,0x150(%rsp)
  mov    0x210(%rsp),%rax
  add    0xe0(%rsp),%rax
  mov    %rax,0x1d8(%rsp)
L2395:
  mov    0xc0(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x7(%rbx),%edx
  add    $0x8,%eax
  cmp    %edx,%edi
  cmovle %edi,%eax
  cmp    %ebx,%eax
  jle    L471
  movslq 0xd0(%rsp),%rdx
  mov    %rbx,%r10
  mov    0x58(%rsp),%r11d
  xor    %ecx,%ecx
  mov    0x1d0(%rsp),%r8
  add    0xe0(%rsp),%r8
  sub    %r10d,%eax
  add    %rdx,%r8
  add    0x1d8(%rsp),%rdx
  mov    0xd8(%rsp),%rbx
  mov    %eax,0xa0(%rsp)
  lea    0x0(%r13,%rdx,8),%rsi
  lea    -0x1(%rax),%rdx
  mov    0x150(%rsp),%rdi
  shl    $0x3,%r8
  imul   %r12,%rdx
  mov    %rsi,0x30(%rsp)
  mov    %eax,%esi
  add    %rbx,%rdi
  test   %r11d,%r11d
  cmovns %rdx,%rcx
  mov    %rcx,0x38(%rsp)
  mov    $0x0,%ecx
  cmovns %rcx,%rdx
  and    $0xfffffffe,%esi
  mov    0x110(%rsp),%ecx
  mov    %esi,0xa8(%rsp)
  add    %r10d,%esi
  mov    %rdx,0x40(%rsp)
  mov    %eax,%edx
  imul   %esi,%r11d
  mov    %esi,%r9d
  shr    %edx
  mov    0x118(%rsp),%esi
  lea    -0x1(%rdx),%r15d
  lea    -0x1(%rax),%edx
  lea    -0x8(,%rax,8),%rax
  mov    %edx,0x84(%rsp)
  mov    %r11d,%r10d
  mov    0xc8(%rsp),%r11d
  mov    %rax,0x48(%rsp)
  lea    0x8(,%rdx,8),%rax
  mov    %rax,0xe8(%rsp)
  lea    0x1(%r15),%rax
  shl    $0x4,%rax
  mov    %rax,0x98(%rsp)
  nopw   0x0(%rax,%rax,1)
L2067:
  mov    0x40(%rsp),%rax
  mov    0x48(%rsp),%rdx
  add    %r8,%rax
  add    %rdi,%rdx
  add    %r13,%rax
  cmp    %rdx,%rax
  mov    0x38(%rsp),%rax
  seta   %dl
  add    %r8,%rax
  add    %r13,%rax
  cmp    %rdi,%rax
  setb   %al
  or     %dl,%al
  je     L490
  mov    0x98(%rsp),%rax
  cmpl   $0x2,0x84(%rsp)
  lea    0x0(%r13,%r8,1),%rdx
  lea    (%rax,%rdi,1),%r15
  mov    %rdi,%rax
  jbe    L490
  nopl   0x0(%rax)
L300:
  movsd  (%rdx),%xmm1
  movupd (%rax),%xmm6
  add    $0x10,%rax
  movhpd (%rdx,%r12,1),%xmm1
  add    %r14,%rdx
  mulpd  %xmm2,%xmm1
  addpd  %xmm6,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %r15,%rax
  jne    L300
  mov    0xa8(%rsp),%edx
  cmp    %edx,0xa0(%rsp)
  je     L1829
  lea    (%rsi,%r9,1),%eax
  cltq
  lea    0x0(%rbp,%rax,8),%rdx
  lea    (%rcx,%r10,1),%eax
  cltq
  movsd  0x0(%r13,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L1829:
  mov    0x70(%rsp),%rdx
  mov    0x78(%rsp),%rax
  add    $0x1,%r11d
  add    %rdx,0x30(%rsp)
  add    0x18(%rsp),%ecx
  add    %rdx,%r8
  add    %rax,%rdi
  add    %rax,%rbx
  add    0x1c(%rsp),%esi
  cmp    %r11d,0x50(%rsp)
  jne    L2067
L471:
  addq   $0x8,0xc0(%rsp)
  mov    0x148(%rsp),%edi
  mov    0xc0(%rsp),%rax
  add    %edi,0xd0(%rsp)
  addq   $0x40,0xd8(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L2395
  mov    0xc(%rsp),%edi
  addl   $0x1,0x108(%rsp)
  add    %edi,0x110(%rsp)
  mov    0x108(%rsp),%eax
  mov    0x8(%rsp),%edi
  add    %edi,0x118(%rsp)
  mov    0x240(%rsp),%rdi
  add    %rdi,0xe0(%rsp)
  mov    0x248(%rsp),%rdi
  add    %rdi,0x158(%rsp)
  add    %rdi,0x160(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L1625
  mov    0x218(%rsp),%rdi
  addl   $0x1,0x100(%rsp)
  add    %rdi,0x168(%rsp)
  mov    0x100(%rsp),%eax
  mov    0x238(%rsp),%rdi
  add    %rdi,0x170(%rsp)
  mov    0x10(%rsp),%edi
  add    %edi,0x178(%rsp)
  mov    0x14(%rsp),%edi
  add    %edi,0x180(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L1160
L610:
  mov    0x1f8(%rsp),%eax
  mov    0x1e0(%rsp),%edi
  add    %edi,0x120(%rsp)
  mov    0x1e8(%rsp),%edi
  mov    %eax,0xc8(%rsp)
  add    %edi,0x128(%rsp)
  cmp    %eax,0x68(%rsp)
  jg     L1113
  mov    0xb0(%rsp),%rbx
  mov    0xb8(%rsp),%rsi
  addl   $0x1,0xf8(%rsp)
  mov    0xf8(%rsp),%eax
  add    %rsi,0x188(%rsp)
  mov    0x20(%rsp),%esi
  add    %rbx,0x130(%rsp)
  add    %esi,0x190(%rsp)
  mov    0x24(%rsp),%esi
  add    %rbx,0x1a0(%rsp)
  add    %esi,0x198(%rsp)
  sub    %rbx,0x1a8(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L1046
  mov    0x88(%rsp),%rdi
  mov    0x90(%rsp),%rsi
  mov    0x28(%rsp),%ecx
  addl   $0x1,0xf0(%rsp)
  add    %ecx,0x1b0(%rsp)
  mov    0xf0(%rsp),%eax
  mov    0x2c(%rsp),%ecx
  add    %rdi,0x138(%rsp)
  add    %rsi,0x140(%rsp)
  add    %ecx,0x1b8(%rsp)
  sub    %rdi,0x1c0(%rsp)
  sub    %rsi,0x1c8(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L1921
  mov    %r13,%r14
  mov    %rbp,%r13
  jmp    L213
  nopl   0x0(%rax)
L490:
  mov    0xe8(%rsp),%rax
  mov    0x30(%rsp),%rdx
  lea    (%rax,%rbx,1),%r15
  mov    %rbx,%rax
  nopl   0x0(%rax)
L1033:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %r15,%rax
  jne    L1033
  jmp    L1829
L1217:
  mov    0x14(%rsp),%eax
  movapd %xmm0,%xmm2
  movq   $0x0,0x1d0(%rsp)
  movl   $0x0,0x1c8(%rsp)
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0x1c0(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1f0(%rsp)
  mov    0x10(%rsp),%eax
  movq   $0x0,0x1b8(%rsp)
  movq   $0x0,0x128(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1f8(%rsp)
  movslq 0x58(%rsp),%rax
  movl   $0x0,0xf8(%rsp)
  lea    0x0(,%rax,8),%ebx
  lea    0x0(,%rax,8),%r12
  mov    %rax,%rbp
  movslq 0xc(%rsp),%rax
  mov    %ebx,0x130(%rsp)
  mov    0xd0(%rsp),%rbx
  shl    $0x4,%rbp
  mov    %rax,0x218(%rsp)
  movslq 0x8(%rsp),%rax
  shl    $0x3,%rbx
  mov    %rbx,0x70(%rsp)
  mov    0xd8(%rsp),%rbx
  mov    %rax,0x230(%rsp)
  mov    %r13,%rax
  mov    %r12,%r13
  mov    %r14,%r12
  shl    $0x3,%rbx
  mov    %rbp,%r14
  mov    %rax,%rbp
  mov    %rbx,0x78(%rsp)
L823:
  mov    0x1d0(%rsp),%rax
  movq   $0x0,0x1a8(%rsp)
  movl   $0x0,0x100(%rsp)
  mov    %rax,0x1b0(%rsp)
  mov    0x1c8(%rsp),%eax
  mov    %eax,0x1a0(%rsp)
  mov    0x1c0(%rsp),%eax
  mov    %eax,0x198(%rsp)
  mov    0x1b8(%rsp),%rax
  mov    %rax,0x190(%rsp)
  mov    0x128(%rsp),%rax
  mov    %rax,0x188(%rsp)
L1890:
  mov    0x1a0(%rsp),%eax
  movl   $0x0,0x108(%rsp)
  mov    %eax,0x180(%rsp)
  mov    0x198(%rsp),%eax
  mov    %eax,0x178(%rsp)
  mov    0x190(%rsp),%rax
  mov    %rax,0x170(%rsp)
  mov    0x188(%rsp),%rax
  mov    %rax,0x168(%rsp)
  mov    0x1a8(%rsp),%rax
  add    0x128(%rsp),%rax
  mov    %rax,0x220(%rsp)
L1227:
  mov    0x1b0(%rsp),%rax
  movl   $0x0,0x160(%rsp)
  movl   $0x0,0x158(%rsp)
  movl   $0x0,0xd8(%rsp)
  neg    %rax
  sub    0x220(%rsp),%rax
  mov    %rax,0x228(%rsp)
L2569:
  mov    0xd8(%rsp),%edi
  mov    0x6c(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x200(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x50(%rsp)
  cmp    %edi,%ebx
  jle    L1510
  movslq 0x160(%rsp),%rax
  mov    0x178(%rsp),%ebx
  movl   $0x0,0x110(%rsp)
  mov    0x180(%rsp),%edi
  add    %eax,%ebx
  mov    %rax,0x208(%rsp)
  mov    %ebx,0x118(%rsp)
  movslq 0x158(%rsp),%rbx
  add    %ebx,%edi
  mov    %rbx,0x1e8(%rsp)
  mov    %edi,0x120(%rsp)
  mov    0x170(%rsp),%rdi
  add    %rdi,%rbx
  mov    %rdi,0x148(%rsp)
  mov    %rbx,0x150(%rsp)
  mov    0x168(%rsp),%rbx
  mov    %rbx,0x140(%rsp)
  mov    0x228(%rsp),%rbx
  add    %rax,%rbx
  mov    %rbx,0x210(%rsp)
L544:
  mov    0x150(%rsp),%rbx
  movl   $0x0,0xe0(%rsp)
  movq   $0x0,0xd0(%rsp)
  lea    0x0(%rbp,%rbx,8),%rax
  mov    %rax,0xe8(%rsp)
  mov    0x1e8(%rsp),%rax
  sub    %rbx,%rax
  add    0x148(%rsp),%rax
  mov    0x140(%rsp),%rbx
  shl    $0x3,%rax
  mov    %rax,0x138(%rsp)
  mov    0x208(%rsp),%rax
  add    %rbx,%rax
  mov    %rax,0x1d8(%rsp)
  mov    0x210(%rsp),%rax
  add    %rbx,%rax
  mov    %rax,0x1e0(%rsp)
L2406:
  mov    0xd0(%rsp),%rbx
  mov    0x8(%rsp),%edi
  mov    %ebx,%eax
  lea    0x7(%rbx),%edx
  add    $0x8,%eax
  cmp    %edx,%edi
  cmovle %edi,%eax
  cmp    %ebx,%eax
  jle    L1253
  mov    %rbx,%r10
  movslq 0xe0(%rsp),%rdx
  mov    0x1d8(%rsp),%rbx
  sub    %r10d,%eax
  mov    0x58(%rsp),%ecx
  mov    0x138(%rsp),%rdi
  mov    %eax,%r15d
  lea    (%rbx,%rdx,1),%r8
  add    0x1e0(%rsp),%rdx
  mov    0xe8(%rsp),%rbx
  lea    -0x1(%r15),%rax
  lea    (%r12,%rdx,8),%rsi
  xor    %edx,%edx
  shl    $0x3,%r8
  imul   %r13,%rax
  mov    %rdx,%r11
  add    %rbx,%rdi
  test   %ecx,%ecx
  mov    %rsi,0x30(%rsp)
  mov    %r15,%rsi
  mov    %r15d,0xa0(%rsp)
  cmovns %rax,%r11
  cmovs  %rax,%rdx
  mov    %r15d,%eax
  and    $0xfffffffe,%esi
  shr    %eax
  mov    %esi,0xa8(%rsp)
  add    %r10d,%esi
  mov    %rdx,0x40(%rsp)
  imul   %esi,%ecx
  lea    -0x1(%rax),%edx
  mov    %r15d,%eax
  sub    $0x1,%eax
  lea    -0x8(,%r15,8),%r15
  mov    %r11,0x38(%rsp)
  mov    %esi,%r9d
  mov    %eax,0x84(%rsp)
  lea    0x8(,%rax,8),%rax
  mov    0x120(%rsp),%esi
  mov    %r15,0x48(%rsp)
  mov    %ecx,%r10d
  mov    0xd8(%rsp),%r11d
  mov    %rax,0xf0(%rsp)
  lea    0x1(%rdx),%rax
  mov    0x118(%rsp),%ecx
  shl    $0x4,%rax
  mov    %rax,0x98(%rsp)
  cs nopw 0x0(%rax,%rax,1)
L482:
  mov    0x40(%rsp),%rax
  mov    0x48(%rsp),%rdx
  add    %r8,%rax
  add    %rdi,%rdx
  add    %r12,%rax
  cmp    %rdx,%rax
  mov    0x38(%rsp),%rax
  seta   %dl
  add    %r8,%rax
  add    %r12,%rax
  cmp    %rdi,%rax
  setb   %al
  or     %dl,%al
  je     L2453
  mov    0x98(%rsp),%rax
  cmpl   $0x2,0x84(%rsp)
  lea    (%r12,%r8,1),%rdx
  lea    (%rax,%rdi,1),%r15
  mov    %rdi,%rax
  jbe    L2453
  nopl   0x0(%rax,%rax,1)
L114:
  movsd  (%rdx),%xmm1
  movupd (%rax),%xmm5
  add    $0x10,%rax
  movhpd (%rdx,%r13,1),%xmm1
  add    %r14,%rdx
  mulpd  %xmm2,%xmm1
  addpd  %xmm5,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %r15,%rax
  jne    L114
  mov    0xa8(%rsp),%edx
  cmp    %edx,0xa0(%rsp)
  je     L1454
  lea    (%rsi,%r9,1),%eax
  cltq
  lea    0x0(%rbp,%rax,8),%rdx
  lea    (%rcx,%r10,1),%eax
  cltq
  movsd  (%r12,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L1454:
  mov    0x70(%rsp),%rdx
  mov    0x78(%rsp),%rax
  add    $0x1,%r11d
  add    %rdx,0x30(%rsp)
  add    0x10(%rsp),%ecx
  add    %rdx,%r8
  add    %rax,%rdi
  add    %rax,%rbx
  add    0x14(%rsp),%esi
  cmp    %r11d,0x50(%rsp)
  jne    L482
L1253:
  addq   $0x8,0xd0(%rsp)
  mov    0x130(%rsp),%edi
  mov    0xd0(%rsp),%rax
  add    %edi,0xe0(%rsp)
  addq   $0x40,0xe8(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L2406
  mov    0xc(%rsp),%edi
  addl   $0x1,0x110(%rsp)
  add    %edi,0x118(%rsp)
  mov    0x110(%rsp),%eax
  mov    0x8(%rsp),%edi
  add    %edi,0x120(%rsp)
  mov    0x218(%rsp),%rdi
  add    %rdi,0x140(%rsp)
  mov    0x230(%rsp),%rdi
  add    %rdi,0x148(%rsp)
  add    %rdi,0x150(%rsp)
  cmp    %eax,0x80(%rsp)
  jne    L544
L1510:
  mov    0x200(%rsp),%eax
  mov    0x1f0(%rsp),%edi
  add    %edi,0x158(%rsp)
  mov    0x1f8(%rsp),%edi
  mov    %eax,0xd8(%rsp)
  add    %edi,0x160(%rsp)
  cmp    %eax,0x6c(%rsp)
  jg     L2569
  mov    0xc8(%rsp),%rdi
  addl   $0x1,0x108(%rsp)
  add    %rdi,0x168(%rsp)
  mov    0x108(%rsp),%eax
  mov    0xc0(%rsp),%rdi
  add    %rdi,0x170(%rsp)
  mov    0x18(%rsp),%edi
  add    %edi,0x178(%rsp)
  mov    0x1c(%rsp),%edi
  add    %edi,0x180(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L1227
  mov    0xb0(%rsp),%rbx
  mov    0xb8(%rsp),%rsi
  addl   $0x1,0x100(%rsp)
  mov    0x100(%rsp),%eax
  add    %rsi,0x190(%rsp)
  mov    0x20(%rsp),%esi
  add    %rbx,0x188(%rsp)
  add    %esi,0x198(%rsp)
  mov    0x24(%rsp),%esi
  add    %rbx,0x1a8(%rsp)
  add    %esi,0x1a0(%rsp)
  sub    %rbx,0x1b0(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L1890
  mov    0x88(%rsp),%rdi
  mov    0x90(%rsp),%rsi
  addl   $0x1,0xf8(%rsp)
  mov    0xf8(%rsp),%eax
  add    %rsi,0x1b8(%rsp)
  mov    0x28(%rsp),%esi
  add    %rdi,0x128(%rsp)
  add    %esi,0x1c0(%rsp)
  mov    0x2c(%rsp),%esi
  sub    %rdi,0x1d0(%rsp)
  add    %esi,0x1c8(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L823
  mov    %r12,%r14
  mov    %rbp,%r13
  jmp    L1076
L2453:
  mov    0xf0(%rsp),%rax
  mov    0x30(%rsp),%rdx
  lea    (%rax,%rbx,1),%r15
  mov    %rbx,%rax
  nopl   0x0(%rax)
L2443:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r13,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %r15,%rax
  jne    L2443
  jmp    L1454
L2394:
  mov    0x8(%rsp),%eax
  movapd %xmm0,%xmm2
  movl   $0x0,0x1e8(%rsp)
  movl   $0x0,0x1e0(%rsp)
  unpcklpd %xmm2,%xmm2
  movl   $0x0,0x1d8(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x1f8(%rsp)
  mov    0xc(%rsp),%eax
  movq   $0x0,0x1d0(%rsp)
  movq   $0x0,0x1c8(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x200(%rsp)
  movslq 0x58(%rsp),%rax
  movl   $0x0,0x118(%rsp)
  lea    0x0(,%rax,8),%ebx
  mov    %rax,%rbp
  lea    0x0(,%rax,8),%r12
  mov    %ebx,0x148(%rsp)
  mov    0x30(%rsp),%rbx
  shl    $0x4,%rbp
  shl    $0x3,%rbx
  mov    %rbx,0x70(%rsp)
  lea    0x0(,%r9,8),%rbx
  mov    %rbx,0x78(%rsp)
L1989:
  mov    0x1c8(%rsp),%rax
  movl   $0x0,0x120(%rsp)
  mov    %rax,0x1c0(%rsp)
  mov    0x1e8(%rsp),%eax
  mov    %eax,0x1b8(%rsp)
  mov    0x1e0(%rsp),%eax
  mov    %eax,0x1b0(%rsp)
  mov    0x1d0(%rsp),%rax
  mov    %rax,0x1a8(%rsp)
  mov    0x1d8(%rsp),%eax
  mov    %eax,0x1a0(%rsp)
  mov    %r13,%rax
  mov    %r14,%r13
  mov    %rbp,%r14
  mov    %rax,%rbp
L602:
  mov    0x1b8(%rsp),%eax
  movq   $0x0,0x198(%rsp)
  movl   $0x0,0x128(%rsp)
  mov    %eax,0x190(%rsp)
  mov    0x1b0(%rsp),%eax
  mov    %eax,0x188(%rsp)
  mov    0x1a8(%rsp),%rax
  mov    %rax,0x180(%rsp)
  mov    0x1a0(%rsp),%eax
  mov    %eax,0x178(%rsp)
L2122:
  mov    0x198(%rsp),%rax
  add    0x1c0(%rsp),%rax
  movl   $0x0,0x130(%rsp)
  mov    %rax,0x160(%rsp)
  mov    0x190(%rsp),%eax
  mov    %eax,0x140(%rsp)
  mov    0x188(%rsp),%eax
  mov    %eax,0x170(%rsp)
  mov    0x180(%rsp),%rax
  mov    %rax,0x168(%rsp)
  mov    %rax,0x138(%rsp)
  mov    0x178(%rsp),%eax
  mov    %eax,0x158(%rsp)
L1467:
  mov    0x168(%rsp),%rax
  sub    0x138(%rsp),%rax
  movl   $0x0,0x100(%rsp)
  movl   $0x0,0xe8(%rsp)
  shl    $0x3,%rax
  mov    %rax,0x150(%rsp)
  mov    0x158(%rsp),%eax
  mov    %eax,0x108(%rsp)
L2092:
  mov    0xe8(%rsp),%edi
  mov    0x80(%rsp),%esi
  lea    0x7(%rdi),%eax
  lea    0x8(%rdi),%ebx
  cmp    %eax,%esi
  mov    %ebx,0x208(%rsp)
  cmovle %esi,%ebx
  mov    %ebx,0x50(%rsp)
  cmp    %edi,%ebx
  jle    L949
  movslq 0x100(%rsp),%rax
  add    0x138(%rsp),%rax
  movl   $0x0,0xf0(%rsp)
  lea    0x0(%rbp,%rax,8),%rax
  movq   $0x0,0xe0(%rsp)
  mov    %rax,0xf8(%rsp)
  mov    0x108(%rsp),%eax
  add    0x170(%rsp),%eax
  cltq
  add    0x160(%rsp),%rax
  mov    %rax,0x1f0(%rsp)
L1765:
  mov    0xe0(%rsp),%r11
  mov    0x8(%rsp),%ebx
  mov    %r11d,%eax
  lea    0x7(%r11),%edx
  add    $0x8,%eax
  cmp    %edx,%ebx
  cmovle %ebx,%eax
  cmp    %r11d,%eax
  jle    L1885
  sub    %r11d,%eax
  mov    0x58(%rsp),%r10d
  movslq 0xf0(%rsp),%r8
  xor    %r15d,%r15d
  add    0x1f0(%rsp),%r8
  lea    -0x1(%rax),%rdx
  mov    %eax,%ecx
  mov    0xf8(%rsp),%rbx
  imul   %r12,%rdx
  shl    $0x3,%r8
  mov    0x150(%rsp),%rdi
  mov    %eax,0xa0(%rsp)
  lea    0x0(%r13,%r8,1),%rsi
  mov    %rsi,0x30(%rsp)
  add    %rbx,%rdi
  mov    0x100(%rsp),%esi
  add    0x140(%rsp),%esi
  test   %r10d,%r10d
  cmovns %rdx,%r15
  mov    %r15,0x38(%rsp)
  mov    $0x0,%r15d
  cmovns %r15,%rdx
  and    $0xfffffffe,%ecx
  mov    %ecx,0xa8(%rsp)
  add    %r11d,%ecx
  mov    0xe8(%rsp),%r11d
  mov    %rdx,0x40(%rsp)
  mov    %eax,%edx
  imul   %ecx,%r10d
  mov    %ecx,%r9d
  shr    %edx
  mov    0x108(%rsp),%ecx
  lea    -0x1(%rdx),%r15d
  mov    %eax,%edx
  lea    -0x8(,%rax,8),%rax
  sub    $0x1,%edx
  mov    %rax,0x48(%rsp)
  lea    0x8(,%rdx,8),%rax
  mov    %edx,0x84(%rsp)
  mov    %rax,0x110(%rsp)
  lea    0x1(%r15),%rax
  shl    $0x4,%rax
  mov    %rax,0x98(%rsp)
  nopl   (%rax)
L2210:
  mov    0x40(%rsp),%rax
  mov    0x48(%rsp),%rdx
  add    %r8,%rax
  add    %rdi,%rdx
  add    %r13,%rax
  cmp    %rdx,%rax
  mov    0x38(%rsp),%rax
  seta   %dl
  add    %r8,%rax
  add    %r13,%rax
  cmp    %rdi,%rax
  setb   %al
  or     %dl,%al
  je     L1490
  mov    0x98(%rsp),%rax
  cmpl   $0x2,0x84(%rsp)
  lea    0x0(%r13,%r8,1),%rdx
  lea    (%rax,%rdi,1),%r15
  mov    %rdi,%rax
  jbe    L1490
  nopl   0x0(%rax)
L2218:
  movsd  (%rdx),%xmm1
  movupd (%rax),%xmm4
  add    $0x10,%rax
  movhpd (%rdx,%r12,1),%xmm1
  add    %r14,%rdx
  mulpd  %xmm2,%xmm1
  addpd  %xmm4,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %r15,%rax
  jne    L2218
  mov    0xa8(%rsp),%edx
  cmp    %edx,0xa0(%rsp)
  je     L1306
  lea    (%rsi,%r9,1),%eax
  cltq
  lea    0x0(%rbp,%rax,8),%rdx
  lea    (%rcx,%r10,1),%eax
  cltq
  movsd  0x0(%r13,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
L1306:
  mov    0x70(%rsp),%rdx
  mov    0x78(%rsp),%rax
  add    $0x1,%r11d
  add    %rdx,0x30(%rsp)
  add    0xc(%rsp),%ecx
  add    %rdx,%r8
  add    %rax,%rdi
  add    %rax,%rbx
  add    0x8(%rsp),%esi
  cmp    %r11d,0x50(%rsp)
  jne    L2210
L1885:
  addq   $0x8,0xe0(%rsp)
  mov    0x148(%rsp),%edi
  mov    0xe0(%rsp),%rax
  add    %edi,0xf0(%rsp)
  addq   $0x40,0xf8(%rsp)
  cmp    %eax,0x8(%rsp)
  jg     L1765
L949:
  mov    0x208(%rsp),%eax
  mov    0x1f8(%rsp),%edi
  add    %edi,0x100(%rsp)
  mov    0x200(%rsp),%edi
  mov    %eax,0xe8(%rsp)
  add    %edi,0x108(%rsp)
  cmp    %eax,0x80(%rsp)
  jg     L2092
  mov    0x10(%rsp),%edi
  mov    0xd8(%rsp),%rsi
  addl   $0x1,0x130(%rsp)
  mov    0xd0(%rsp),%rcx
  add    %edi,0x158(%rsp)
  mov    0x130(%rsp),%eax
  sub    %edi,0x170(%rsp)
  mov    0x14(%rsp),%edi
  add    %rsi,0x138(%rsp)
  add    %rcx,0x160(%rsp)
  add    %rsi,0x168(%rsp)
  add    %edi,0x140(%rsp)
  cmp    %eax,0x6c(%rsp)
  jne    L1467
  mov    0x18(%rsp),%edi
  addl   $0x1,0x128(%rsp)
  add    %edi,0x178(%rsp)
  mov    0xc0(%rsp),%rsi
  sub    %edi,0x188(%rsp)
  mov    0x128(%rsp),%eax
  mov    0x1c(%rsp),%edi
  add    %rsi,0x180(%rsp)
  add    %edi,0x190(%rsp)
  mov    0xc8(%rsp),%rdi
  add    %rdi,0x198(%rsp)
  cmp    %eax,0x68(%rsp)
  jne    L2122
  mov    0x20(%rsp),%edi
  addl   $0x1,0x120(%rsp)
  add    %edi,0x1a0(%rsp)
  mov    0xb8(%rsp),%rsi
  sub    %edi,0x1b0(%rsp)
  mov    0x120(%rsp),%eax
  mov    0x24(%rsp),%edi
  add    %rsi,0x1a8(%rsp)
  add    %edi,0x1b8(%rsp)
  mov    0xb0(%rsp),%rdi
  add    %rdi,0x1c0(%rsp)
  cmp    %eax,0x64(%rsp)
  jne    L602
  mov    %rbp,%rax
  mov    0x88(%rsp),%rdi
  mov    %r14,%rbp
  addl   $0x1,0x118(%rsp)
  add    %rdi,0x1c8(%rsp)
  mov    %r13,%r14
  mov    0x90(%rsp),%rdi
  mov    %rax,%r13
  add    %rdi,0x1d0(%rsp)
  mov    0x118(%rsp),%eax
  mov    0x28(%rsp),%edi
  add    %edi,0x1d8(%rsp)
  sub    %edi,0x1e0(%rsp)
  mov    0x2c(%rsp),%edi
  add    %edi,0x1e8(%rsp)
  cmp    %eax,0x60(%rsp)
  jg     L1989
  jmp    L713
  nopl   0x0(%rax,%rax,1)
L1490:
  mov    0x110(%rsp),%rax
  mov    0x30(%rsp),%rdx
  lea    (%rax,%rbx,1),%r15
  mov    %rbx,%rax
  nopl   0x0(%rax)
L932:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %r15,%rax
  jne    L932
  jmp    L1306
```

assistant: ```c
void tce_sortacc_6_scalar(double *unsorted, double *sorted, int a, int b, int c, int d, int e, int f, int i, int j, int k, int l, int m, int n, double factor) {
  int id[6], jd[6], ia, ib, j1, j2, j3, j4, j5, j6;
  int l1, l2, l3, l4, l5, l6;
  int ia1, ia2, ia3, ia4, ia5, ia6;
  int ib1, ib2, ib3, ib4, ib5, ib6;
  int rangea1, rangea2, rangea3, rangea4, rangea5, rangea6;
  int rangeb1, rangeb2, rangeb3, rangeb4, rangeb5, rangeb6;
  int range[6], order[6], order_r[6];
  int jj1, jj2, jj3, jj4, jj5, jj6;
  int jj1_bound, jj2_bound, jj3_bound, jj4_bound, jj5_bound, jj6_bound;
  int N1, N2;
  jd[0] = a;
  jd[1] = b;
  jd[2] = c;
  jd[3] = d;
  jd[4] = e;
  jd[5] = f;
  range[0] = b * c * d * e * f;
  range[1] = c * d * e * f;
  range[2] = d * e * f;
  range[3] = e * f;
  range[4] = f;
  range[5] = 1;
  l1 = jd[i];
  l2 = jd[j];
  l3 = jd[k];
  l4 = jd[l];
  l5 = jd[m];
  l6 = jd[n];
  rangea1 = range[i];
  rangea2 = range[j];
  rangea3 = range[k];
  rangea4 = range[l];
  rangea5 = range[m];
  rangea6 = range[n];
  rangeb1 = l2 * l3 * l4 * l5 * l6;
  rangeb2 = l3 * l4 * l5 * l6;
  rangeb3 = l4 * l5 * l6;
  rangeb4 = l5 * l6;
  rangeb5 = l6;
  rangeb6 = 1;
  if (n == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6++) {
                ia = ia5 + j6 * rangea6;
                ib = ib5 + j6 * rangeb6;
                sorted[ib] += unsorted[ia] * factor;
              }
            }
          }
        }
      }
    }
  }
  if (m == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5 += 8) {
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj5_bound = (j5 + 8 > l5) ? l5 : j5 + 8;
                for (jj5 = j5; jj5 < jj5_bound; jj5++) {
                  ia5 = ia4 + jj5 * rangea5;
                  ib5 = ib4 + jj5 * rangeb5;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia5 + jj6 * rangea6;
                    ib = ib5 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (l == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4 += 8) {
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia3 + j5 * rangea5;
              ib5 = ib3 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj4_bound = (j4 + 8 > l4) ? l4 : j4 + 8;
                for (jj4 = j4; jj4 < jj4_bound; jj4++) {
                  ia4 = ia5 + jj4 * rangea4;
                  ib4 = ib5 + jj4 * rangeb4;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia4 + jj6 * rangea6;
                    ib = ib4 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (k == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3 += 8) {
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia2 + j4 * rangea4;
            ib4 = ib2 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj3_bound = (j3 + 8 > l3) ? l3 : j3 + 8;
                for (jj3 = j3; jj3 < jj3_bound; jj3++) {
                  ia3 = ia5 + jj3 * rangea3;
                  ib3 = ib5 + jj3 * rangeb3;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia3 + jj6 * rangea6;
                    ib = ib3 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (j == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2 += 8) {
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia1 + j3 * rangea3;
          ib3 = ib1 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj2_bound = (j2 + 8 > l2) ? l2 : j2 + 8;
                for (jj2 = j2; jj2 < jj2_bound; jj2++) {
                  ia2 = ia5 + jj2 * rangea2;
                  ib2 = ib5 + jj2 * rangeb2;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia2 + jj6 * rangea6;
                    ib = ib2 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (i == 5) {
    for (j1 = 0; j1 < l1; j1 += 8) {
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = j2 * rangea2;
        ib2 = j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj1_bound = (j1 + 8 > l1) ? l1 : j1 + 8;
                for (jj1 = j1; jj1 < jj1_bound; jj1++) {
                  ia1 = ia5 + jj1 * rangea1;
                  ib1 = ib5 + jj1 * rangeb1;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia1 + jj6 * rangea6;
                    ib = ib1 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```