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

```asm
<Hqr2>:
  endbr64
  push   %r15
  imul   $0x1e,%edi,%eax
  mov    %edx,%r10d
  push   %r14
  mov    %rcx,%r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1a8,%rsp
  mov    %edi,0x24(%rsp)
  mov    0x1e0(%rsp),%r15
  mov    %esi,0x138(%rsp)
  mov    %r8,0x160(%rsp)
  mov    %r9,0x180(%rsp)
  mov    %eax,0xf8(%rsp)
  test   %edi,%edi
  jle    L174
  pxor   %xmm7,%xmm7
  movapd D191(%rip),%xmm2
  mov    %edi,%ebp
  xor    %ebx,%ebx
  movsd  %xmm7,0x10(%rsp)
  movapd %xmm7,%xmm0
  movslq %edi,%r11
  mov    %esi,%r12d
  movq   D138(%rip),%xmm7
  xor    %edi,%edi
  mov    %r9,%r13
L569:
  mov    %ebx,%eax
  mov    %edi,%ebx
  cmp    %ebp,%eax
  jge    L509
  mov    %ebp,%r9d
  mov    (%r14,%rdi,8),%r8
  sub    %eax,%r9d
  cmp    $0x1,%r9d
  je     L236
  movslq %eax,%rdx
  lea    (%r8,%rdx,8),%rcx
  mov    %r9d,%edx
  shr    %edx
  lea    -0x1(%rdx),%esi
  lea    0x10(%rcx),%rdx
  shl    $0x4,%rsi
  add    %rdx,%rsi
  jmp    L738
  nopl   0x0(%rax)
L1529:
  add    $0x10,%rdx
L738:
  movupd (%rcx),%xmm3
  mov    %rdx,%rcx
  andpd  %xmm2,%xmm3
  addsd  %xmm3,%xmm0
  unpckhpd %xmm3,%xmm3
  addsd  %xmm3,%xmm0
  cmp    %rsi,%rdx
  jne    L1529
  mov    %r9d,%edx
  and    $0xfffffffe,%edx
  add    %edx,%eax
  cmp    %r9d,%edx
  je     L509
L236:
  cltq
  movsd  (%r8,%rax,8),%xmm1
  andpd  %xmm7,%xmm1
  addsd  %xmm1,%xmm0
L509:
  cmp    %edi,%r12d
  jg     L849
  cmp    %edi,%r10d
  jl     L849
L225:
  add    $0x1,%rdi
  cmp    %rdi,%r11
  jne    L569
  movsd  %xmm0,0x128(%rsp)
  cmp    0x138(%rsp),%r10d
  jl     L888
L942:
  movslq 0x138(%rsp),%rax
  mov    %r10d,0x18(%rsp)
  pxor   %xmm6,%xmm6
  mov    %r10d,0xd0(%rsp)
  movapd %xmm6,%xmm4
  movapd %xmm6,%xmm5
  movapd %xmm6,%xmm2
  lea    0x0(,%rax,8),%rbx
  mov    %rax,0x58(%rsp)
  add    $0x1,%rax
  movsd  D167(%rip),%xmm8
  mov    %rax,0x190(%rsp)
  mov    0x24(%rsp),%eax
  movapd %xmm6,%xmm1
  mov    %rbx,0x178(%rsp)
  add    $0x1,%eax
  mov    %r15,0x1e0(%rsp)
  mov    %r14,%r15
  mov    0x1e0(%rsp),%r14
  mov    %eax,0x198(%rsp)
  movsd  %xmm6,0x150(%rsp)
L85:
  movslq 0x18(%rsp),%rax
  mov    %r14,%r11
  movl   $0x0,0xe8(%rsp)
  lea    -0x1(%rax),%esi
  lea    0x0(,%rax,8),%rcx
  mov    %rax,%rbx
  mov    %rax,0x188(%rsp)
  movslq %esi,%rdi
  lea    -0x2(%rax),%edx
  lea    (%r15,%rcx,1),%rax
  mov    %esi,0x28(%rsp)
  mov    %rdi,0x158(%rsp)
  lea    -0x8(%rcx),%rdi
  mov    (%rax),%r9
  mov    %rax,0x148(%rsp)
  mov    %ebx,%eax
  sub    0x138(%rsp),%eax
  mov    %rdi,0xe0(%rsp)
  add    %r15,%rdi
  lea    (%r9,%rcx,1),%rbp
  add    0x190(%rsp),%rax
  shl    $0x3,%rax
  mov    %rdi,0x130(%rsp)
  lea    -0x10(%rcx),%rdi
  mov    %rdi,0x168(%rsp)
  mov    %ebx,%edi
  mov    0x198(%rsp),%ebx
  mov    %rax,0x170(%rsp)
  movslq %edx,%rax
  shl    $0x3,%rax
  sub    %edi,%ebx
  mov    %edx,0x13c(%rsp)
  mov    %rax,0x140(%rsp)
  lea    0x8(%rcx),%rax
  mov    %rax,0xf0(%rsp)
  mov    %ebx,%eax
  shr    %eax
  mov    %ebx,0x110(%rsp)
  and    $0xfffffffe,%ebx
  sub    $0x1,%eax
  add    %ebx,%esi
  mov    %rcx,0x100(%rsp)
  shl    $0x4,%rax
  mov    %ebx,0x108(%rsp)
  mov    %rax,0x120(%rsp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %esi,0x19c(%rsp)
  mov    %rax,0xb0(%rsp)
  nopw   0x0(%rax,%rax,1)
L1110:
  mov    0x18(%rsp),%ecx
  mov    0x138(%rsp),%esi
  mov    0xf8(%rsp),%r12d
  sub    0xe8(%rsp),%r12d
  cmp    %esi,%ecx
  jle    L1762
  mov    0xe0(%rsp),%rax
  mov    %r9,%rdx
  movsd  0x128(%rsp),%xmm3
  jmp    L1862
  nopl   0x0(%rax)
L1671:
  sub    $0x1,%ecx
  sub    $0x8,%rax
  cmp    %ecx,%esi
  je     L1849
L1862:
  mov    %rdx,%rdi
  mov    (%r15,%rax,1),%rdx
  movsd  0x8(%rdi,%rax,1),%xmm5
  movsd  (%rdx,%rax,1),%xmm0
  andpd  %xmm7,%xmm5
  andpd  %xmm7,%xmm0
  addsd  %xmm0,%xmm5
  movapd %xmm5,%xmm0
  cmpnltsd %xmm8,%xmm0
  andpd  %xmm0,%xmm5
  andnpd %xmm3,%xmm0
  orpd   %xmm0,%xmm5
  movsd  (%rdi,%rax,1),%xmm0
  andpd  %xmm7,%xmm0
  addsd  %xmm5,%xmm0
  subsd  %xmm5,%xmm0
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm8
  jbe    L1671
  mov    %ecx,0xd8(%rsp)
  movsd  0x0(%rbp),%xmm3
  cmp    %ecx,0x18(%rsp)
  je     L894
L1039:
  mov    0x130(%rsp),%rax
  mov    0x28(%rsp),%esi
  mov    (%rax),%rdx
  mov    0xe0(%rsp),%rax
  lea    (%rdx,%rax,1),%rbx
  lea    (%r9,%rax,1),%rcx
  mov    0x100(%rsp),%rax
  movsd  (%rbx),%xmm10
  movsd  (%rdx,%rax,1),%xmm9
  mulsd  (%rcx),%xmm9
  cmp    %esi,0xd8(%rsp)
  je     L64
  mov    0xe8(%rsp),%ebx
  cmp    %ebx,0xf8(%rsp)
  je     L1061
  cmp    $0xa,%ebx
  je     L1608
  cmp    $0x14,%ebx
  je     L1608
L982:
  mov    0xd8(%rsp),%esi
  mov    0x13c(%rsp),%ecx
  addl   $0x1,0xe8(%rsp)
  cmp    %ecx,%esi
  jg     L1697
  mov    0x140(%rsp),%rax
  jmp    L1204
  nopw   0x0(%rax,%rax,1)
L1496:
  mov    -0x8(%r15,%rax,1),%r8
  movapd %xmm6,%xmm12
  andpd  %xmm7,%xmm0
  movapd %xmm4,%xmm13
  andpd  %xmm7,%xmm12
  andpd  %xmm7,%xmm13
  lea    -0x8(%rax),%rdi
  movsd  -0x8(%r8,%rax,1),%xmm11
  andpd  %xmm7,%xmm11
  addsd  %xmm12,%xmm11
  movapd %xmm2,%xmm12
  andpd  %xmm7,%xmm12
  addsd  %xmm13,%xmm12
  addsd  %xmm0,%xmm11
  movapd %xmm1,%xmm0
  andpd  %xmm7,%xmm0
  mulsd  %xmm0,%xmm11
  movsd  -0x8(%rdx,%rax,1),%xmm0
  andpd  %xmm7,%xmm0
  mulsd  %xmm12,%xmm0
  addsd  %xmm11,%xmm0
  subsd  %xmm11,%xmm0
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm8
  ja     L977
  lea    -0x1(%rcx),%edx
  cmp    %edx,%esi
  jg     L1851
  mov    %rdi,%rax
  mov    %edx,%ecx
L1204:
  mov    (%r15,%rax,1),%rdx
  mov    0x8(%r15,%rax,1),%rdi
  movapd %xmm3,%xmm5
  movapd %xmm10,%xmm4
  movsd  (%rdx,%rax,1),%xmm6
  movsd  0x8(%rdi,%rax,1),%xmm0
  subsd  %xmm6,%xmm5
  subsd  %xmm6,%xmm4
  movapd %xmm0,%xmm2
  subsd  %xmm6,%xmm2
  movapd %xmm5,%xmm1
  mulsd  %xmm4,%xmm1
  subsd  %xmm5,%xmm2
  subsd  %xmm4,%xmm2
  subsd  %xmm9,%xmm1
  divsd  (%rdi,%rax,1),%xmm1
  addsd  0x8(%rdx,%rax,1),%xmm1
  mov    0x10(%r15,%rax,1),%rdi
  movapd %xmm2,%xmm11
  movsd  0x8(%rdi,%rax,1),%xmm4
  andpd  %xmm7,%xmm11
  movapd %xmm1,%xmm5
  andpd  %xmm7,%xmm5
  addsd  %xmm11,%xmm5
  movapd %xmm4,%xmm11
  andpd  %xmm7,%xmm11
  addsd  %xmm11,%xmm5
  divsd  %xmm5,%xmm1
  divsd  %xmm5,%xmm2
  divsd  %xmm5,%xmm4
  cmp    %ecx,%esi
  jne    L1496
  mov    0xd8(%rsp),%eax
  mov    %ecx,0x8(%rsp)
  lea    0x2(%rax),%esi
L693:
  cmp    %esi,0x18(%rsp)
  jl     L1340
L606:
  movslq %esi,%rdx
  mov    0x18(%rsp),%ebx
  lea    0x1(%rsi),%r8d
  lea    0x0(,%rdx,8),%rax
  mov    (%r15,%rdx,8),%rdx
  lea    0x1(%rbx),%edi
  movq   $0x0,-0x10(%rdx,%rax,1)
  mov    %r8d,%edx
  sub    $0x8,%rax
  cmp    %r8d,%ebx
  jl     L1340
L1773:
  mov    0x10(%r15,%rax,1),%rcx
  movq   $0x0,(%rcx,%rax,1)
  cmp    %edx,%esi
  je     L1837
  movq   $0x0,-0x8(%rcx,%rax,1)
  add    $0x1,%edx
  add    $0x8,%rax
  cmp    %edx,%edi
  jne    L1773
L1340:
  mov    0x8(%rsp),%ebx
  cmp    %ebx,0x28(%rsp)
  jl     L1110
  mov    0x24(%rsp),%eax
  cmp    %ebx,%eax
  jle    L1102
  mov    0x18(%rsp),%ecx
  movslq %ebx,%r14
  mov    %r11,%r12
  movsd  %xmm8,0xb8(%rsp)
  lea    -0x8(,%r14,8),%r13
  cmp    %eax,%ecx
  cmovle %ecx,%eax
  mov    %eax,0xa0(%rsp)
  lea    0x8(%r15),%rax
  mov    %rax,0xc0(%rsp)
  nopw   0x0(%rax,%rax,1)
L705:
  lea    0x10(%r13),%rbx
  mov    %r13,%rbp
  mov    %r14d,(%rsp)
  add    $0x8,%r13
  mov    %r14d,0x40(%rsp)
  mov    %r14d,0x30(%rsp)
  cmp    0x8(%rsp),%r14d
  je     L822
  mov    0x8(%r15,%rbp,1),%rax
  movsd  (%rax,%rbp,1),%xmm1
  mov    0x10(%r15,%rbp,1),%rax
  movsd  (%rax,%rbp,1),%xmm2
  cmp    0x28(%rsp),%r14d
  je     L1324
  mov    0x18(%r15,%rbp,1),%rax
  movsd  (%rax,%rbp,1),%xmm4
  movapd %xmm4,%xmm0
  andpd  %xmm7,%xmm0
L402:
  movapd %xmm1,%xmm3
  movapd %xmm2,%xmm8
  andpd  %xmm7,%xmm3
  andpd  %xmm7,%xmm8
  addsd  %xmm8,%xmm3
  addsd  %xmm0,%xmm3
  movsd  0xb8(%rsp),%xmm0
  comisd %xmm3,%xmm0
  ja     L1034
  divsd  %xmm3,%xmm1
  movsd  0x10(%rsp),%xmm6
  divsd  %xmm3,%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  divsd  %xmm3,%xmm4
  movapd %xmm2,%xmm5
  mulsd  %xmm2,%xmm5
  addsd  %xmm5,%xmm0
  movapd %xmm4,%xmm5
  mulsd  %xmm4,%xmm5
  addsd  %xmm5,%xmm0
  ucomisd %xmm0,%xmm6
  ja     L1331
  sqrtsd %xmm0,%xmm0
L506:
  mov    $0x2,%eax
  movaps %xmm7,0x90(%rsp)
  movsd  %xmm4,0x80(%rsp)
  movsd  %xmm2,0x70(%rsp)
  movsd  %xmm3,0x60(%rsp)
  movsd  %xmm1,0x50(%rsp)
  call   <D_sign@plt>
  pxor   %xmm5,%xmm5
  movsd  0x60(%rsp),%xmm3
  movsd  0x50(%rsp),%xmm1
  cvtsi2sd %eax,%xmm5
  mov    0x8(%r15,%rbp,1),%rax
  movsd  0x70(%rsp),%xmm2
  movsd  0x80(%rsp),%xmm4
  movapd 0x90(%rsp),%xmm7
  movapd %xmm5,%xmm0
  xorpd  D241(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,(%rax,%rbp,1)
L245:
  addsd  %xmm5,%xmm1
  movapd %xmm2,%xmm8
  movapd %xmm4,%xmm6
  mov    0x28(%rsp),%ecx
  divsd  %xmm5,%xmm8
  movapd %xmm1,%xmm3
  divsd  %xmm5,%xmm3
  divsd  %xmm5,%xmm6
  divsd  %xmm1,%xmm2
  divsd  %xmm1,%xmm4
  cmp    %ecx,0x30(%rsp)
  je     L1689
  mov    0x8(%r15,%rbp,1),%rdx
  mov    0x10(%r15,%rbp,1),%rax
  lea    0x18(%rbp),%rcx
  mov    0x18(%r15,%rbp,1),%r8
  mov    0x24(%rsp),%ebp
  lea    (%rax,%rcx,1),%r11
  lea    (%rdx,%r13,1),%r9
  mov    %ebp,%esi
  lea    (%rdx,%rcx,1),%r10
  lea    (%rax,%r13,1),%rdi
  sub    (%rsp),%esi
  cmp    %r11,%r9
  mov    %r10,0x50(%rsp)
  lea    (%r8,%rcx,1),%r10
  mov    %r11,0x80(%rsp)
  setae  %r11b
  cmp    0x50(%rsp),%rdi
  mov    %r10,0x60(%rsp)
  setae  %r10b
  or     %r10d,%r11d
  mov    %esi,0x70(%rsp)
  cmpl   $0x1,0x70(%rsp)
  lea    (%r8,%r13,1),%rsi
  setne  %r10b
  cmp    %ebp,0x30(%rsp)
  setl   0x30(%rsp)
  movzbl 0x30(%rsp),%ebp
  and    %ebp,%r10d
  and    %r11d,%r10d
  cmp    %r9,0x60(%rsp)
  setbe  %r11b
  cmp    0x50(%rsp),%rsi
  setae  %bpl
  or     %ebp,%r11d
  test   %r11b,%r10b
  je     L1662
  cmp    %rdi,0x60(%rsp)
  setbe  %r10b
  cmp    0x80(%rsp),%rsi
  setae  %r11b
  or     %r10b,%r11b
  je     L1662
  mov    0x24(%rsp),%ebp
  cmp    %ebp,0x40(%rsp)
  mov    $0x1,%ebp
  movapd %xmm2,%xmm12
  cmovl  0x70(%rsp),%ebp
  movapd %xmm4,%xmm11
  movapd %xmm6,%xmm1
  xor    %r10d,%r10d
  movapd %xmm3,%xmm10
  movapd %xmm8,%xmm9
  mov    %ebp,%r11d
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  shr    %r11d
  unpcklpd %xmm10,%xmm10
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm1,%xmm1
  shl    $0x4,%r11
  nop
L502:
  movupd (%rdi,%r10,1),%xmm0
  movupd (%rsi,%r10,1),%xmm13
  movapd %xmm10,%xmm14
  movupd (%r9,%r10,1),%xmm15
  mulpd  %xmm12,%xmm0
  mulpd  %xmm11,%xmm13
  addpd  %xmm15,%xmm0
  addpd  %xmm13,%xmm0
  movapd %xmm15,%xmm13
  mulpd  %xmm0,%xmm14
  subpd  %xmm14,%xmm13
  movapd %xmm9,%xmm14
  mulpd  %xmm0,%xmm14
  mulpd  %xmm1,%xmm0
  movups %xmm13,(%r9,%r10,1)
  movupd (%rdi,%r10,1),%xmm13
  subpd  %xmm14,%xmm13
  movups %xmm13,(%rdi,%r10,1)
  movupd (%rsi,%r10,1),%xmm13
  subpd  %xmm0,%xmm13
  movups %xmm13,(%rsi,%r10,1)
  add    $0x10,%r10
  cmp    %r10,%r11
  jne    L502
  mov    0x40(%rsp),%edi
  mov    %ebp,%esi
  and    $0xfffffffe,%esi
  add    %esi,%edi
  cmp    %ebp,%esi
  je     L1539
  movslq %edi,%rdi
  shl    $0x3,%rdi
  add    %rdi,%rax
  add    %rdi,%rdx
  add    %r8,%rdi
  movsd  (%rax),%xmm0
  movsd  (%rdi),%xmm9
  movsd  (%rdx),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm4,%xmm9
  addsd  %xmm1,%xmm0
  addsd  %xmm9,%xmm0
  movapd %xmm3,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm1
  movapd %xmm8,%xmm9
  mulsd  %xmm0,%xmm9
  mulsd  %xmm6,%xmm0
  movsd  %xmm1,(%rdx)
  movsd  (%rax),%xmm1
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rax)
  movsd  (%rdi),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdi)
L1539:
  mov    (%rsp),%eax
  mov    0x18(%rsp),%esi
  lea    0x2(%rax),%edx
  add    $0x3,%eax
  cmp    %edx,%esi
  cmovle %esi,%eax
  test   %eax,%eax
  js     L50
  mov    0xc0(%rsp),%rsi
  cltq
  mov    %r15,%rdx
  lea    (%rsi,%rax,8),%r8
  nopl   0x0(%rax)
L843:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%r13,1),%rdi
  lea    (%rax,%rbx,1),%rsi
  add    %rcx,%rax
  movsd  (%rdi),%xmm1
  movsd  (%rsi),%xmm0
  mulsd  %xmm8,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm3,%xmm9
  addsd  %xmm9,%xmm0
  movsd  (%rax),%xmm9
  mulsd  %xmm6,%xmm9
  addsd  %xmm9,%xmm0
  movapd %xmm2,%xmm9
  subsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm9
  mulsd  %xmm4,%xmm0
  movsd  %xmm1,(%rdi)
  movsd  (%rsi),%xmm1
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rsi)
  movsd  (%rax),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %rdx,%r8
  jne    L843
L50:
  mov    0x58(%rsp),%rdx
  mov    0xd0(%rsp),%r8d
  xchg   %ax,%ax
L1419:
  mov    (%r12,%rdx,8),%rax
  add    $0x1,%rdx
  lea    (%rax,%r13,1),%rdi
  lea    (%rax,%rbx,1),%rsi
  add    %rcx,%rax
  movsd  (%rdi),%xmm0
  movsd  (%rsi),%xmm1
  mulsd  %xmm8,%xmm1
  movapd %xmm0,%xmm9
  mulsd  %xmm3,%xmm9
  addsd  %xmm9,%xmm1
  movsd  (%rax),%xmm9
  mulsd  %xmm6,%xmm9
  addsd  %xmm9,%xmm1
  movapd %xmm2,%xmm9
  mulsd  %xmm1,%xmm9
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdi)
  movsd  (%rsi),%xmm0
  subsd  %xmm9,%xmm0
  movapd %xmm4,%xmm9
  mulsd  %xmm1,%xmm9
  movsd  %xmm0,(%rsi)
  movsd  (%rax),%xmm0
  subsd  %xmm9,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %edx,%r8d
  jge    L1419
L1034:
  mov    (%rsp),%eax
  add    $0x1,%r14
  add    $0x1,%eax
  cmp    %r14d,0xa0(%rsp)
  jg     L705
  movsd  0xb8(%rsp),%xmm8
  mov    %r12,%r11
  mov    %eax,%r12d
  cmp    0x28(%rsp),%eax
  jg     L944
L1618:
  movslq %r12d,%rax
  mov    %r15,%r13
  mov    0x28(%rsp),%ebp
  mov    0xd0(%rsp),%r15d
  lea    -0x8(,%rax,8),%rbx
  mov    0x120(%rsp),%rax
  movsd  %xmm8,0x80(%rsp)
  lea    0x10(%rax),%r14
  mov    %r14,0x90(%rsp)
  nopl   0x0(%rax,%rax,1)
L1361:
  lea    0x10(%rbx),%r14
  mov    %rbx,%rsi
  add    $0x8,%rbx
  cmp    %r12d,0x8(%rsp)
  je     L1928
  mov    0x8(%r13,%rsi,1),%rax
  movsd  (%rax,%rsi,1),%xmm1
  mov    0x10(%r13,%rsi,1),%rax
  movsd  (%rax,%rsi,1),%xmm2
  cmp    %r12d,%ebp
  je     L1903
  mov    0x18(%r13,%rsi,1),%rax
  movsd  (%rax,%rsi,1),%xmm4
  movapd %xmm4,%xmm0
  andpd  %xmm7,%xmm0
L1871:
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm8
  andpd  %xmm7,%xmm3
  andpd  %xmm7,%xmm8
  addsd  %xmm8,%xmm3
  addsd  %xmm0,%xmm3
  movsd  0x80(%rsp),%xmm0
  comisd %xmm3,%xmm0
  ja     L1751
  divsd  %xmm3,%xmm1
  movsd  0x10(%rsp),%xmm6
  divsd  %xmm3,%xmm2
  movapd %xmm1,%xmm5
  mulsd  %xmm1,%xmm5
  divsd  %xmm3,%xmm4
  movapd %xmm2,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm5,%xmm0
  movapd %xmm4,%xmm5
  mulsd  %xmm4,%xmm5
  addsd  %xmm5,%xmm0
  ucomisd %xmm0,%xmm6
  ja     L1863
  sqrtsd %xmm0,%xmm0
L1565:
  mov    $0x2,%eax
  mov    %r11,0x1e0(%rsp)
  mov    %rsi,0x30(%rsp)
  movaps %xmm7,0x70(%rsp)
  movsd  %xmm4,0x60(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm3,0x40(%rsp)
  movsd  %xmm1,(%rsp)
  call   <D_sign@plt>
  pxor   %xmm5,%xmm5
  mov    0x30(%rsp),%rsi
  movsd  0x40(%rsp),%xmm3
  cvtsi2sd %eax,%xmm5
  movapd 0x70(%rsp),%xmm7
  mov    0x1e0(%rsp),%r11
  mov    0x8(%r13,%rsi,1),%rax
  movsd  0x60(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm2
  movsd  (%rsp),%xmm1
  movapd %xmm5,%xmm0
  xorpd  D241(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,(%rax,%rsi,1)
L1909:
  addsd  %xmm5,%xmm1
  movapd %xmm2,%xmm3
  movapd %xmm4,%xmm6
  divsd  %xmm5,%xmm3
  movapd %xmm1,%xmm8
  divsd  %xmm5,%xmm8
  divsd  %xmm5,%xmm6
  divsd  %xmm1,%xmm2
  divsd  %xmm1,%xmm4
  cmp    %r12d,%ebp
  je     L209
  mov    0x18(%rsp),%ecx
  lea    0x2(%r12),%edx
  lea    0x3(%r12),%eax
  cmp    %edx,%ecx
  cmovle %ecx,%eax
  add    $0x18,%rsi
  test   %eax,%eax
  js     L1218
  cltq
  mov    %r13,%rdx
  lea    0x8(%r13,%rax,8),%r10
  xchg   %ax,%ax
L177:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%rbx,1),%rdi
  lea    (%rax,%r14,1),%rcx
  add    %rsi,%rax
  movsd  (%rdi),%xmm1
  movsd  (%rcx),%xmm0
  mulsd  %xmm3,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm8,%xmm9
  addsd  %xmm9,%xmm0
  movsd  (%rax),%xmm9
  mulsd  %xmm6,%xmm9
  addsd  %xmm9,%xmm0
  movapd %xmm0,%xmm9
  subsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm9
  mulsd  %xmm4,%xmm0
  movsd  %xmm1,(%rdi)
  movsd  (%rcx),%xmm1
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rcx)
  movsd  (%rax),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %r10,%rdx
  jne    L177
L1218:
  mov    0x58(%rsp),%rdx
  nopl   (%rax)
L426:
  mov    (%r11,%rdx,8),%rax
  add    $0x1,%rdx
  lea    (%rax,%rbx,1),%rdi
  lea    (%rax,%r14,1),%rcx
  add    %rsi,%rax
  movsd  (%rdi),%xmm0
  movsd  (%rcx),%xmm1
  mulsd  %xmm3,%xmm1
  movapd %xmm0,%xmm9
  mulsd  %xmm8,%xmm9
  addsd  %xmm9,%xmm1
  movsd  (%rax),%xmm9
  mulsd  %xmm6,%xmm9
  addsd  %xmm9,%xmm1
  movapd %xmm1,%xmm9
  subsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm9
  movsd  %xmm0,(%rdi)
  movsd  (%rcx),%xmm0
  subsd  %xmm9,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm4,%xmm9
  movsd  %xmm0,(%rcx)
  movsd  (%rax),%xmm0
  subsd  %xmm9,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %edx,%r15d
  jge    L426
L1751:
  add    $0x1,%r12d
  cmp    %r12d,%ebp
  jge    L1361
L404:
  movsd  0x80(%rsp),%xmm8
  mov    %r13,%r15
L944:
  mov    0x148(%rsp),%rax
  mov    (%rax),%r9
  mov    0x100(%rsp),%rax
  lea    (%r9,%rax,1),%rbp
  jmp    L1110
  cs nopw 0x0(%rax,%rax,1)
L1903:
  pxor   %xmm4,%xmm4
  movapd %xmm4,%xmm0
  jmp    L1871
  nopl   (%rax)
L1324:
  pxor   %xmm4,%xmm4
  movapd %xmm4,%xmm0
  jmp    L402
  nopl   (%rax)
L209:
  cmp    %ebp,0x24(%rsp)
  jle    L1176
  mov    0x10(%r13,%rsi,1),%rdx
  mov    0x8(%r13,%rsi,1),%rcx
  mov    0xe0(%rsp),%rax
  mov    0xf0(%rsp),%r9
  lea    (%rcx,%rax,1),%rsi
  lea    (%rcx,%r9,1),%rdi
  add    %rdx,%rax
  cmp    %rdi,%rax
  lea    (%rdx,%r9,1),%rdi
  setae  %r10b
  cmp    %rdi,%rsi
  setae  %dil
  or     %r10b,%dil
  je     L205
  mov    0x24(%rsp),%r9d
  cmp    %r9d,0x18(%rsp)
  je     L205
  movapd %xmm2,%xmm12
  movapd %xmm8,%xmm11
  movapd %xmm3,%xmm10
  mov    0x90(%rsp),%rdi
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  unpcklpd %xmm10,%xmm10
  add    %rax,%rdi
  nopl   0x0(%rax,%rax,1)
L29:
  movupd (%rax),%xmm0
  movupd (%rsi),%xmm1
  add    $0x10,%rax
  add    $0x10,%rsi
  movapd %xmm11,%xmm9
  mulpd  %xmm12,%xmm0
  addpd  %xmm1,%xmm0
  mulpd  %xmm0,%xmm9
  mulpd  %xmm10,%xmm0
  subpd  %xmm9,%xmm1
  movups %xmm1,-0x10(%rsi)
  movupd -0x10(%rax),%xmm1
  subpd  %xmm0,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %rax,%rdi
  jne    L29
  mov    0x110(%rsp),%esi
  cmp    %esi,0x108(%rsp)
  je     L1176
  mov    0xb0(%rsp),%rax
  add    %rax,%rdx
  add    %rax,%rcx
  movsd  (%rdx),%xmm0
  movsd  (%rcx),%xmm1
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm9
  mulsd  %xmm8,%xmm9
  mulsd  %xmm3,%xmm0
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rcx)
  movsd  (%rdx),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx)
L1176:
  mov    0x18(%rsp),%ecx
  lea    0x2(%r12),%edx
  lea    0x3(%r12),%eax
  cmp    %edx,%ecx
  cmovle %ecx,%eax
  test   %eax,%eax
  js     L662
  cltq
  mov    %r13,%rdx
  lea    0x8(%r13,%rax,8),%rsi
  nopl   (%rax)
L1480:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%rbx,1),%rcx
  add    %r14,%rax
  movsd  (%rcx),%xmm1
  movsd  (%rax),%xmm0
  mulsd  %xmm3,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm8,%xmm9
  addsd  %xmm9,%xmm0
  subsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm0
  movsd  %xmm1,(%rcx)
  movsd  (%rax),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %rsi,%rdx
  jne    L1480
L662:
  mov    0x58(%rsp),%rdx
  nopl   0x0(%rax,%rax,1)
L1620:
  mov    (%r11,%rdx,8),%rax
  add    $0x1,%rdx
  lea    (%rax,%rbx,1),%rcx
  add    %r14,%rax
  movsd  (%rcx),%xmm0
  movsd  (%rax),%xmm1
  mulsd  %xmm3,%xmm1
  movapd %xmm0,%xmm9
  mulsd  %xmm8,%xmm9
  addsd  %xmm9,%xmm1
  movapd %xmm1,%xmm9
  subsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm9
  movsd  %xmm0,(%rcx)
  movsd  (%rax),%xmm0
  subsd  %xmm9,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %edx,%r15d
  jge    L1620
  add    $0x1,%r12d
  cmp    %r12d,%ebp
  jge    L1361
  jmp    L404
L1928:
  movapd %xmm1,%xmm3
  movapd %xmm2,%xmm0
  movsd  0x10(%rsp),%xmm6
  mulsd  %xmm1,%xmm3
  mulsd  %xmm2,%xmm0
  addsd  %xmm3,%xmm0
  movapd %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  addsd  %xmm3,%xmm0
  ucomisd %xmm0,%xmm6
  ja     L1049
  sqrtsd %xmm0,%xmm0
L27:
  mov    $0x2,%eax
  mov    %r11,0x1e0(%rsp)
  mov    %rsi,0x30(%rsp)
  movaps %xmm7,0x60(%rsp)
  movsd  %xmm4,0x50(%rsp)
  movsd  %xmm2,0x40(%rsp)
  movsd  %xmm1,(%rsp)
  call   <D_sign@plt>
  mov    0x8(%rsp),%ecx
  pxor   %xmm5,%xmm5
  cmp    %ecx,0xd8(%rsp)
  cvtsi2sd %eax,%xmm5
  movsd  (%rsp),%xmm1
  mov    0x30(%rsp),%rsi
  movsd  0x40(%rsp),%xmm2
  movsd  0x50(%rsp),%xmm4
  mov    0x1e0(%rsp),%r11
  movapd 0x60(%rsp),%xmm7
  je     L1909
  mov    0x8(%r13,%rsi,1),%rax
  add    %rsi,%rax
  movsd  (%rax),%xmm0
  xorpd  D241(%rip),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L1909
  nopl   0x0(%rax,%rax,1)
L1689:
  cmp    %ecx,0x24(%rsp)
  jle    L1268
  mov    0x8(%r15,%rbp,1),%rcx
  mov    0x10(%r15,%rbp,1),%rdx
  mov    0xe0(%rsp),%rsi
  mov    0xf0(%rsp),%r9
  lea    (%rdx,%rsi,1),%rax
  lea    (%rdx,%r9,1),%rdi
  add    %rcx,%rsi
  cmp    %rdi,%rsi
  lea    (%rcx,%r9,1),%rdi
  setae  %r8b
  cmp    %rdi,%rax
  setae  %dil
  or     %r8b,%dil
  je     L119
  mov    0x24(%rsp),%r9d
  cmp    %r9d,0x18(%rsp)
  je     L119
  movapd %xmm2,%xmm12
  movapd %xmm3,%xmm11
  movapd %xmm8,%xmm10
  mov    0x120(%rsp),%rdi
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  unpcklpd %xmm10,%xmm10
  lea    0x10(%rdi,%rax,1),%rdi
  nopl   (%rax)
L1802:
  movupd (%rax),%xmm0
  movupd (%rsi),%xmm1
  add    $0x10,%rax
  add    $0x10,%rsi
  movapd %xmm11,%xmm9
  mulpd  %xmm12,%xmm0
  addpd  %xmm1,%xmm0
  mulpd  %xmm0,%xmm9
  mulpd  %xmm10,%xmm0
  subpd  %xmm9,%xmm1
  movups %xmm1,-0x10(%rsi)
  movupd -0x10(%rax),%xmm1
  subpd  %xmm0,%xmm1
  movups %xmm1,-0x10(%rax)
  cmp    %rax,%rdi
  jne    L1802
  mov    0x110(%rsp),%esi
  cmp    %esi,0x108(%rsp)
  je     L1268
  mov    0xb0(%rsp),%rax
  movapd %xmm3,%xmm9
  add    %rax,%rdx
  add    %rax,%rcx
  movsd  (%rdx),%xmm0
  movsd  (%rcx),%xmm1
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mulsd  %xmm0,%xmm9
  mulsd  %xmm8,%xmm0
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rcx)
  movsd  (%rdx),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx)
L1268:
  mov    (%rsp),%eax
  mov    0x18(%rsp),%ecx
  lea    0x2(%rax),%edx
  add    $0x3,%eax
  cmp    %edx,%ecx
  cmovle %ecx,%eax
  test   %eax,%eax
  js     L464
  mov    0xc0(%rsp),%rcx
  cltq
  mov    %r15,%rdx
  lea    (%rcx,%rax,8),%rsi
  nopl   0x0(%rax)
L256:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%r13,1),%rcx
  add    %rbx,%rax
  movsd  (%rcx),%xmm1
  movsd  (%rax),%xmm0
  mulsd  %xmm8,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm3,%xmm9
  addsd  %xmm9,%xmm0
  subsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm0
  movsd  %xmm1,(%rcx)
  movsd  (%rax),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %rdx,%rsi
  jne    L256
L464:
  mov    0x58(%rsp),%rdx
  mov    0xd0(%rsp),%esi
  nopl   0x0(%rax,%rax,1)
L629:
  mov    (%r12,%rdx,8),%rax
  add    $0x1,%rdx
  lea    (%rax,%r13,1),%rcx
  add    %rbx,%rax
  movsd  (%rcx),%xmm0
  movsd  (%rax),%xmm1
  mulsd  %xmm8,%xmm1
  movapd %xmm0,%xmm9
  mulsd  %xmm3,%xmm9
  addsd  %xmm9,%xmm1
  movapd %xmm2,%xmm9
  subsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm9
  movsd  %xmm0,(%rcx)
  movsd  (%rax),%xmm0
  subsd  %xmm9,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %edx,%esi
  jge    L629
  jmp    L1034
  nopl   0x0(%rax,%rax,1)
L822:
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm0
  movsd  0x10(%rsp),%xmm6
  mulsd  %xmm2,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  movapd %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  addsd  %xmm3,%xmm0
  ucomisd %xmm0,%xmm6
  ja     L590
  sqrtsd %xmm0,%xmm0
L763:
  mov    $0x2,%eax
  movaps %xmm7,0x80(%rsp)
  movsd  %xmm4,0x70(%rsp)
  movsd  %xmm2,0x60(%rsp)
  movsd  %xmm1,0x50(%rsp)
  call   <D_sign@plt>
  mov    0x8(%rsp),%ecx
  pxor   %xmm5,%xmm5
  cmp    %ecx,0xd8(%rsp)
  cvtsi2sd %eax,%xmm5
  movsd  0x50(%rsp),%xmm1
  movsd  0x60(%rsp),%xmm2
  movapd 0x80(%rsp),%xmm7
  movsd  0x70(%rsp),%xmm4
  je     L245
  mov    0x8(%r15,%rbp,1),%rax
  add    %rbp,%rax
  movsd  (%rax),%xmm0
  xorpd  D241(%rip),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L245
  nopl   0x0(%rax)
L1837:
  mov    %r8d,%edx
  add    $0x8,%rax
  cmp    %r8d,%edi
  jne    L1773
  jmp    L1340
  nopl   (%rax)
L1102:
  mov    %ebx,%r12d
  jmp    L1618
  nopl   0x0(%rax,%rax,1)
L1662:
  mov    0x24(%rsp),%edi
  mov    %r14,%rsi
  nopw   0x0(%rax,%rax,1)
L48:
  movsd  (%rax,%rsi,8),%xmm0
  movsd  (%r8,%rsi,8),%xmm9
  movsd  (%rdx,%rsi,8),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm4,%xmm9
  addsd  %xmm1,%xmm0
  addsd  %xmm9,%xmm0
  movapd %xmm3,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm1
  movapd %xmm8,%xmm9
  mulsd  %xmm0,%xmm9
  mulsd  %xmm6,%xmm0
  movsd  %xmm1,(%rdx,%rsi,8)
  movsd  (%rax,%rsi,8),%xmm1
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rax,%rsi,8)
  movsd  (%r8,%rsi,8),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%r8,%rsi,8)
  add    $0x1,%rsi
  cmp    %esi,%edi
  jg     L48
  jmp    L1539
L1849:
  mov    %ecx,0xd8(%rsp)
  movsd  0x0(%rbp),%xmm3
  jmp    L1039
L977:
  mov    %ecx,0x8(%rsp)
  lea    0x2(%rcx),%esi
  jmp    L693
L1851:
  add    $0x1,%ecx
  mov    %edx,0x8(%rsp)
  mov    %ecx,%esi
  jmp    L693
L1608:
  mov    0x178(%rsp),%rax
  mov    0x170(%rsp),%rdi
  movsd  0x150(%rsp),%xmm5
  addsd  %xmm3,%xmm5
  movsd  %xmm5,0x150(%rsp)
  nopl   0x0(%rax)
L92:
  mov    (%r15,%rax,1),%rsi
  add    %rax,%rsi
  add    $0x8,%rax
  movsd  (%rsi),%xmm0
  subsd  %xmm3,%xmm0
  movsd  %xmm0,(%rsi)
  cmp    %rax,%rdi
  jne    L92
  mov    0x168(%rsp),%rax
  movsd  (%rcx),%xmm0
  movsd  D72(%rip),%xmm3
  movsd  D188(%rip),%xmm9
  movsd  (%rdx,%rax,1),%xmm5
  andpd  %xmm7,%xmm0
  andpd  %xmm7,%xmm5
  addsd  %xmm0,%xmm5
  mulsd  %xmm5,%xmm3
  mulsd  %xmm5,%xmm9
  movapd %xmm3,%xmm10
  mulsd  %xmm5,%xmm9
  jmp    L982
L119:
  mov    0x158(%rsp),%rax
  mov    0x24(%rsp),%esi
  cs nopw 0x0(%rax,%rax,1)
L837:
  movsd  (%rdx,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  movapd %xmm3,%xmm9
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mulsd  %xmm0,%xmm9
  mulsd  %xmm8,%xmm0
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rcx,%rax,8)
  movsd  (%rdx,%rax,8),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%esi
  jg     L837
  jmp    L1268
L205:
  mov    0x158(%rsp),%rax
  mov    0x24(%rsp),%esi
  nopw   0x0(%rax,%rax,1)
L1929:
  movsd  (%rdx,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm9
  mulsd  %xmm8,%xmm9
  mulsd  %xmm3,%xmm0
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rcx,%rax,8)
  movsd  (%rdx,%rax,8),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%esi
  jg     L1929
  jmp    L1176
L849:
  mov    (%r14,%rdi,8),%rax
  movsd  (%rax,%rdi,8),%xmm1
  mov    0x160(%rsp),%rax
  movsd  %xmm1,(%rax,%rdi,8)
  movq   $0x0,0x0(%r13,%rdi,8)
  jmp    L225
L1762:
  movsd  0x0(%rbp),%xmm3
  mov    %r11,%r14
L306:
  mov    0x188(%rsp),%rax
  mov    0x160(%rsp),%rbx
  addsd  0x150(%rsp),%xmm3
  movsd  %xmm3,0x0(%rbp)
  movsd  %xmm3,(%rbx,%rax,8)
  mov    0x180(%rsp),%rbx
  movq   $0x0,(%rbx,%rax,8)
  mov    0x28(%rsp),%eax
  mov    %eax,0x18(%rsp)
L624:
  mov    0x138(%rsp),%ebx
  cmp    %ebx,0x18(%rsp)
  jl     L754
  mov    %r12d,0xf8(%rsp)
  jmp    L85
L1061:
  mov    0x18(%rsp),%esi
  lea    D125(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L1642:
  mov    0x18(%rsp),%eax
  add    $0x1a8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1697:
  mov    %ecx,0x8(%rsp)
  mov    0x18(%rsp),%esi
  jmp    L606
L64:
  movapd %xmm10,%xmm1
  movsd  0x10(%rsp),%xmm6
  mov    %r11,%r14
  subsd  %xmm3,%xmm1
  mulsd  D60(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm9,%xmm2
  movapd %xmm2,%xmm0
  andpd  %xmm7,%xmm0
  ucomisd %xmm0,%xmm6
  ja     L1405
  movapd %xmm0,%xmm6
  sqrtsd %xmm6,%xmm6
L105:
  mov    0x160(%rsp),%rax
  mov    0xe0(%rsp),%rcx
  movsd  0x150(%rsp),%xmm0
  mov    %rax,%r13
  add    0x100(%rsp),%rax
  addsd  %xmm0,%xmm3
  addsd  %xmm0,%xmm10
  add    %rcx,%r13
  movsd  D32(%rip),%xmm0
  movsd  %xmm3,0x0(%rbp)
  mov    %rax,%rbp
  movsd  %xmm10,(%rbx)
  mov    0x180(%rsp),%rbx
  add    %rcx,%rbx
  comisd %xmm0,%xmm2
  jae    L1299
  addsd  %xmm1,%xmm3
  movapd %xmm6,%xmm0
  unpcklpd %xmm3,%xmm3
  movups %xmm3,0x0(%r13)
  movapd %xmm6,%xmm3
  xorpd  D241(%rip),%xmm3
  unpcklpd %xmm3,%xmm0
  movups %xmm0,(%rbx)
L816:
  mov    0x13c(%rsp),%eax
  mov    %eax,0x18(%rsp)
  jmp    L624
L1299:
  movapd %xmm6,%xmm0
  mov    $0x2,%eax
  movsd  %xmm8,0x50(%rsp)
  movaps %xmm7,0x40(%rsp)
  movsd  %xmm9,0x30(%rsp)
  movsd  %xmm3,0x8(%rsp)
  movsd  %xmm1,(%rsp)
  call   <D_sign@plt>
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm1
  movsd  0x8(%rsp),%xmm3
  cvtsi2sd %eax,%xmm0
  movapd 0x40(%rsp),%xmm7
  movsd  0x50(%rsp),%xmm8
  movsd  0x30(%rsp),%xmm9
  addsd  %xmm1,%xmm0
  movapd %xmm3,%xmm1
  movapd %xmm0,%xmm2
  addsd  %xmm0,%xmm1
  andpd  %xmm7,%xmm2
  comisd %xmm8,%xmm2
  movsd  %xmm1,0x0(%r13)
  ja     L558
  movsd  %xmm1,0x0(%rbp)
L315:
  mov    0x148(%rsp),%rax
  pxor   %xmm1,%xmm1
  movsd  0x10(%rsp),%xmm6
  movups %xmm1,(%rbx)
  mov    (%rax),%rbx
  mov    0x100(%rsp),%rax
  movsd  -0x8(%rbx,%rax,1),%xmm1
  movapd %xmm1,%xmm5
  andpd  %xmm7,%xmm5
  addsd  %xmm2,%xmm5
  movapd %xmm0,%xmm2
  divsd  %xmm5,%xmm1
  divsd  %xmm5,%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm2,%xmm3
  mulsd  %xmm2,%xmm3
  addsd  %xmm3,%xmm0
  ucomisd %xmm0,%xmm6
  ja     L1516
  movapd %xmm0,%xmm4
  sqrtsd %xmm4,%xmm4
L1235:
  divsd  %xmm4,%xmm1
  mov    0x28(%rsp),%ecx
  divsd  %xmm4,%xmm2
  cmp    %ecx,0x24(%rsp)
  jle    L1439
  mov    0x130(%rsp),%rax
  mov    0xf0(%rsp),%r9
  mov    (%rax),%rcx
  mov    0xe0(%rsp),%rax
  lea    (%rcx,%rax,1),%rdi
  lea    (%rbx,%rax,1),%rsi
  lea    (%rcx,%r9,1),%rax
  cmp    %rax,%rsi
  lea    (%rbx,%r9,1),%rax
  setae  %dl
  cmp    %rax,%rdi
  setae  %al
  or     %dl,%al
  je     L566
  mov    0x24(%rsp),%edx
  cmp    %edx,0x18(%rsp)
  je     L566
  mov    %rsi,%rax
  movapd %xmm2,%xmm9
  movapd %xmm1,%xmm6
  mov    %rdi,%rdx
  mov    0x120(%rsp),%rsi
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm6,%xmm6
  lea    0x10(%rax,%rsi,1),%rsi
L195:
  movupd (%rdx),%xmm3
  movupd (%rax),%xmm0
  add    $0x10,%rax
  add    $0x10,%rdx
  movapd %xmm9,%xmm10
  mulpd  %xmm3,%xmm10
  mulpd  %xmm6,%xmm0
  mulpd  %xmm6,%xmm3
  addpd  %xmm10,%xmm0
  movups %xmm0,-0x10(%rdx)
  movupd -0x10(%rax),%xmm0
  mulpd  %xmm9,%xmm0
  subpd  %xmm3,%xmm0
  movups %xmm0,-0x10(%rax)
  cmp    %rax,%rsi
  jne    L195
  mov    0x110(%rsp),%esi
  cmp    %esi,0x108(%rsp)
  je     L1439
  movslq 0x19c(%rsp),%rax
  movapd %xmm2,%xmm6
  shl    $0x3,%rax
  lea    (%rcx,%rax,1),%rdx
  add    %rbx,%rax
  movsd  (%rdx),%xmm0
  movsd  (%rax),%xmm3
  mulsd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm6,%xmm3
  movsd  %xmm3,(%rdx)
  movsd  (%rax),%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rax)
L1439:
  mov    0x18(%rsp),%eax
  test   %eax,%eax
  js     L1164
  mov    0x18(%rsp),%eax
  mov    %r15,%rdx
  lea    0x8(%r15,%rax,8),%rcx
L539:
  mov    (%rdx),%rax
  mov    0xe0(%rsp),%rbx
  movapd %xmm2,%xmm6
  add    $0x8,%rdx
  lea    (%rax,%rbx,1),%rsi
  add    0x100(%rsp),%rax
  movsd  (%rsi),%xmm0
  movsd  (%rax),%xmm3
  mulsd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm6,%xmm3
  movsd  %xmm3,(%rsi)
  movsd  (%rax),%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rax)
  cmp    %rcx,%rdx
  jne    L539
L1164:
  mov    0x58(%rsp),%rdx
L607:
  mov    (%r14,%rdx,8),%rax
  mov    0xe0(%rsp),%rbx
  movapd %xmm2,%xmm3
  add    $0x1,%rdx
  lea    (%rax,%rbx,1),%rcx
  add    0x100(%rsp),%rax
  movsd  (%rcx),%xmm6
  movsd  (%rax),%xmm0
  mulsd  %xmm6,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  movapd %xmm1,%xmm3
  mulsd  %xmm6,%xmm3
  movsd  %xmm0,(%rcx)
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  subsd  %xmm3,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %edx,0xd0(%rsp)
  jge    L607
  jmp    L816
L174:
  cmp    0x138(%rsp),%edx
  jl     L218
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0x10(%rsp)
  movsd  %xmm7,0x128(%rsp)
  movq   D138(%rip),%xmm7
  jmp    L942
L1201:
  mov    0x8(%rsp),%ebx
  cmp    %ebx,0x138(%rsp)
  jg     L218
  mov    0x138(%rsp),%r12d
  cmp    %r12d,%r10d
  jl     L218
  mov    %r10d,%eax
  movslq %r12d,%r8
  movslq 0x8(%rsp),%rcx
  mov    0x60(%rsp),%r13d
  sub    %r12d,%eax
  movsd  0x10(%rsp),%xmm2
  lea    -0x1(%r12),%ebx
  lea    (%r15,%r8,8),%r9
  add    %r8,%rax
  shl    $0x3,%rcx
  lea    0x8(%r15,%rax,8),%r11
L1915:
  cmp    %r10d,%r13d
  mov    %r10d,%edi
  mov    %r9,%rbp
  cmovle %r13d,%edi
L1673:
  mov    0x0(%rbp),%rsi
  mov    %r8,%rax
  movapd %xmm2,%xmm1
  cmp    %edi,%r12d
  jg     L1547
  nopl   0x0(%rax)
L208:
  mov    (%r14,%rax,8),%rdx
  movsd  (%rdx,%rcx,1),%xmm0
  mulsd  (%rsi,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm1
  cmp    %eax,%edi
  jge    L208
L1547:
  add    $0x8,%rbp
  movsd  %xmm1,(%rsi,%rcx,1)
  cmp    %rbp,%r11
  jne    L1673
  sub    $0x1,%r13d
  sub    $0x8,%rcx
  cmp    %ebx,%r13d
  jne    L1915
L218:
  movl   $0x0,0x18(%rsp)
  jmp    L1642
L1331:
  movaps %xmm7,0x90(%rsp)
  movsd  %xmm4,0x80(%rsp)
  movsd  %xmm2,0x70(%rsp)
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm3,0x50(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm2
  movapd 0x90(%rsp),%xmm7
  movsd  0x80(%rsp),%xmm4
  movsd  0x60(%rsp),%xmm1
  movsd  0x50(%rsp),%xmm3
  jmp    L506
L1863:
  mov    %r11,0x1e0(%rsp)
  mov    %rsi,(%rsp)
  movaps %xmm7,0x70(%rsp)
  movsd  %xmm4,0x60(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm1,0x40(%rsp)
  movsd  %xmm3,0x30(%rsp)
  call   <sqrt@plt>
  movapd 0x70(%rsp),%xmm7
  mov    (%rsp),%rsi
  mov    0x1e0(%rsp),%r11
  movsd  0x60(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm2
  movsd  0x40(%rsp),%xmm1
  movsd  0x30(%rsp),%xmm3
  jmp    L1565
L754:
  mov    %r14,0x1e0(%rsp)
  mov    0xd0(%rsp),%r10d
  mov    %r15,%r14
  movsd  0x128(%rsp),%xmm0
  mov    0x1e0(%rsp),%r15
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm8
  ja     L218
  mov    0x24(%rsp),%eax
  sub    $0x1,%eax
  mov    %eax,0x8(%rsp)
  mov    %eax,0x60(%rsp)
  js     L591
L1408:
  mov    0x24(%rsp),%eax
  movslq 0x8(%rsp),%r12
  mov    %r10d,0x70(%rsp)
  movapd %xmm6,%xmm14
  movsd  D32(%rip),%xmm2
  movsd  %xmm5,0x18(%rsp)
  movapd %xmm8,%xmm13
  sub    $0x2,%eax
  mov    %r15,0x1e0(%rsp)
  movsd  %xmm2,0x90(%rsp)
  movslq %eax,%r13
  mov    %r13,%r8
  mov    %r12,%r13
  jmp    L1243
L571:
  mov    (%r14,%r8,8),%rdi
  mov    (%r14,%r13,8),%rax
  lea    0x0(,%r8,8),%rbp
  lea    (%rdi,%rbx,1),%rsi
  lea    (%rax,%rbp,1),%rcx
  add    %rbp,%rdi
  movsd  (%rcx),%xmm0
  movsd  (%rsi),%xmm1
  movapd %xmm0,%xmm3
  movapd %xmm1,%xmm2
  andpd  %xmm7,%xmm3
  andpd  %xmm7,%xmm2
  comisd %xmm2,%xmm3
  jbe    L1005
  movapd %xmm8,%xmm1
  add    %rbx,%rax
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdi)
  movsd  (%rax),%xmm0
  subsd  %xmm6,%xmm0
  movq   D241(%rip),%xmm6
  movaps %xmm6,0x30(%rsp)
  xorpd  %xmm6,%xmm0
  divsd  (%rcx),%xmm0
  movsd  %xmm0,(%rsi)
L39:
  movsd  D79(%rip),%xmm6
  mov    %r13d,%r15d
  movq   $0x0,(%rcx)
  movsd  %xmm6,0x58(%rsp)
  movsd  %xmm6,(%rax)
  sub    $0x2,%r15d
  jns    L1725
L795:
  test   %r8d,%r8d
  js     L1528
L1025:
  sub    $0x1,%r13
  sub    $0x1,%r8
L1243:
  mov    0x160(%rsp),%rax
  mov    %r13d,%r10d
  movslq %r8d,%r12
  mov    %r8d,%r9d
  mov    %r13d,0xb0(%rsp)
  lea    0x0(,%r13,8),%rbx
  movsd  0x90(%rsp),%xmm5
  movsd  (%rax,%r13,8),%xmm6
  mov    0x180(%rsp),%rax
  movsd  (%rax,%r13,8),%xmm8
  movsd  %xmm6,(%rsp)
  comisd %xmm8,%xmm5
  ja     L571
  andpd  %xmm7,%xmm8
  comisd %xmm8,%xmm13
  jbe    L795
  movsd  D79(%rip),%xmm6
  mov    (%r14,%r13,8),%rax
  movsd  %xmm6,0x58(%rsp)
  movsd  %xmm6,(%rax,%rbx,1)
  cmp    $0xffffffff,%r12d
  je     L1528
  movsd  0x18(%rsp),%xmm3
  mov    %r13d,%r11d
  mov    %r13d,%edi
  lea    0x10(%r14),%rdx
  movsd  0x128(%rsp),%xmm2
  mov    0x160(%rsp),%rbp
  lea    0x0(,%r12,8),%r9
  movsd  0x10(%rsp),%xmm5
L204:
  mov    (%r14,%r9,1),%rcx
  mov    %r12d,%esi
  movsd  (%rcx,%r9,1),%xmm1
  subsd  (%rsp),%xmm1
  cmp    %r13d,%r10d
  jg     L984
  movslq %r10d,%rax
  movapd %xmm5,%xmm4
L115:
  mov    (%r14,%rax,8),%r15
  movsd  (%r15,%rbx,1),%xmm0
  mulsd  (%rcx,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm4
  cmp    %eax,%edi
  jge    L115
L219:
  mov    0x180(%rsp),%rax
  movsd  (%rax,%r9,1),%xmm10
  comisd %xmm10,%xmm5
  ja     L180
  movapd %xmm10,%xmm0
  lea    (%rcx,%rbx,1),%rax
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm13
  jbe    L108
  movapd %xmm1,%xmm0
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm13
  ja     L189
L1420:
  movapd %xmm4,%xmm0
  xorpd  D241(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L1191:
  movapd %xmm0,%xmm1
  andpd  %xmm7,%xmm1
  comisd %xmm13,%xmm1
  jbe    L1054
  movsd  0x58(%rsp),%xmm6
  divsd  %xmm1,%xmm6
  addsd  %xmm1,%xmm6
  comisd %xmm6,%xmm1
  jae    L1786
L1054:
  mov    %esi,%r10d
L37:
  sub    $0x1,%r12
  sub    $0x8,%r9
  sub    $0x1,%r11d
  cmp    $0xffffffff,%r12d
  jne    L204
  movsd  %xmm3,0x18(%rsp)
  jmp    L1025
L108:
  movsd  0x8(%rcx,%r9,1),%xmm8
  movapd %xmm4,%xmm11
  mov    0x8(%r14,%r9,1),%rcx
  movsd  0x0(%rbp,%r9,1),%xmm6
  subsd  (%rsp),%xmm6
  mulsd  %xmm10,%xmm10
  mulsd  %xmm14,%xmm11
  movapd %xmm8,%xmm0
  movsd  (%rcx,%r9,1),%xmm9
  add    %rbx,%rcx
  mulsd  %xmm3,%xmm0
  mulsd  %xmm6,%xmm6
  subsd  %xmm11,%xmm0
  addsd  %xmm10,%xmm6
  movapd %xmm8,%xmm10
  andpd  %xmm7,%xmm10
  divsd  %xmm6,%xmm0
  movapd %xmm14,%xmm6
  andpd  %xmm7,%xmm6
  comisd %xmm6,%xmm10
  movsd  %xmm0,(%rax)
  jbe    L669
  mulsd  %xmm1,%xmm0
  movapd %xmm4,%xmm6
  xorpd  D241(%rip),%xmm6
  subsd  %xmm0,%xmm6
  movapd %xmm6,%xmm1
  divsd  %xmm8,%xmm1
  movsd  %xmm1,(%rcx)
  movsd  (%rax),%xmm0
  jmp    L1191
L180:
  movapd %xmm1,%xmm14
  movapd %xmm4,%xmm3
  jmp    L37
L669:
  mulsd  %xmm0,%xmm9
  movapd %xmm3,%xmm1
  xorpd  D241(%rip),%xmm1
  subsd  %xmm9,%xmm1
  movapd %xmm1,%xmm0
  divsd  %xmm14,%xmm0
  movsd  %xmm0,(%rcx)
  movsd  (%rax),%xmm0
  jmp    L1191
L1725:
  mov    %r8,0xa0(%rsp)
  movslq %r15d,%r15
  mov    %r13,0x80(%rsp)
  mov    %r12d,%r13d
  movsd  %xmm4,0x40(%rsp)
  movsd  %xmm13,0x50(%rsp)
L656:
  mov    (%r14,%r15,8),%r10
  mov    0x80(%rsp),%rax
  mov    %r15d,0x28(%rsp)
  lea    0x0(,%r15,8),%r11
  movsd  (%r10,%r15,8),%xmm6
  mov    %eax,%r12d
  subsd  (%rsp),%xmm6
  cmp    %eax,%r9d
  jg     L137
  pxor   %xmm5,%xmm5
  movslq %r9d,%rax
  movapd %xmm5,%xmm4
  xchg   %ax,%ax
L1378:
  mov    (%r14,%rax,8),%rdx
  movsd  (%r10,%rax,8),%xmm0
  add    $0x1,%rax
  movsd  (%rdx,%rbp,1),%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  (%rdx,%rbx,1),%xmm0
  addsd  %xmm1,%xmm4
  addsd  %xmm0,%xmm5
  cmp    %eax,%r12d
  jge    L1378
L466:
  mov    0x180(%rsp),%rax
  movsd  0x10(%rsp),%xmm2
  movsd  (%rax,%r15,8),%xmm0
  comisd %xmm0,%xmm2
  ja     L463
  movsd  0x50(%rsp),%xmm2
  movapd %xmm0,%xmm1
  lea    (%r10,%rbx,1),%rsi
  lea    (%r10,%rbp,1),%rdi
  andpd  %xmm7,%xmm1
  comisd %xmm1,%xmm2
  ja     L1484
  mov    0x8(%r14,%r15,8),%rax
  movapd %xmm2,%xmm1
  movsd  0x8(%r10,%r11,1),%xmm10
  movapd %xmm14,%xmm11
  mulsd  %xmm0,%xmm0
  movapd %xmm8,%xmm13
  andpd  %xmm7,%xmm11
  movsd  (%rax,%r11,1),%xmm9
  movapd %xmm10,%xmm12
  andpd  %xmm7,%xmm13
  mov    0x160(%rsp),%rax
  andpd  %xmm7,%xmm12
  movsd  (%rax,%r15,8),%xmm3
  subsd  (%rsp),%xmm3
  movapd %xmm3,%xmm2
  mulsd  %xmm3,%xmm2
  addsd  %xmm3,%xmm3
  mulsd  %xmm8,%xmm3
  addsd  %xmm0,%xmm2
  movapd %xmm8,%xmm0
  mulsd  %xmm8,%xmm0
  subsd  %xmm0,%xmm2
  movapd %xmm2,%xmm0
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm1
  jbe    L1170
  movapd %xmm3,%xmm0
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm1
  ja     L1336
L1170:
  movsd  0x18(%rsp),%xmm1
  movapd %xmm5,%xmm0
  movapd %xmm4,%xmm15
  mov    $0x4,%eax
  mulsd  %xmm14,%xmm0
  movaps %xmm7,0x110(%rsp)
  movsd  %xmm13,0x108(%rsp)
  mulsd  %xmm10,%xmm1
  movsd  %xmm11,0x100(%rsp)
  mulsd  %xmm14,%xmm15
  movsd  %xmm12,0xf8(%rsp)
  movsd  %xmm9,0xf0(%rsp)
  movsd  %xmm14,0xe0(%rsp)
  movsd  %xmm8,0xd0(%rsp)
  subsd  %xmm0,%xmm1
  movsd  0x40(%rsp),%xmm0
  movsd  %xmm6,0xe8(%rsp)
  movsd  %xmm10,0xd8(%rsp)
  mulsd  %xmm10,%xmm0
  movsd  %xmm5,0xc0(%rsp)
  movsd  %xmm4,0xb8(%rsp)
  subsd  %xmm15,%xmm0
  movapd %xmm8,%xmm15
  mulsd  %xmm5,%xmm15
  addsd  %xmm15,%xmm0
  movapd %xmm8,%xmm15
  mulsd  %xmm4,%xmm15
  subsd  %xmm15,%xmm1
  call   <CDiv@plt>
  movsd  0x100(%rsp),%xmm11
  movsd  0x108(%rsp),%xmm13
  movsd  0xf8(%rsp),%xmm12
  movsd  0xd0(%rsp),%xmm8
  movsd  0xe0(%rsp),%xmm14
  addsd  %xmm13,%xmm11
  movsd  0xf0(%rsp),%xmm9
  movapd 0x110(%rsp),%xmm7
  comisd %xmm11,%xmm12
  jbe    L329
  mov    (%r14,%r15,8),%rax
  movapd 0x30(%rsp),%xmm2
  movsd  0xe8(%rsp),%xmm6
  mov    0x8(%r14,%r15,8),%r9
  lea    (%rax,%rbp,1),%rdi
  lea    (%rax,%rbx,1),%rsi
  movsd  0xb8(%rsp),%xmm4
  movsd  0xd8(%rsp),%xmm10
  movsd  0xc0(%rsp),%xmm5
  movsd  (%rdi),%xmm0
  xorpd  %xmm2,%xmm4
  mulsd  %xmm6,%xmm0
  xorpd  %xmm2,%xmm5
  subsd  %xmm0,%xmm4
  movsd  (%rsi),%xmm0
  mulsd  %xmm8,%xmm0
  addsd  %xmm0,%xmm4
  movapd %xmm5,%xmm0
  divsd  %xmm10,%xmm4
  movsd  %xmm4,(%r9,%rbp,1)
  mulsd  (%rsi),%xmm6
  movsd  (%rdi),%xmm1
  mulsd  %xmm8,%xmm1
  subsd  %xmm6,%xmm0
  subsd  %xmm1,%xmm0
  divsd  %xmm10,%xmm0
  movsd  %xmm0,(%r9,%rbx,1)
L1047:
  movsd  (%rdi),%xmm1
  movsd  (%rsi),%xmm2
  movapd %xmm1,%xmm0
  andpd  %xmm7,%xmm2
  andpd  %xmm7,%xmm0
  maxsd  %xmm2,%xmm0
  comisd 0x50(%rsp),%xmm0
  jbe    L1721
  movsd  0x58(%rsp),%xmm2
  divsd  %xmm0,%xmm2
  addsd  %xmm0,%xmm2
  comisd %xmm2,%xmm0
  jae    L832
L1721:
  mov    0x28(%rsp),%r9d
L427:
  sub    $0x1,%r15
  sub    $0x1,%r13d
  cmp    $0xffffffff,%r15d
  jne    L656
  movsd  0x40(%rsp),%xmm4
  mov    0x80(%rsp),%r13
  mov    0xa0(%rsp),%r8
  movsd  0x50(%rsp),%xmm13
  jmp    L795
L463:
  movapd %xmm6,%xmm14
  movsd  %xmm5,0x18(%rsp)
  movsd  %xmm4,0x40(%rsp)
  jmp    L427
L1484:
  movapd %xmm8,%xmm3
  movapd %xmm6,%xmm2
  mov    $0x4,%eax
  movaps %xmm7,0xc0(%rsp)
  movsd  %xmm14,0xd0(%rsp)
  movapd 0x30(%rsp),%xmm7
  movsd  %xmm8,0xb8(%rsp)
  xorpd  %xmm7,%xmm5
  xorpd  %xmm7,%xmm4
  movapd %xmm5,%xmm1
  movapd %xmm4,%xmm0
  call   <CDiv@plt>
  mov    (%r14,%r15,8),%rax
  movsd  0xb8(%rsp),%xmm8
  movsd  0xd0(%rsp),%xmm14
  movapd 0xc0(%rsp),%xmm7
  lea    (%rax,%rbp,1),%rdi
  lea    (%rax,%rbx,1),%rsi
  jmp    L1047
L329:
  mov    (%r14,%r15,8),%rax
  movsd  0x18(%rsp),%xmm1
  movaps %xmm7,0xc0(%rsp)
  movapd %xmm8,%xmm3
  movapd 0x30(%rsp),%xmm7
  movsd  0x40(%rsp),%xmm0
  movapd %xmm14,%xmm2
  movsd  %xmm8,0xd0(%rsp)
  movsd  (%rax,%rbx,1),%xmm4
  mov    0x8(%r14,%r15,8),%rdi
  movsd  %xmm14,0xb8(%rsp)
  xorpd  %xmm7,%xmm1
  xorpd  %xmm7,%xmm0
  mulsd  %xmm9,%xmm4
  lea    (%rdi,%rbx,1),%rsi
  add    %rbp,%rdi
  mulsd  (%rax,%rbp,1),%xmm9
  mov    $0x4,%eax
  subsd  %xmm4,%xmm1
  subsd  %xmm9,%xmm0
  call   <CDiv@plt>
  mov    (%r14,%r15,8),%rax
  movapd 0xc0(%rsp),%xmm7
  movsd  0xd0(%rsp),%xmm8
  movsd  0xb8(%rsp),%xmm14
  lea    (%rax,%rbp,1),%rdi
  lea    (%rax,%rbx,1),%rsi
  jmp    L1047
L832:
  cmp    %r15d,%r12d
  jl     L1721
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax,%rbp,1)
  add    %rbx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %r13d,%r12d
  jl     L1721
  movslq %r13d,%rax
  lea    (%r14,%rax,8),%rcx
  mov    0xb0(%rsp),%eax
  sub    %r13d,%eax
  add    %r15,%rax
  lea    0x10(%r14,%rax,8),%rsi
L751:
  mov    (%rcx),%rax
  add    $0x8,%rcx
  lea    (%rax,%rbp,1),%rdx
  add    %rbx,%rax
  movsd  (%rdx),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx)
  movsd  (%rax),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %rsi,%rcx
  jne    L751
  jmp    L1721
L984:
  movapd %xmm5,%xmm4
  jmp    L219
L1786:
  cmp    %r12d,%edi
  jl     L1054
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %r11d,%edi
  jl     L1054
  mov    0xb0(%rsp),%ecx
  movslq %r11d,%rax
  lea    (%r14,%rax,8),%rax
  sub    %r11d,%ecx
  add    %r12,%rcx
  lea    (%rdx,%rcx,8),%r10
L583:
  mov    (%rax),%rcx
  add    $0x8,%rax
  add    %rbx,%rcx
  movsd  (%rcx),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx)
  cmp    %r10,%rax
  jne    L583
  jmp    L1054
L137:
  pxor   %xmm5,%xmm5
  movapd %xmm5,%xmm4
  jmp    L466
L1336:
  movapd %xmm6,%xmm0
  movapd %xmm9,%xmm1
  andpd  %xmm7,%xmm0
  andpd  %xmm7,%xmm1
  addsd  %xmm13,%xmm0
  addsd  %xmm12,%xmm0
  addsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  mulsd  0x128(%rsp),%xmm0
  movapd %xmm0,%xmm2
L433:
  mulsd  D239(%rip),%xmm2
  movapd %xmm0,%xmm1
  addsd  %xmm2,%xmm1
  comisd %xmm0,%xmm1
  ja     L433
  jmp    L1170
L189:
  movapd %xmm2,%xmm1
L1428:
  mulsd  D239(%rip),%xmm1
  movapd %xmm1,%xmm0
  addsd  %xmm2,%xmm0
  comisd %xmm2,%xmm0
  ja     L1428
  jmp    L1420
L1005:
  movsd  (%rdi),%xmm2
  movaps %xmm7,0xa0(%rsp)
  subsd  (%rsp),%xmm2
  pxor   %xmm0,%xmm0
  movapd %xmm8,%xmm3
  movq   D241(%rip),%xmm7
  mov    $0x4,%eax
  mov    %r8,0x80(%rsp)
  mov    %r8d,0x40(%rsp)
  xorpd  %xmm7,%xmm1
  movsd  %xmm14,0x58(%rsp)
  movsd  %xmm13,0xb8(%rsp)
  movsd  %xmm4,0x50(%rsp)
  movaps %xmm7,0x30(%rsp)
  movsd  %xmm8,0x28(%rsp)
  call   <CDiv@plt>
  mov    (%r14,%r13,8),%rax
  mov    0x40(%rsp),%r9d
  movsd  0xb8(%rsp),%xmm13
  mov    0x80(%rsp),%r8
  lea    (%rax,%rbp,1),%rcx
  movsd  0x58(%rsp),%xmm14
  movsd  0x50(%rsp),%xmm4
  add    %rbx,%rax
  movapd 0xa0(%rsp),%xmm7
  movsd  0x28(%rsp),%xmm8
  jmp    L39
L1528:
  mov    0x70(%rsp),%r10d
  mov    0x1e0(%rsp),%r15
L591:
  mov    0x24(%rsp),%eax
  xor    %ebp,%ebp
  mov    $0x1,%r13d
  mov    %rax,%rbx
  mov    %rax,(%rsp)
  xor    %eax,%eax
  test   %ebx,%ebx
  jg     L548
  jmp    L1201
  cs nopw 0x0(%rax,%rax,1)
L41:
  cmp    %ebp,%r10d
  jl     L264
  lea    0x8(%rax),%rdi
L494:
  add    $0x1,%rbp
  mov    %rdi,%rax
  cmp    (%rsp),%rbp
  je     L1201
L548:
  mov    %ebp,%r11d
  mov    %ebp,%edx
  mov    %ebp,%ebx
  cmp    %ebp,0x138(%rsp)
  jle    L41
L264:
  mov    (%r14,%rax,1),%rsi
  mov    (%r15,%rax,1),%r8
  lea    0x8(%rax),%rdi
  mov    0x24(%rsp),%ecx
  lea    (%rsi,%rdi,1),%r12
  lea    (%r8,%rax,1),%r9
  sub    %r11d,%ecx
  cmp    %r12,%r9
  setne  %r12b
  cmp    %ebx,0x24(%rsp)
  setg   %bl
  test   %bl,%r12b
  je     L1714
  mov    0x8(%rsp),%ebx
  sub    %r11d,%ebx
  cmp    $0x2,%ebx
  jbe    L1714
  cmp    %edx,0x24(%rsp)
  cmovle %r13d,%ecx
  add    %rsi,%rax
  xor    %r11d,%r11d
  mov    %ecx,%ebx
  shr    %ebx
  shl    $0x4,%rbx
L352:
  movupd (%rax,%r11,1),%xmm7
  movups %xmm7,(%r9,%r11,1)
  add    $0x10,%r11
  cmp    %rbx,%r11
  jne    L352
  mov    %ecx,%r9d
  and    $0xfffffffe,%r9d
  lea    (%r9,%rdx,1),%eax
  cmp    %ecx,%r9d
  je     L494
  cltq
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,(%r8,%rax,8)
  jmp    L494
L558:
  divsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm3
  movsd  %xmm3,0x0(%rbp)
  jmp    L315
L888:
  movsd  D167(%rip),%xmm8
  andpd  %xmm7,%xmm0
  comisd %xmm0,%xmm8
  ja     L218
  mov    0x24(%rsp),%eax
  pxor   %xmm4,%xmm4
  movapd %xmm4,%xmm5
  movapd %xmm4,%xmm6
  sub    $0x1,%eax
  mov    %eax,0x8(%rsp)
  mov    %eax,0x60(%rsp)
  jmp    L1408
L1714:
  mov    %rbp,%rax
L821:
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,(%r8,%rax,8)
  add    $0x1,%rax
  cmp    %eax,0x24(%rsp)
  jg     L821
  jmp    L494
L1405:
  movsd  %xmm8,0x80(%rsp)
  movaps %xmm7,0x70(%rsp)
  movsd  %xmm5,0xb0(%rsp)
  movsd  %xmm4,0x60(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm1,0x40(%rsp)
  movsd  %xmm10,0x30(%rsp)
  movsd  %xmm9,0x8(%rsp)
  movsd  %xmm3,(%rsp)
  call   <sqrt@plt>
  movapd 0x70(%rsp),%xmm7
  movsd  (%rsp),%xmm3
  movsd  0x60(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm2
  movapd %xmm0,%xmm6
  movsd  0x80(%rsp),%xmm8
  movsd  0x40(%rsp),%xmm1
  movsd  0xb0(%rsp),%xmm5
  movsd  0x30(%rsp),%xmm10
  movsd  0x8(%rsp),%xmm9
  jmp    L105
L894:
  mov    %r11,%r14
  jmp    L306
  cs nopw 0x0(%rax,%rax,1)
L566:
  mov    0x158(%rsp),%rax
L55:
  movsd  (%rcx,%rax,8),%xmm0
  movsd  (%rbx,%rax,8),%xmm3
  movapd %xmm2,%xmm6
  mulsd  %xmm0,%xmm6
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm6,%xmm3
  movsd  %xmm3,(%rcx,%rax,8)
  movsd  (%rbx,%rax,8),%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,0x24(%rsp)
  jg     L55
  jmp    L1439
L1516:
  movsd  %xmm8,0x50(%rsp)
  movaps %xmm7,0x40(%rsp)
  movsd  %xmm5,0x30(%rsp)
  movsd  %xmm2,0x8(%rsp)
  movsd  %xmm1,(%rsp)
  call   <sqrt@plt>
  movapd 0x40(%rsp),%xmm7
  movsd  (%rsp),%xmm1
  movsd  0x30(%rsp),%xmm5
  movsd  0x50(%rsp),%xmm8
  movapd %xmm0,%xmm4
  movsd  0x8(%rsp),%xmm2
  jmp    L1235
  nopl   (%rax)
L590:
  movaps %xmm7,0x80(%rsp)
  movsd  %xmm4,0x70(%rsp)
  movsd  %xmm2,0x60(%rsp)
  movsd  %xmm1,0x50(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm4
  movapd 0x80(%rsp),%xmm7
  movsd  0x60(%rsp),%xmm2
  movsd  0x50(%rsp),%xmm1
  jmp    L763
L1049:
  mov    %r11,0x1e0(%rsp)
  mov    %rsi,(%rsp)
  movaps %xmm7,0x60(%rsp)
  movsd  %xmm4,0x50(%rsp)
  movsd  %xmm2,0x40(%rsp)
  movsd  %xmm1,0x30(%rsp)
  call   <sqrt@plt>
  movapd 0x60(%rsp),%xmm7
  mov    (%rsp),%rsi
  mov    0x1e0(%rsp),%r11
  movsd  0x50(%rsp),%xmm4
  movsd  0x40(%rsp),%xmm2
  movsd  0x30(%rsp),%xmm1
  jmp    L27
```

tool_calls: name: disassemble_data
arguments: tag: D191
type_guessed: qword[2]
name: disassemble_data
arguments: tag: D138
type_guessed: qword
name: disassemble_data
arguments: tag: D167
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D241
type_guessed: f32[4]
name: disassemble_data
arguments: tag: D72
type_guessed: f64
name: disassemble_data
arguments: tag: D188
type_guessed: f32[2]
name: disassemble_data
arguments: tag: D125
type_guessed: string
name: disassemble_data
arguments: tag: D60
type_guessed: f32[2]
name: disassemble_data
arguments: tag: D32
type_guessed: byte[8]
name: disassemble_data
arguments: tag: D79
type_guessed: f64
name: disassemble_data
arguments: tag: D239
type_guessed: byte[8]

tool: {"D191": [0x7fffffffffffffff,0x7fffffffffffffff]}

tool: D138: 9223372036854775807

tool: {"D167": [0xa0,0xc2,0xeb,0xfe,0x4b,0x48,0xb4,0x39]}

tool: {"D241": [0.0,-0.0,0.0,0.0]}

tool: D72: 0.75

tool: {"D188": [0.0,-1.71875]}

tool: D125: Error in Hqr2.  Eigenvalues have not converged.  Returning en=%i

tool: {"D60": [0.0,1.75]}

tool: {"D32": [0x11,0xea,0x2d,0x81,0x99,0x97,0x71,0xbd]}

tool: D79: 1

tool: {"D239": [0x7b,0x14,0xae,0x47,0xe1,0x7a,0x84,0x3f]}

assistant: ```c
int Hqr2(n, low, high, h, wr, wi, z)
int n, low, high;
double **h, *wr, *wi, **z;
{
  int i, j, k, l, m, na, en, notlas, mp2, itn, its, enm2, twoRoots;
  double norm, p, q, r, s, t, w, x, y, ra, sa, vi, vr, zz, tst1, tst2;
  p = q = r = s = w = y = zz = 0.0;
  norm = 0.0;
  k = 0;
  for (i = 0; i < n; i++) {
    for (j = k; j < n; j++)
      norm += fabs(h[i][j]);
    k = i;
    if ((i < low) || (i > high)) {
      wr[i] = h[i][i];
      wi[i] = 0.0;
    }
  }
  en = high;
  t = 0.0;
  itn = n * 30;
  while (en >= low) {
    its = 0;
    na = en - 1;
    enm2 = na - 1;
    twoRoots = 0;
    for (;;) {
      for (l = en; l > low; l--) {
        s = fabs(h[l - 1][l - 1]) + fabs(h[l][l]);
        if (fabs(s) < (1E-30))
          s = norm;
        tst1 = s;
        tst2 = tst1 + fabs(h[l][l - 1]);
        if (fabs(tst2 - tst1) < (1E-30))
          break;
      }
      x = h[en][en];
      if (l == en)
        break;
      y = h[na][na];
      w = h[en][na] * h[na][en];
      if (l == na) {
        twoRoots = 1;
        break;
      }
      if (itn == 0) {
        printf("Error in Hqr2.  Eigenvalues have not converged.  Returning en=%i", en);
        return en;
      }
      if ((its == 10) || (its == 20)) {
        t += x;
        for (i = low; i <= en; i++)
          h[i][i] -= x;
        s = fabs(h[en][na]) + fabs(h[na][enm2]);
        x = s * 0.75;
        y = x;
        w = s * -0.4375 * s;
      }
      its++;
      --itn;
      for (m = enm2; m >= l; m--) {
        zz = h[m][m];
        r = x - zz;
        s = y - zz;
        p = (r * s - w) / h[m + 1][m] + h[m][m + 1];
        q = h[m + 1][m + 1] - zz - r - s;
        r = h[m + 2][m + 1];
        s = fabs(p) + fabs(q) + fabs(r);
        p /= s;
        q /= s;
        r /= s;
        if (m == l)
          break;
        tst1 = fabs(p) * (fabs(h[m - 1][m - 1]) + fabs(zz) + fabs(h[m + 1][m + 1]));
        tst2 = tst1 + fabs(h[m][m - 1]) * (fabs(q) + fabs(r));
        if (fabs(tst2 - tst1) < (1E-30))
          break;
      }
      mp2 = m + 2;
      for (i = mp2; i <= en; i++) {
        h[i][i - 2] = 0.0;
        if (i != mp2)
          h[i][i - 3] = 0.0;
      }
      for (k = m; k <= na; k++) {
        notlas = (k != na);
        if (k != m) {
          p = h[k][k - 1];
          q = h[k + 1][k - 1];
          r = 0.0;
          if (notlas)
            r = h[k + 2][k - 1];
          x = fabs(p) + fabs(q) + fabs(r);
          if (x < (1E-30))
            continue;
          p /= x;
          q /= x;
          r /= x;
        }
        s = D_sign(sqrt(p * p + q * q + r * r), p);
        if (k != m)
          h[k][k - 1] = -s * x;
        else if (l != m)
          h[k][k - 1] = -h[k][k - 1];
        p += s;
        x = p / s;
        y = q / s;
        zz = r / s;
        q /= p;
        r /= p;
        if (!notlas) {
          for (j = k; j < n; j++) {
            p = h[k][j] + q * h[k + 1][j];
            h[k][j] -= p * x;
            h[k + 1][j] -= p * y;
          }
          j = (((en) < (k + 3)) ? (en) : (k + 3));
          for (i = 0; i <= j; i++) {
            p = x * h[i][k] + y * h[i][k + 1];
            h[i][k] -= p;
            h[i][k + 1] -= p * q;
          }
          for (i = low; i <= high; i++) {
            p = x * z[i][k] + y * z[i][k + 1];
            z[i][k] -= p;
            z[i][k + 1] -= p * q;
          }
        } else {
          for (j = k; j < n; j++) {
            p = h[k][j] + q * h[k + 1][j] + r * h[k + 2][j];
            h[k][j] -= p * x;
            h[k + 1][j] -= p * y;
            h[k + 2][j] -= p * zz;
          }
          j = (((en) < (k + 3)) ? (en) : (k + 3));
          for (i = 0; i <= j; i++) {
            p = x * h[i][k] + y * h[i][k + 1] + zz * h[i][k + 2];
            h[i][k] -= p;
            h[i][k + 1] -= p * q;
            h[i][k + 2] -= p * r;
          }
          for (i = low; i <= high; i++) {
            p = x * z[i][k] + y * z[i][k + 1] + zz * z[i][k + 2];
            z[i][k] -= p;
            z[i][k + 1] -= p * q;
            z[i][k + 2] -= p * r;
          }
        }
      }
    }
    if (twoRoots) {
      p = (y - x) / 2.0;
      q = p * p + w;
      zz = sqrt(fabs(q));
      h[en][en] = x + t;
      x = h[en][en];
      h[na][na] = y + t;
      if (q >= -1e-12) {
        zz = p + D_sign(zz, p);
        wr[na] = x + zz;
        wr[en] = wr[na];
        if (fabs(zz) > (1E-30))
          wr[en] = x - w / zz;
        wi[na] = 0.0;
        wi[en] = 0.0;
        x = h[en][na];
        s = fabs(x) + fabs(zz);
        p = x / s;
        q = zz / s;
        r = sqrt(p * p + q * q);
        p /= r;
        q /= r;
        for (j = na; j < n; j++) {
          zz = h[na][j];
          h[na][j] = q * zz + p * h[en][j];
          h[en][j] = q * h[en][j] - p * zz;
        }
        for (i = 0; i <= en; i++) {
          zz = h[i][na];
          h[i][na] = q * zz + p * h[i][en];
          h[i][en] = q * h[i][en] - p * zz;
        }
        for (i = low; i <= high; i++) {
          zz = z[i][na];
          z[i][na] = q * zz + p * z[i][en];
          z[i][en] = q * z[i][en] - p * zz;
        }
      } else {
        wr[na] = x + p;
        wr[en] = x + p;
        wi[na] = zz;
        wi[en] = -zz;
      }
      en = enm2;
    } else {
      h[en][en] = x + t;
      wr[en] = h[en][en];
      wi[en] = 0.0;
      en = na;
    }
  }
  if (fabs(norm) < (1E-30))
    return 0;
  for (en = n - 1; en >= 0; en--) {
    p = wr[en];
    q = wi[en];
    na = en - 1;
    if (q < -1e-12) {
      m = na;
      if (fabs(h[en][na]) > fabs(h[na][en])) {
        h[na][na] = q / h[en][na];
        h[na][en] = -(h[en][en] - p) / h[en][na];
      } else
        CDiv(0.0, -h[na][en], h[na][na] - p, q, &h[na][na], &h[na][en]);
      h[en][na] = 0.0;
      h[en][en] = 1.0;
      enm2 = na - 1;
      if (enm2 >= 0) {
        for (i = enm2; i >= 0; i--) {
          w = h[i][i] - p;
          ra = 0.0;
          sa = 0.0;
          for (j = m; j <= en; j++) {
            ra += h[i][j] * h[j][na];
            sa += h[i][j] * h[j][en];
          }
          if (wi[i] < 0.0) {
            zz = w;
            r = ra;
            s = sa;
          } else {
            m = i;
            if (fabs(wi[i]) < (1E-30))
              CDiv(-ra, -sa, w, q, &h[i][na], &h[i][en]);
            else {
              x = h[i][i + 1];
              y = h[i + 1][i];
              vr = (wr[i] - p) * (wr[i] - p) + wi[i] * wi[i] - q * q;
              vi = (wr[i] - p) * 2.0 * q;
              if ((fabs(vr) < (1E-30)) && (fabs(vi) < (1E-30))) {
                tst1 = norm * (fabs(w) + fabs(q) + fabs(x) + fabs(y) + fabs(zz));
                vr = tst1;
                do {
                  vr *= .01;
                  tst2 = tst1 + vr;
                } while (tst2 > tst1);
              }
              CDiv(x * r - zz * ra + q * sa, x * s - zz * sa - q * ra, vr, vi, &h[i][na], &h[i][en]);
              if (fabs(x) > fabs(zz) + fabs(q)) {
                h[i + 1][na] = (-ra - w * h[i][na] + q * h[i][en]) / x;
                h[i + 1][en] = (-sa - w * h[i][en] - q * h[i][na]) / x;
              } else
                CDiv(-r - y * h[i][na], -s - y * h[i][en], zz, q, &h[i + 1][na], &h[i + 1][en]);
            }
            tst1 = fabs(h[i][na]);
            tst2 = fabs(h[i][en]);
            t = (((tst1) > (tst2)) ? (tst1) : (tst2));
            if (t > (1E-30)) {
              tst1 = t;
              tst2 = tst1 + 1.0 / tst1;
              if (tst2 <= tst1) {
                for (j = i; j <= en; j++) {
                  h[j][na] /= t;
                  h[j][en] /= t;
                }
              }
            }
          }
        }
      }
    } else if (fabs(q) < (1E-30)) {
      m = en;
      h[en][en] = 1.0;
      if (na >= 0) {
        for (i = na; i >= 0; i--) {
          w = h[i][i] - p;
          r = 0.0;
          for (j = m; j <= en; j++)
            r += h[i][j] * h[j][en];
          if (wi[i] < 0.0) {
            zz = w;
            s = r;
            continue;
          } else {
            m = i;
            if (fabs(wi[i]) < (1E-30)) {
              t = w;
              if (fabs(t) < (1E-30)) {
                tst1 = norm;
                t = tst1;
                do {
                  t *= .01;
                  tst2 = norm + t;
                } while (tst2 > tst1);
              }
              h[i][en] = -r / t;
            } else {
              x = h[i][i + 1];
              y = h[i + 1][i];
              q = (wr[i] - p) * (wr[i] - p) + wi[i] * wi[i];
              t = (x * s - zz * r) / q;
              h[i][en] = t;
              if (fabs(x) > fabs(zz))
                h[i + 1][en] = (-r - w * t) / x;
              else
                h[i + 1][en] = (-s - y * t) / zz;
            }
            t = fabs(h[i][en]);
            if (t > (1E-30)) {
              tst1 = t;
              tst2 = tst1 + 1. / tst1;
              if (tst2 <= tst1) {
                for (j = i; j <= en; j++)
                  h[j][en] /= t;
              }
            }
          }
        }
      }
    }
  }
  for (i = 0; i < n; i++) {
    if ((i < low) || (i > high)) {
      for (j = i; j < n; j++)
        z[i][j] = h[i][j];
    }
  }
  for (j = n - 1; j >= low; j--) {
    m = (((j) < (high)) ? (j) : (high));
    for (i = low; i <= high; i++) {
      zz = 0.0;
      for (k = low; k <= m; k++)
        zz += z[i][k] * h[k][j];
      z[i][j] = zz;
    }
  }
  return 0;
}
```