user: Translate the below assembly code into C programming language:

```asm
<Hqr2>:
  endbr64
  push   %r15
  imul   $0x1e,%edi,%eax
  mov    %r9,%r15
  push   %r14
  push   %r13
  push   %r12
  mov    %edi,%r12d
  push   %rbp
  mov    %edx,%ebp
  push   %rbx
  mov    %rcx,%rbx
  sub    $0x168,%rsp
  mov    %r9,0x148(%rsp)
  mov    0x1a0(%rsp),%r9
  mov    %esi,0xe4(%rsp)
  mov    %r8,0x130(%rsp)
  mov    %eax,0xc0(%rsp)
  test   %edi,%edi
  jle    L983
  pxor   %xmm6,%xmm6
  lea    -0x1(%rdi),%r13d
  mov    %edi,%r11d
  xor    %edx,%edx
  movsd  %xmm6,0x18(%rsp)
  movapd %xmm6,%xmm14
  xor    %r10d,%r10d
  mov    %esi,%r14d
  movq   D94(%rip),%xmm6
L1079:
  mov    %r10d,%ecx
  mov    %edx,%r10d
  cmp    %r12d,%ecx
  jge    L1420
  mov    %r13d,%esi
  movslq %ecx,%r8
  mov    (%rbx,%rdx,8),%rdi
  sub    %ecx,%esi
  add    %r8,%rsi
  lea    (%rdi,%r8,8),%rax
  lea    0x8(%rdi,%rsi,8),%rcx
  nopw   0x0(%rax,%rax,1)
L863:
  movsd  (%rax),%xmm0
  add    $0x8,%rax
  andpd  %xmm6,%xmm0
  addsd  %xmm0,%xmm14
  cmp    %rax,%rcx
  jne    L863
L1420:
  cmp    %edx,%r14d
  jg     L1326
  cmp    %edx,%ebp
  jl     L1326
L770:
  add    $0x1,%rdx
  cmp    %rdx,%r11
  jne    L1079
  cmp    0xe4(%rsp),%ebp
  jl     L831
L1076:
  movslq 0xe4(%rsp),%rax
  mov    %ebp,0x20(%rsp)
  pxor   %xmm7,%xmm7
  movapd %xmm7,%xmm5
  movapd %xmm7,%xmm4
  movsd  D138(%rip),%xmm8
  movsd  %xmm7,0x118(%rsp)
  lea    0x0(,%rax,8),%rdi
  mov    %rax,0xa0(%rsp)
  add    $0x1,%rax
  movapd %xmm7,%xmm2
  mov    %rdi,0x140(%rsp)
  movapd %xmm7,%xmm1
  mov    %rax,0x158(%rsp)
  movsd  %xmm14,0x100(%rsp)
L322:
  movl   $0x0,0xb0(%rsp)
  movslq 0x20(%rsp),%rdi
  lea    -0x1(%rdi),%eax
  lea    -0x2(%rdi),%esi
  mov    %rdi,%rdx
  mov    %rdi,0x150(%rsp)
  mov    %eax,0x8(%rsp)
  shl    $0x3,%rdi
  cltq
  mov    %rax,0xe8(%rsp)
  lea    -0x8(%rdi),%rax
  lea    (%rbx,%rdi,1),%rcx
  mov    %rax,0xb8(%rsp)
  add    %rbx,%rax
  mov    (%rcx),%r14
  mov    %rax,0xf0(%rsp)
  lea    -0x10(%rdi),%rax
  mov    %rax,0x120(%rsp)
  mov    %edx,%eax
  lea    (%r14,%rdi,1),%r13
  sub    0xe4(%rsp),%eax
  add    0x158(%rsp),%rax
  mov    %esi,0xf8(%rsp)
  shl    $0x3,%rax
  mov    %rcx,0x110(%rsp)
  mov    %rax,0x138(%rsp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rdi,0xc8(%rsp)
  mov    %ebp,%edi
  mov    %rax,0x108(%rsp)
  nopl   0x0(%rax,%rax,1)
L615:
  mov    0x20(%rsp),%ebp
  mov    0xe4(%rsp),%esi
  mov    0xc0(%rsp),%r8d
  sub    0xb0(%rsp),%r8d
  cmp    %esi,%ebp
  jle    L736
  mov    0xb8(%rsp),%rax
  mov    %r14,%rdx
  movsd  0x100(%rsp),%xmm3
  jmp    L335
  nopl   0x0(%rax)
L796:
  sub    $0x1,%ebp
  cmp    %ebp,%esi
  je     L57
  sub    $0x8,%rax
  mov    %rcx,%rdx
L335:
  mov    (%rbx,%rax,1),%rcx
  movsd  0x8(%rdx,%rax,1),%xmm4
  movsd  (%rcx,%rax,1),%xmm0
  andpd  %xmm6,%xmm4
  andpd  %xmm6,%xmm0
  addsd  %xmm0,%xmm4
  movapd %xmm4,%xmm0
  cmpnltsd %xmm8,%xmm0
  andpd  %xmm0,%xmm4
  andnpd %xmm3,%xmm0
  orpd   %xmm0,%xmm4
  movsd  (%rdx,%rax,1),%xmm0
  andpd  %xmm6,%xmm0
  addsd  %xmm4,%xmm0
  subsd  %xmm4,%xmm0
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm8
  jbe    L796
  movsd  0x0(%r13),%xmm3
  cmp    %ebp,0x20(%rsp)
  je     L949
L931:
  mov    0xf0(%rsp),%rax
  mov    (%rax),%rdx
  mov    0xb8(%rsp),%rax
  lea    (%rdx,%rax,1),%r15
  lea    (%r14,%rax,1),%rcx
  mov    0xc8(%rsp),%rax
  movsd  (%r15),%xmm10
  movsd  (%rdx,%rax,1),%xmm9
  mulsd  (%rcx),%xmm9
  cmp    0x8(%rsp),%ebp
  je     L1087
  mov    0xb0(%rsp),%esi
  cmp    %esi,0xc0(%rsp)
  je     L1343
  mov    0xb0(%rsp),%eax
  cmp    $0xa,%eax
  je     L354
  cmp    $0x14,%eax
  je     L354
L1441:
  mov    0xf8(%rsp),%r8d
  addl   $0x1,0xb0(%rsp)
  cmp    %r8d,%ebp
  jg     L1115
  mov    0x108(%rsp),%rax
  mov    %r14,%rsi
  jmp    L573
  nopw   0x0(%rax,%rax,1)
L1010:
  mov    -0x8(%rbx,%rax,1),%rsi
  movapd %xmm7,%xmm12
  andpd  %xmm6,%xmm0
  movapd %xmm5,%xmm13
  andpd  %xmm6,%xmm12
  andpd  %xmm6,%xmm13
  lea    -0x8(%rax),%rcx
  movsd  -0x8(%rsi,%rax,1),%xmm11
  andpd  %xmm6,%xmm11
  addsd  %xmm12,%xmm11
  movapd %xmm2,%xmm12
  andpd  %xmm6,%xmm12
  addsd  %xmm13,%xmm12
  addsd  %xmm0,%xmm11
  movapd %xmm1,%xmm0
  andpd  %xmm6,%xmm0
  mulsd  %xmm0,%xmm11
  movsd  -0x8(%rdx,%rax,1),%xmm0
  andpd  %xmm6,%xmm0
  mulsd  %xmm12,%xmm0
  addsd  %xmm11,%xmm0
  subsd  %xmm11,%xmm0
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm8
  ja     L1240
  lea    -0x1(%r8),%edx
  cmp    %edx,%ebp
  jg     L155
  mov    0x10(%rbx,%rcx,1),%rsi
  mov    %rcx,%rax
  mov    %edx,%r8d
L573:
  mov    (%rbx,%rax,1),%rdx
  mov    0x8(%rbx,%rax,1),%rcx
  movapd %xmm3,%xmm5
  movapd %xmm10,%xmm4
  movsd  (%rdx,%rax,1),%xmm7
  movsd  0x8(%rcx,%rax,1),%xmm0
  subsd  %xmm7,%xmm5
  subsd  %xmm7,%xmm4
  movapd %xmm0,%xmm2
  subsd  %xmm7,%xmm2
  movapd %xmm5,%xmm1
  mulsd  %xmm4,%xmm1
  subsd  %xmm5,%xmm2
  movsd  0x8(%rsi,%rax,1),%xmm5
  subsd  %xmm4,%xmm2
  subsd  %xmm9,%xmm1
  divsd  (%rcx,%rax,1),%xmm1
  addsd  0x8(%rdx,%rax,1),%xmm1
  movapd %xmm2,%xmm11
  andpd  %xmm6,%xmm11
  movapd %xmm1,%xmm4
  andpd  %xmm6,%xmm4
  addsd  %xmm11,%xmm4
  movapd %xmm5,%xmm11
  andpd  %xmm6,%xmm11
  addsd  %xmm11,%xmm4
  divsd  %xmm4,%xmm1
  divsd  %xmm4,%xmm2
  divsd  %xmm4,%xmm5
  cmp    %r8d,%ebp
  jne    L1010
  lea    0x2(%rbp),%r10d
L730:
  cmp    %r10d,0x20(%rsp)
  jl     L1388
L1295:
  movslq %r10d,%rcx
  lea    0x0(,%rcx,8),%rdx
  mov    (%rbx,%rcx,8),%rcx
  lea    -0x10(%rdx),%rax
  movq   $0x0,-0x10(%rcx,%rdx,1)
  mov    0x20(%rsp),%edx
  lea    0x1(%rdx),%r11d
  mov    %r10d,%edx
  jmp    L230
  nopl   0x0(%rax)
L776:
  mov    0x18(%rbx,%rax,1),%rcx
  lea    0x8(%rax),%rsi
  movq   $0x0,0x8(%rcx,%rax,1)
  cmp    %r10d,%edx
  je     L301
  movq   $0x0,(%rcx,%rax,1)
L301:
  mov    %rsi,%rax
L230:
  add    $0x1,%edx
  cmp    %r11d,%edx
  jne    L776
L1388:
  cmp    %r8d,0x8(%rsp)
  jl     L615
  mov    0x8(%rsp),%eax
  movslq %r8d,%r15
  mov    %r8d,0x10(%rsp)
  mov    %edi,%r14d
  mov    %ebp,0xd0(%rsp)
  mov    %rbx,%rbp
  lea    -0x8(,%r15,8),%r13
  movsd  %xmm8,0x90(%rsp)
  sub    %r8d,%eax
  add    %r15,%rax
  shl    $0x3,%rax
  mov    %rax,0x88(%rsp)
  lea    0x8(%rbx),%rax
  mov    %r15,%rbx
  mov    %rax,0x98(%rsp)
  nopl   0x0(%rax)
L87:
  lea    0x10(%r13),%r15
  mov    %r13,%rdx
  mov    %ebx,%r10d
  add    $0x8,%r13
  mov    %ebx,%ecx
  cmp    0x10(%rsp),%ebx
  je     L673
  mov    0x8(%rbp,%rdx,1),%rax
  movsd  (%rax,%rdx,1),%xmm1
  mov    0x10(%rbp,%rdx,1),%rax
  movsd  (%rax,%rdx,1),%xmm2
  cmp    %ebx,0x8(%rsp)
  je     L1350
  mov    0x18(%rbp,%rdx,1),%rax
  movsd  (%rax,%rdx,1),%xmm5
  movapd %xmm5,%xmm0
  andpd  %xmm6,%xmm0
L1397:
  movapd %xmm1,%xmm3
  movapd %xmm2,%xmm8
  andpd  %xmm6,%xmm3
  andpd  %xmm6,%xmm8
  addsd  %xmm8,%xmm3
  addsd  %xmm0,%xmm3
  movsd  0x90(%rsp),%xmm0
  comisd %xmm3,%xmm0
  ja     L457
  divsd  %xmm3,%xmm1
  movsd  0x18(%rsp),%xmm7
  divsd  %xmm3,%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  divsd  %xmm3,%xmm5
  movapd %xmm2,%xmm4
  mulsd  %xmm2,%xmm4
  addsd  %xmm4,%xmm0
  movapd %xmm5,%xmm4
  mulsd  %xmm5,%xmm4
  addsd  %xmm4,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L695
  sqrtsd %xmm0,%xmm0
L589:
  mov    $0x2,%eax
  mov    %r9,0x1a0(%rsp)
  mov    %ecx,0x50(%rsp)
  mov    %r10d,0x48(%rsp)
  mov    %rdx,0x40(%rsp)
  movaps %xmm6,0x70(%rsp)
  movsd  %xmm5,0x60(%rsp)
  movsd  %xmm2,0x80(%rsp)
  movsd  %xmm3,0x30(%rsp)
  movsd  %xmm1,0x28(%rsp)
  call   <D_sign@plt>
  pxor   %xmm4,%xmm4
  mov    0x40(%rsp),%rdx
  movsd  0x30(%rsp),%xmm3
  cvtsi2sd %eax,%xmm4
  movsd  0x28(%rsp),%xmm1
  mov    0x48(%rsp),%r10d
  mov    0x8(%rbp,%rdx,1),%rax
  mov    0x50(%rsp),%ecx
  movsd  0x80(%rsp),%xmm2
  movsd  0x60(%rsp),%xmm5
  mov    0x1a0(%rsp),%r9
  movapd 0x70(%rsp),%xmm6
  movapd %xmm4,%xmm0
  xorpd  D26(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,(%rax,%rdx,1)
L182:
  addsd  %xmm4,%xmm1
  movapd %xmm2,%xmm8
  movapd %xmm5,%xmm7
  divsd  %xmm4,%xmm8
  movapd %xmm1,%xmm3
  divsd  %xmm4,%xmm3
  divsd  %xmm4,%xmm7
  divsd  %xmm1,%xmm2
  divsd  %xmm1,%xmm5
  cmp    %ecx,0x8(%rsp)
  je     L443
  cmp    %ecx,%r12d
  jle    L868
  mov    0x8(%rbp,%rdx,1),%r11
  mov    0x10(%rbp,%rdx,1),%rsi
  mov    %rbx,%rax
  mov    0x18(%rbp,%rdx,1),%rcx
  nopl   0x0(%rax)
L436:
  movsd  (%rsi,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm9
  movsd  (%r11,%rax,8),%xmm1
  mulsd  %xmm2,%xmm0
  mulsd  %xmm5,%xmm9
  addsd  %xmm1,%xmm0
  addsd  %xmm9,%xmm0
  movapd %xmm3,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm1
  movapd %xmm8,%xmm9
  mulsd  %xmm0,%xmm9
  mulsd  %xmm7,%xmm0
  movsd  %xmm1,(%r11,%rax,8)
  movsd  (%rsi,%rax,8),%xmm1
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rsi,%rax,8)
  movsd  (%rcx,%rax,8),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rcx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r12d
  jg     L436
L868:
  mov    0x20(%rsp),%edi
  lea    0x2(%r10),%eax
  add    $0x3,%r10d
  cmp    %eax,%edi
  cmovle %edi,%r10d
  add    $0x18,%rdx
  test   %r10d,%r10d
  js     L113
  mov    0x98(%rsp),%rax
  movslq %r10d,%r10
  mov    %rbp,%rcx
  lea    (%rax,%r10,8),%r11
  nopl   (%rax)
L1266:
  mov    (%rcx),%rax
  add    $0x8,%rcx
  lea    (%rax,%r13,1),%rdi
  lea    (%rax,%r15,1),%rsi
  add    %rdx,%rax
  movsd  (%rdi),%xmm1
  movsd  (%rsi),%xmm0
  mulsd  %xmm8,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm3,%xmm9
  addsd  %xmm9,%xmm0
  movsd  (%rax),%xmm9
  mulsd  %xmm7,%xmm9
  addsd  %xmm9,%xmm0
  movapd %xmm2,%xmm9
  subsd  %xmm0,%xmm1
  mulsd  %xmm0,%xmm9
  mulsd  %xmm5,%xmm0
  movsd  %xmm1,(%rdi)
  movsd  (%rsi),%xmm1
  subsd  %xmm9,%xmm1
  movsd  %xmm1,(%rsi)
  movsd  (%rax),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rax)
  cmp    %rcx,%r11
  jne    L1266
L113:
  mov    0xa0(%rsp),%rcx
  nopl   0x0(%rax)
L1318:
  mov    (%r9,%rcx,8),%rax
  add    $0x1,%rcx
  lea    (%rax,%r13,1),%rdi
  lea    (%rax,%r15,1),%rsi
  add    %rdx,%rax
  movsd  (%rdi),%xmm0
  movsd  (%rsi),%xmm1
  mulsd  %xmm8,%xmm1
  movapd %xmm0,%xmm9
  mulsd  %xmm3,%xmm9
  addsd  %xmm9,%xmm1
  movsd  (%rax),%xmm9
  mulsd  %xmm7,%xmm9
  addsd  %xmm9,%xmm1
  movapd %xmm2,%xmm9
  mulsd  %xmm1,%xmm9
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdi)
  movsd  (%rsi),%xmm0
  subsd  %xmm9,%xmm0
  movapd %xmm5,%xmm9
  mulsd  %xmm1,%xmm9
  movsd  %xmm0,(%rsi)
  movsd  (%rax),%xmm0
  subsd  %xmm9,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %ecx,%r14d
  jge    L1318
L457:
  add    $0x1,%rbx
  cmp    0x88(%rsp),%r13
  jne    L87
L609:
  mov    0x110(%rsp),%rax
  mov    %r14d,%edi
  mov    %rbp,%rbx
  movsd  0x90(%rsp),%xmm8
  mov    (%rax),%r14
  mov    0xc8(%rsp),%rax
  lea    (%r14,%rax,1),%r13
  jmp    L615
  nopw   0x0(%rax,%rax,1)
L1350:
  pxor   %xmm5,%xmm5
  movapd %xmm5,%xmm0
  jmp    L1397
  nopl   (%rax)
L443:
  cmp    0x8(%rsp),%r12d
  jle    L465
  mov    0x8(%rbp,%rdx,1),%rcx
  mov    0xe8(%rsp),%rax
  mov    0x10(%rbp,%rdx,1),%rdx
  nopl   0x0(%rax)
L1281:
  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,%r12d
  jg     L1281
L465:
  mov    0x20(%rsp),%edi
  lea    0x2(%r10),%eax
  add    $0x3,%r10d
  cmp    %eax,%edi
  cmovle %edi,%r10d
  test   %r10d,%r10d
  js     L1285
  mov    0x98(%rsp),%rax
  movslq %r10d,%r10
  mov    %rbp,%rdx
  lea    (%rax,%r10,8),%rsi
  nopl   0x0(%rax,%rax,1)
L1187:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%r13,1),%rcx
  add    %r15,%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    L1187
L1285:
  mov    0xa0(%rsp),%rdx
  nop
L263:
  mov    (%r9,%rdx,8),%rax
  add    $0x1,%rdx
  lea    (%rax,%r13,1),%rcx
  add    %r15,%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,%r14d
  jge    L263
  add    $0x1,%rbx
  cmp    0x88(%rsp),%r13
  jne    L87
  jmp    L609
  cs nopw 0x0(%rax,%rax,1)
L673:
  movapd %xmm2,%xmm3
  movapd %xmm1,%xmm0
  movsd  0x18(%rsp),%xmm7
  mulsd  %xmm2,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  movapd %xmm5,%xmm3
  mulsd  %xmm5,%xmm3
  addsd  %xmm3,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L559
  sqrtsd %xmm0,%xmm0
L505:
  mov    $0x2,%eax
  mov    %r9,0x1a0(%rsp)
  mov    %ecx,0x48(%rsp)
  mov    %r10d,0x40(%rsp)
  mov    %rdx,0x30(%rsp)
  movaps %xmm6,0x60(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm1,0x28(%rsp)
  call   <D_sign@plt>
  mov    0x10(%rsp),%edi
  pxor   %xmm4,%xmm4
  cmp    %edi,0xd0(%rsp)
  cvtsi2sd %eax,%xmm4
  movsd  0x28(%rsp),%xmm1
  mov    0x30(%rsp),%rdx
  mov    0x40(%rsp),%r10d
  mov    0x48(%rsp),%ecx
  movsd  0x50(%rsp),%xmm2
  mov    0x1a0(%rsp),%r9
  movsd  0x80(%rsp),%xmm5
  movapd 0x60(%rsp),%xmm6
  je     L182
  mov    0x8(%rbp,%rdx,1),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  xorpd  D26(%rip),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L182
  nopl   (%rax)
L57:
  movsd  0x0(%r13),%xmm3
  jmp    L931
L1240:
  lea    0x2(%r8),%r10d
  jmp    L730
L155:
  lea    0x1(%r8),%r10d
  mov    %edx,%r8d
  jmp    L730
L354:
  mov    0x140(%rsp),%rax
  mov    0x138(%rsp),%r8
  movsd  0x118(%rsp),%xmm4
  addsd  %xmm3,%xmm4
  movsd  %xmm4,0x118(%rsp)
  xchg   %ax,%ax
L287:
  mov    (%rbx,%rax,1),%rsi
  add    %rax,%rsi
  add    $0x8,%rax
  movsd  (%rsi),%xmm0
  subsd  %xmm3,%xmm0
  movsd  %xmm0,(%rsi)
  cmp    %rax,%r8
  jne    L287
  mov    0x120(%rsp),%rax
  movsd  (%rcx),%xmm0
  movsd  D217(%rip),%xmm3
  movsd  D83(%rip),%xmm9
  movsd  (%rdx,%rax,1),%xmm4
  andpd  %xmm6,%xmm0
  andpd  %xmm6,%xmm4
  addsd  %xmm0,%xmm4
  mulsd  %xmm4,%xmm3
  mulsd  %xmm4,%xmm9
  movapd %xmm3,%xmm10
  mulsd  %xmm4,%xmm9
  jmp    L1441
L1326:
  mov    (%rbx,%rdx,8),%rax
  movsd  (%rax,%rdx,8),%xmm0
  mov    0x130(%rsp),%rax
  movsd  %xmm0,(%rax,%rdx,8)
  movq   $0x0,(%r15,%rdx,8)
  jmp    L770
L736:
  movsd  0x0(%r13),%xmm3
  mov    %edi,%ebp
L1063:
  mov    0x150(%rsp),%rax
  mov    0x130(%rsp),%rdi
  addsd  0x118(%rsp),%xmm3
  movsd  %xmm3,0x0(%r13)
  movsd  %xmm3,(%rdi,%rax,8)
  mov    0x148(%rsp),%rdi
  movq   $0x0,(%rdi,%rax,8)
  mov    0x8(%rsp),%eax
  mov    %eax,0x20(%rsp)
L708:
  mov    0xe4(%rsp),%edi
  cmp    %edi,0x20(%rsp)
  jl     L237
  mov    %r8d,0xc0(%rsp)
  jmp    L322
L1343:
  mov    0x20(%rsp),%esi
  lea    D202(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
L55:
  mov    0x20(%rsp),%eax
  add    $0x168,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1115:
  mov    0x20(%rsp),%r10d
  mov    0xf8(%rsp),%r8d
  jmp    L1295
L1087:
  movapd %xmm10,%xmm1
  movsd  0x18(%rsp),%xmm7
  mov    %edi,%ebp
  subsd  %xmm3,%xmm1
  mulsd  D157(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm9,%xmm2
  movapd %xmm2,%xmm0
  andpd  %xmm6,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L1363
  movapd %xmm0,%xmm7
  sqrtsd %xmm7,%xmm7
L1122:
  mov    0x130(%rsp),%rax
  mov    0xc8(%rsp),%rdi
  movsd  0x118(%rsp),%xmm0
  mov    0xb8(%rsp),%rsi
  addsd  %xmm0,%xmm3
  addsd  %xmm0,%xmm10
  movsd  D27(%rip),%xmm0
  movsd  %xmm3,0x0(%r13)
  movsd  %xmm10,(%r15)
  mov    %rax,%r15
  add    %rdi,%rax
  mov    %rax,%rdx
  mov    0x148(%rsp),%rax
  add    %rsi,%r15
  mov    %rax,%r13
  add    %rdi,%rax
  add    %rsi,%r13
  comisd %xmm0,%xmm2
  mov    %rax,%r14
  jae    L1174
  addsd  %xmm1,%xmm3
  movapd %xmm7,%xmm0
  xorpd  D26(%rip),%xmm0
  movsd  %xmm3,(%r15)
  movsd  %xmm3,(%rdx)
  movsd  %xmm7,0x0(%r13)
  movsd  %xmm0,(%r14)
L229:
  mov    0xf8(%rsp),%eax
  mov    %eax,0x20(%rsp)
  jmp    L708
L1174:
  movapd %xmm7,%xmm0
  mov    $0x2,%eax
  mov    %rdx,0x48(%rsp)
  mov    %r9,0x1a0(%rsp)
  mov    %r8d,0x40(%rsp)
  movsd  %xmm8,0x80(%rsp)
  movaps %xmm6,0x50(%rsp)
  movsd  %xmm9,0x30(%rsp)
  movsd  %xmm3,0x28(%rsp)
  movsd  %xmm1,0x10(%rsp)
  call   <D_sign@plt>
  pxor   %xmm0,%xmm0
  mov    0x40(%rsp),%r8d
  movsd  0x10(%rsp),%xmm1
  cvtsi2sd %eax,%xmm0
  movsd  0x28(%rsp),%xmm3
  movapd 0x50(%rsp),%xmm6
  movsd  0x80(%rsp),%xmm8
  movsd  0x30(%rsp),%xmm9
  movapd %xmm3,%xmm2
  mov    0x48(%rsp),%rdx
  mov    0x1a0(%rsp),%r9
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  addsd  %xmm0,%xmm2
  andpd  %xmm6,%xmm1
  comisd %xmm8,%xmm1
  movsd  %xmm2,(%r15)
  ja     L1395
  movsd  %xmm2,(%rdx)
L281:
  mov    0x110(%rsp),%rax
  movapd %xmm0,%xmm2
  movq   $0x0,0x0(%r13)
  movq   $0x0,(%r14)
  movsd  0x18(%rsp),%xmm7
  mov    (%rax),%r13
  mov    0xc8(%rsp),%rax
  movsd  -0x8(%r13,%rax,1),%xmm3
  movapd %xmm3,%xmm4
  andpd  %xmm6,%xmm4
  addsd  %xmm1,%xmm4
  movapd %xmm3,%xmm1
  divsd  %xmm4,%xmm1
  divsd  %xmm4,%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm2,%xmm5
  mulsd  %xmm2,%xmm5
  addsd  %xmm5,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L161
  movapd %xmm0,%xmm5
  sqrtsd %xmm5,%xmm5
L139:
  divsd  %xmm5,%xmm1
  divsd  %xmm5,%xmm2
  cmp    0x8(%rsp),%r12d
  jle    L426
  mov    0xf0(%rsp),%rax
  mov    0xe8(%rsp),%rdx
  mov    (%rax),%rax
  jmp    L440
L659:
  movsd  0x0(%r13,%rdx,8),%xmm3
L440:
  movsd  (%rax,%rdx,8),%xmm0
  mulsd  %xmm1,%xmm3
  movapd %xmm2,%xmm7
  mulsd  %xmm0,%xmm7
  mulsd  %xmm1,%xmm0
  addsd  %xmm3,%xmm7
  movsd  %xmm7,(%rax,%rdx,8)
  movsd  0x0(%r13,%rdx,8),%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,0x0(%r13,%rdx,8)
  add    $0x1,%rdx
  cmp    %edx,%r12d
  jg     L659
L426:
  mov    0x20(%rsp),%ecx
  test   %ecx,%ecx
  js     L174
  mov    0x20(%rsp),%eax
  mov    %rbx,%rdx
  lea    0x8(%rbx,%rax,8),%rcx
L1238:
  mov    (%rdx),%rax
  mov    0xb8(%rsp),%rdi
  movapd %xmm2,%xmm7
  add    $0x8,%rdx
  lea    (%rax,%rdi,1),%rsi
  add    0xc8(%rsp),%rax
  movsd  (%rsi),%xmm0
  movsd  (%rax),%xmm3
  mulsd  %xmm0,%xmm7
  mulsd  %xmm1,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm7,%xmm3
  movsd  %xmm3,(%rsi)
  movsd  (%rax),%xmm3
  mulsd  %xmm2,%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rax)
  cmp    %rdx,%rcx
  jne    L1238
L174:
  mov    0xa0(%rsp),%rdx
L1379:
  mov    (%r9,%rdx,8),%rax
  mov    0xb8(%rsp),%rdi
  movapd %xmm2,%xmm3
  add    $0x1,%rdx
  lea    (%rax,%rdi,1),%rcx
  add    0xc8(%rsp),%rax
  movsd  (%rcx),%xmm7
  movsd  (%rax),%xmm0
  mulsd  %xmm7,%xmm3
  mulsd  %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  movapd %xmm1,%xmm3
  mulsd  %xmm7,%xmm3
  movsd  %xmm0,(%rcx)
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  subsd  %xmm3,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %edx,%ebp
  jge    L1379
  jmp    L229
L983:
  cmp    0xe4(%rsp),%edx
  jl     L1241
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x18(%rsp)
  movapd %xmm6,%xmm14
  movq   D94(%rip),%xmm6
  jmp    L1076
L932:
  mov    0x28(%rsp),%edi
  cmp    %edi,0xe4(%rsp)
  jg     L1241
  movslq 0xe4(%rsp),%r8
  mov    %ebp,%eax
  movslq 0x28(%rsp),%rcx
  movsd  0x18(%rsp),%xmm2
  sub    %r8d,%eax
  mov    %rcx,%r14
  mov    %r8,%r13
  shl    $0x3,%rcx
  add    %r8,%rax
  lea    -0x1(%r8),%r10d
  lea    (%r9,%r8,8),%r12
  lea    0x8(%r9,%rax,8),%r11
L1197:
  cmp    %ebp,%r14d
  mov    %ebp,%edi
  mov    %r12,%r9
  cmovle %r14d,%edi
  cmp    %r13d,%ebp
  jl     L339
L1390:
  mov    (%r9),%rsi
  mov    %r8,%rax
  movapd %xmm2,%xmm1
  cmp    %edi,%r13d
  jg     L772
  nopl   0x0(%rax)
L888:
  mov    (%rbx,%rax,8),%rdx
  movsd  (%rdx,%rcx,1),%xmm0
  mulsd  (%rsi,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm1
  cmp    %eax,%edi
  jge    L888
L772:
  add    $0x8,%r9
  movsd  %xmm1,(%rsi,%rcx,1)
  cmp    %r9,%r11
  jne    L1390
L339:
  sub    $0x1,%r14d
  sub    $0x8,%rcx
  cmp    %r10d,%r14d
  jne    L1197
L1241:
  movl   $0x0,0x20(%rsp)
  jmp    L55
L695:
  mov    %r9,0x1a0(%rsp)
  mov    %ecx,0x48(%rsp)
  mov    %r10d,0x40(%rsp)
  mov    %rdx,0x30(%rsp)
  movaps %xmm6,0x70(%rsp)
  movsd  %xmm5,0x60(%rsp)
  movsd  %xmm2,0x80(%rsp)
  movsd  %xmm1,0x50(%rsp)
  movsd  %xmm3,0x28(%rsp)
  call   <sqrt@plt>
  movapd 0x70(%rsp),%xmm6
  mov    0x48(%rsp),%ecx
  mov    0x1a0(%rsp),%r9
  movsd  0x60(%rsp),%xmm5
  movsd  0x80(%rsp),%xmm2
  movsd  0x50(%rsp),%xmm1
  mov    0x40(%rsp),%r10d
  mov    0x30(%rsp),%rdx
  movsd  0x28(%rsp),%xmm3
  jmp    L589
L237:
  movsd  0x100(%rsp),%xmm14
  movapd %xmm14,%xmm0
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm8
  ja     L1241
  mov    %r12d,%eax
  sub    $0x1,%eax
  mov    %eax,0x28(%rsp)
  js     L1372
L362:
  lea    -0x2(%r12),%eax
  movslq 0x28(%rsp),%r11
  movsd  D27(%rip),%xmm3
  movsd  %xmm14,0x88(%rsp)
  cltq
  mov    %r12d,0x90(%rsp)
  movapd %xmm7,%xmm14
  movapd %xmm8,%xmm13
  mov    %rax,0x80(%rsp)
  lea    -0x3(%r12),%eax
  mov    %r11,%r13
  mov    %eax,0x50(%rsp)
  mov    %ebp,0x98(%rsp)
  mov    %r9,0x1a0(%rsp)
  movsd  %xmm3,0xb8(%rsp)
  movsd  %xmm4,0x10(%rsp)
  jmp    L3
L866:
  lea    0x0(,%rdi,8),%r12
  mov    (%rbx,%r13,8),%rax
  mov    (%rbx,%rdi,8),%rdi
  lea    (%rax,%r12,1),%rdx
  lea    (%rdi,%rbp,1),%rsi
  add    %r12,%rdi
  movsd  (%rdx),%xmm0
  movsd  (%rsi),%xmm1
  movapd %xmm0,%xmm3
  movapd %xmm1,%xmm2
  andpd  %xmm6,%xmm3
  andpd  %xmm6,%xmm2
  comisd %xmm2,%xmm3
  jbe    L1401
  movapd %xmm8,%xmm1
  add    %rbp,%rax
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdi)
  movsd  (%rax),%xmm0
  subsd  %xmm7,%xmm0
  movq   D26(%rip),%xmm7
  movaps %xmm7,0x30(%rsp)
  xorpd  %xmm7,%xmm0
  divsd  (%rdx),%xmm0
  movsd  %xmm0,(%rsi)
L15:
  movq   $0x0,(%rdx)
  movsd  D144(%rip),%xmm7
  mov    0x50(%rsp),%edx
  movsd  %xmm7,0x60(%rsp)
  movsd  %xmm7,(%rax)
  test   %edx,%edx
  jns    L450
L616:
  mov    0x80(%rsp),%eax
  test   %eax,%eax
  js     L610
L115:
  subq   $0x1,0x80(%rsp)
  sub    $0x1,%r13
  subl   $0x1,0x50(%rsp)
L3:
  mov    0x130(%rsp),%rax
  mov    0x80(%rsp),%rdi
  mov    %r13d,%r8d
  mov    %r13d,0x70(%rsp)
  movsd  0xb8(%rsp),%xmm3
  lea    0x0(,%r13,8),%rbp
  movsd  (%rax,%r13,8),%xmm7
  mov    0x148(%rsp),%rax
  movslq %edi,%r9
  movsd  (%rax,%r13,8),%xmm8
  movsd  %xmm7,0x8(%rsp)
  comisd %xmm8,%xmm3
  ja     L866
  andpd  %xmm6,%xmm8
  comisd %xmm8,%xmm13
  jbe    L616
  movsd  D144(%rip),%xmm7
  mov    (%rbx,%r13,8),%rax
  movsd  %xmm7,0x60(%rsp)
  movsd  %xmm7,(%rax,%rbp,1)
  cmp    $0xffffffff,%r9d
  je     L610
  movsd  0x88(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm3
  lea    0x0(,%r9,8),%rsi
  mov    %r13d,%edi
  mov    0x130(%rsp),%r14
  movsd  0x18(%rsp),%xmm4
  lea    0x8(%rbx),%r12
L646:
  mov    (%rbx,%rsi,1),%rcx
  mov    %r9d,%r11d
  mov    %r9d,%r10d
  movsd  (%rcx,%rsi,1),%xmm1
  subsd  0x8(%rsp),%xmm1
  cmp    %r13d,%r8d
  jg     L1222
  movslq %r8d,%rax
  movapd %xmm4,%xmm5
L984:
  mov    (%rbx,%rax,8),%rdx
  movsd  (%rdx,%rbp,1),%xmm0
  mulsd  (%rcx,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm5
  cmp    %eax,%edi
  jge    L984
L1287:
  mov    0x148(%rsp),%rax
  movsd  (%rax,%rsi,1),%xmm10
  comisd %xmm10,%xmm4
  ja     L2
  movapd %xmm10,%xmm0
  lea    (%rcx,%rbp,1),%rax
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm13
  jbe    L1221
  movapd %xmm1,%xmm0
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm13
  ja     L162
L1433:
  movapd %xmm5,%xmm0
  xorpd  D26(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L907:
  movapd %xmm0,%xmm1
  andpd  %xmm6,%xmm1
  comisd %xmm13,%xmm1
  jbe    L1041
  movsd  0x60(%rsp),%xmm7
  divsd  %xmm1,%xmm7
  addsd  %xmm1,%xmm7
  comisd %xmm7,%xmm1
  jae    L62
L1041:
  mov    %r10d,%r8d
L795:
  sub    $0x1,%r9
  sub    $0x8,%rsi
  cmp    $0xffffffff,%r9d
  jne    L646
  movsd  %xmm3,0x10(%rsp)
  jmp    L115
L1221:
  movsd  (%r14,%rsi,1),%xmm7
  subsd  0x8(%rsp),%xmm7
  movapd %xmm5,%xmm11
  movsd  0x8(%rcx,%rsi,1),%xmm8
  mulsd  %xmm10,%xmm10
  mov    0x8(%rbx,%rsi,1),%rdx
  mulsd  %xmm14,%xmm11
  mulsd  %xmm7,%xmm7
  movapd %xmm8,%xmm0
  movsd  (%rdx,%rsi,1),%xmm9
  add    %rbp,%rdx
  mulsd  %xmm3,%xmm0
  addsd  %xmm10,%xmm7
  movapd %xmm8,%xmm10
  subsd  %xmm11,%xmm0
  andpd  %xmm6,%xmm10
  divsd  %xmm7,%xmm0
  movapd %xmm14,%xmm7
  andpd  %xmm6,%xmm7
  comisd %xmm7,%xmm10
  movsd  %xmm0,(%rax)
  jbe    L399
  mulsd  %xmm1,%xmm0
  movapd %xmm5,%xmm7
  xorpd  D26(%rip),%xmm7
  subsd  %xmm0,%xmm7
  movapd %xmm7,%xmm1
  divsd  %xmm8,%xmm1
  movsd  %xmm1,(%rdx)
  movsd  (%rax),%xmm0
  jmp    L907
L2:
  movapd %xmm1,%xmm14
  movapd %xmm5,%xmm3
  jmp    L795
L399:
  mulsd  %xmm0,%xmm9
  movapd %xmm3,%xmm1
  xorpd  D26(%rip),%xmm1
  subsd  %xmm9,%xmm1
  movapd %xmm1,%xmm0
  divsd  %xmm14,%xmm0
  movsd  %xmm0,(%rdx)
  movsd  (%rax),%xmm0
  jmp    L907
L450:
  movslq 0x50(%rsp),%r15
  mov    %r13,0xa0(%rsp)
  mov    %rbx,%r13
  movsd  %xmm5,0x40(%rsp)
  lea    (%rbx,%r15,8),%r14
  mov    %r15,%rax
  movsd  %xmm13,0x48(%rsp)
  mov    %r14,%r15
  mov    %rax,%r14
L1415:
  mov    (%r15),%r10
  mov    0xa0(%rsp),%rax
  mov    %r14d,0xb0(%rsp)
  lea    0x0(,%r14,8),%r11
  mov    %r14d,0x20(%rsp)
  movsd  (%r10,%r14,8),%xmm7
  mov    %eax,%ebx
  subsd  0x8(%rsp),%xmm7
  cmp    %eax,%r9d
  jg     L1424
  pxor   %xmm5,%xmm5
  movslq %r9d,%rax
  movapd %xmm5,%xmm4
  nop
L1417:
  mov    0x0(%r13,%rax,8),%rdx
  movsd  (%r10,%rax,8),%xmm0
  add    $0x1,%rax
  movsd  (%rdx,%r12,1),%xmm1
  mulsd  %xmm0,%xmm1
  mulsd  (%rdx,%rbp,1),%xmm0
  addsd  %xmm1,%xmm4
  addsd  %xmm0,%xmm5
  cmp    %eax,%ebx
  jge    L1417
L493:
  mov    0x148(%rsp),%rax
  movsd  0x18(%rsp),%xmm3
  movsd  (%rax,%r14,8),%xmm0
  comisd %xmm0,%xmm3
  ja     L839
  movsd  0x48(%rsp),%xmm3
  movapd %xmm0,%xmm1
  lea    (%r10,%rbp,1),%rsi
  lea    (%r10,%r12,1),%rdi
  andpd  %xmm6,%xmm1
  comisd %xmm1,%xmm3
  ja     L1271
  mov    0x8(%r15),%rax
  mulsd  %xmm0,%xmm0
  movsd  0x48(%rsp),%xmm1
  movapd %xmm14,%xmm11
  movsd  0x8(%r10,%r11,1),%xmm10
  movapd %xmm8,%xmm13
  andpd  %xmm6,%xmm11
  movsd  (%rax,%r11,1),%xmm9
  mov    0x130(%rsp),%rax
  andpd  %xmm6,%xmm13
  movapd %xmm10,%xmm12
  movsd  (%rax,%r14,8),%xmm3
  subsd  0x8(%rsp),%xmm3
  andpd  %xmm6,%xmm12
  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  %xmm6,%xmm0
  comisd %xmm0,%xmm1
  jbe    L1359
  movapd %xmm3,%xmm0
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm1
  ja     L631
L1359:
  movsd  0x10(%rsp),%xmm1
  movapd %xmm5,%xmm0
  movapd %xmm4,%xmm15
  mov    $0x4,%eax
  mulsd  %xmm14,%xmm0
  movaps %xmm6,0x120(%rsp)
  movsd  %xmm13,0x118(%rsp)
  mulsd  %xmm10,%xmm1
  movsd  %xmm11,0x110(%rsp)
  mulsd  %xmm14,%xmm15
  movsd  %xmm12,0x108(%rsp)
  movsd  %xmm9,0x100(%rsp)
  movsd  %xmm14,0xf0(%rsp)
  movsd  %xmm8,0xc8(%rsp)
  subsd  %xmm0,%xmm1
  movsd  0x40(%rsp),%xmm0
  movsd  %xmm7,0xf8(%rsp)
  movsd  %xmm10,0xe8(%rsp)
  mulsd  %xmm10,%xmm0
  movsd  %xmm5,0xd0(%rsp)
  movsd  %xmm4,0xc0(%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  0x110(%rsp),%xmm11
  movsd  0x118(%rsp),%xmm13
  movsd  0x108(%rsp),%xmm12
  movsd  0xc8(%rsp),%xmm8
  movsd  0xf0(%rsp),%xmm14
  addsd  %xmm13,%xmm11
  movsd  0x100(%rsp),%xmm9
  movapd 0x120(%rsp),%xmm6
  comisd %xmm11,%xmm12
  jbe    L255
  mov    (%r15),%rax
  movapd 0x30(%rsp),%xmm3
  movsd  0xf8(%rsp),%xmm7
  mov    0x8(%r15),%r9
  lea    (%rax,%r12,1),%rdi
  lea    (%rax,%rbp,1),%rsi
  movsd  0xc0(%rsp),%xmm4
  movsd  0xe8(%rsp),%xmm10
  movsd  0xd0(%rsp),%xmm5
  movsd  (%rdi),%xmm0
  xorpd  %xmm3,%xmm4
  mulsd  %xmm7,%xmm0
  xorpd  %xmm3,%xmm5
  subsd  %xmm0,%xmm4
  movsd  (%rsi),%xmm0
  mulsd  %xmm8,%xmm0
  addsd  %xmm0,%xmm4
  movapd %xmm5,%xmm0
  divsd  %xmm10,%xmm4
  movsd  %xmm4,(%r9,%r12,1)
  mulsd  (%rsi),%xmm7
  movsd  (%rdi),%xmm1
  mulsd  %xmm8,%xmm1
  subsd  %xmm7,%xmm0
  subsd  %xmm1,%xmm0
  divsd  %xmm10,%xmm0
  movsd  %xmm0,(%r9,%rbp,1)
L729:
  movsd  (%rdi),%xmm1
  movsd  (%rsi),%xmm2
  movapd %xmm1,%xmm0
  andpd  %xmm6,%xmm2
  andpd  %xmm6,%xmm0
  maxsd  %xmm2,%xmm0
  comisd 0x48(%rsp),%xmm0
  jbe    L674
  movsd  0x60(%rsp),%xmm2
  divsd  %xmm0,%xmm2
  addsd  %xmm0,%xmm2
  comisd %xmm2,%xmm0
  jae    L1329
L674:
  mov    0x20(%rsp),%r9d
L1215:
  sub    $0x1,%r14
  sub    $0x8,%r15
  cmp    $0xffffffff,%r14d
  jne    L1415
  mov    %r13,%rbx
  movsd  0x40(%rsp),%xmm5
  mov    0xa0(%rsp),%r13
  movsd  0x48(%rsp),%xmm13
  jmp    L616
L839:
  movapd %xmm7,%xmm14
  movsd  %xmm5,0x10(%rsp)
  movsd  %xmm4,0x40(%rsp)
  jmp    L1215
L1271:
  movapd %xmm8,%xmm3
  movapd %xmm7,%xmm2
  mov    $0x4,%eax
  movaps %xmm6,0xd0(%rsp)
  movsd  %xmm14,0xc8(%rsp)
  movapd 0x30(%rsp),%xmm6
  movsd  %xmm8,0xc0(%rsp)
  xorpd  %xmm6,%xmm5
  xorpd  %xmm6,%xmm4
  movapd %xmm5,%xmm1
  movapd %xmm4,%xmm0
  call   <CDiv@plt>
  mov    (%r15),%rax
  movsd  0xc0(%rsp),%xmm8
  movsd  0xc8(%rsp),%xmm14
  movapd 0xd0(%rsp),%xmm6
  lea    (%rax,%r12,1),%rdi
  lea    (%rax,%rbp,1),%rsi
  jmp    L729
L255:
  mov    (%r15),%rax
  movsd  0x10(%rsp),%xmm1
  movaps %xmm6,0xd0(%rsp)
  movapd %xmm8,%xmm3
  movapd 0x30(%rsp),%xmm6
  movsd  0x40(%rsp),%xmm0
  movapd %xmm14,%xmm2
  movsd  %xmm8,0xc8(%rsp)
  movsd  (%rax,%rbp,1),%xmm4
  mov    0x8(%r15),%rdi
  movsd  %xmm14,0xc0(%rsp)
  xorpd  %xmm6,%xmm1
  xorpd  %xmm6,%xmm0
  mulsd  %xmm9,%xmm4
  lea    (%rdi,%rbp,1),%rsi
  add    %r12,%rdi
  mulsd  (%rax,%r12,1),%xmm9
  mov    $0x4,%eax
  subsd  %xmm4,%xmm1
  subsd  %xmm9,%xmm0
  call   <CDiv@plt>
  mov    (%r15),%rax
  movapd 0xd0(%rsp),%xmm6
  movsd  0xc8(%rsp),%xmm8
  movsd  0xc0(%rsp),%xmm14
  lea    (%rax,%r12,1),%rdi
  lea    (%rax,%rbp,1),%rsi
  jmp    L729
L1329:
  cmp    %r14d,%ebx
  jl     L674
  mov    0x70(%rsp),%edi
  sub    0xb0(%rsp),%edi
  add    %r14,%rdi
  lea    0x8(%r13,%rdi,8),%r9
  mov    %r15,%rdi
  jmp    L329
L815:
  mov    (%rdi),%rax
  movsd  (%rax,%r12,1),%xmm1
  lea    (%rax,%rbp,1),%rsi
L329:
  divsd  %xmm0,%xmm1
  add    $0x8,%rdi
  movsd  %xmm1,(%rax,%r12,1)
  movsd  (%rsi),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rsi)
  cmp    %rdi,%r9
  jne    L815
  jmp    L674
L631:
  movapd %xmm7,%xmm0
  movapd %xmm9,%xmm1
  andpd  %xmm6,%xmm0
  andpd  %xmm6,%xmm1
  addsd  %xmm13,%xmm0
  addsd  %xmm12,%xmm0
  addsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  mulsd  0x88(%rsp),%xmm0
  movapd %xmm0,%xmm2
L911:
  mulsd  D91(%rip),%xmm2
  movapd %xmm0,%xmm1
  addsd  %xmm2,%xmm1
  comisd %xmm0,%xmm1
  ja     L911
  jmp    L1359
L1424:
  pxor   %xmm5,%xmm5
  movapd %xmm5,%xmm4
  jmp    L493
L1401:
  movsd  (%rdi),%xmm2
  movaps %xmm6,0xa0(%rsp)
  subsd  0x8(%rsp),%xmm2
  pxor   %xmm0,%xmm0
  movapd %xmm8,%xmm3
  mov    $0x4,%eax
  movq   D26(%rip),%xmm6
  mov    %r9d,0x40(%rsp)
  movsd  %xmm13,0xb0(%rsp)
  xorpd  %xmm6,%xmm1
  movsd  %xmm14,0x60(%rsp)
  movsd  %xmm5,0x48(%rsp)
  movaps %xmm6,0x30(%rsp)
  movsd  %xmm8,0x20(%rsp)
  call   <CDiv@plt>
  mov    (%rbx,%r13,8),%rax
  movsd  0x48(%rsp),%xmm5
  movsd  0xb0(%rsp),%xmm13
  movsd  0x60(%rsp),%xmm14
  lea    (%rax,%r12,1),%rdx
  mov    0x40(%rsp),%r9d
  add    %rbp,%rax
  movapd 0xa0(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm8
  jmp    L15
L162:
  movapd %xmm2,%xmm1
L1437:
  mulsd  D91(%rip),%xmm1
  movapd %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  comisd %xmm2,%xmm0
  ja     L1437
  jmp    L1433
L62:
  cmp    %r9d,%edi
  jl     L1041
  mov    0x70(%rsp),%edx
  lea    (%rbx,%rsi,1),%rax
  sub    %r11d,%edx
  add    %r9,%rdx
  lea    (%r12,%rdx,8),%rdx
  jmp    L398
L215:
  mov    (%rax),%rcx
  movsd  (%rcx,%rbp,1),%xmm0
L398:
  divsd  %xmm1,%xmm0
  add    $0x8,%rax
  movsd  %xmm0,(%rcx,%rbp,1)
  cmp    %rax,%rdx
  jne    L215
  jmp    L1041
L610:
  mov    0x90(%rsp),%r12d
  mov    0x98(%rsp),%ebp
  mov    0x1a0(%rsp),%r9
L1372:
  movslq %r12d,%rdi
  xor    %edx,%edx
  test   %r12d,%r12d
  jg     L66
  jmp    L932
  nopw   0x0(%rax,%rax,1)
L1364:
  cmp    %edx,%ebp
  jl     L193
L220:
  add    $0x1,%rdx
  cmp    %rdx,%rdi
  je     L932
L66:
  cmp    %edx,0xe4(%rsp)
  jle    L1364
L193:
  mov    (%rbx,%rdx,8),%rsi
  mov    (%r9,%rdx,8),%rcx
  mov    %rdx,%rax
L876:
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r12d
  jg     L876
  jmp    L220
L1222:
  movapd %xmm4,%xmm5
  jmp    L1287
L1395:
  divsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm3
  movsd  %xmm3,(%rdx)
  jmp    L281
L831:
  movsd  D138(%rip),%xmm8
  movapd %xmm14,%xmm0
  andpd  %xmm6,%xmm0
  comisd %xmm0,%xmm8
  ja     L1241
  pxor   %xmm5,%xmm5
  mov    %r13d,0x28(%rsp)
  movapd %xmm5,%xmm4
  movapd %xmm5,%xmm7
  jmp    L362
L161:
  mov    %r9,0x1a0(%rsp)
  mov    %r8d,0x30(%rsp)
  movsd  %xmm8,0x80(%rsp)
  movaps %xmm6,0x50(%rsp)
  movsd  %xmm4,0x48(%rsp)
  movsd  %xmm3,0x40(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm1,0x10(%rsp)
  call   <sqrt@plt>
  movapd 0x50(%rsp),%xmm6
  mov    0x30(%rsp),%r8d
  movsd  0x48(%rsp),%xmm4
  movsd  0x40(%rsp),%xmm3
  movapd %xmm0,%xmm5
  movsd  0x80(%rsp),%xmm8
  mov    0x1a0(%rsp),%r9
  movsd  0x28(%rsp),%xmm2
  movsd  0x10(%rsp),%xmm1
  jmp    L139
L559:
  mov    %r9,0x1a0(%rsp)
  mov    %rdx,0x28(%rsp)
  movaps %xmm6,0x60(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm1,0x48(%rsp)
  mov    %ebx,0x40(%rsp)
  mov    %ebx,0x30(%rsp)
  call   <sqrt@plt>
  movapd 0x60(%rsp),%xmm6
  mov    0x40(%rsp),%ecx
  mov    0x1a0(%rsp),%r9
  movsd  0x50(%rsp),%xmm2
  movsd  0x80(%rsp),%xmm5
  movsd  0x48(%rsp),%xmm1
  mov    0x30(%rsp),%r10d
  mov    0x28(%rsp),%rdx
  jmp    L505
L949:
  mov    %edi,%ebp
  jmp    L1063
L1363:
  mov    %r9,0x1a0(%rsp)
  mov    %r8d,0x40(%rsp)
  movsd  %xmm8,0x88(%rsp)
  movaps %xmm6,0x70(%rsp)
  movsd  %xmm4,0x60(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm2,0x50(%rsp)
  movsd  %xmm1,0x48(%rsp)
  movsd  %xmm10,0x30(%rsp)
  movsd  %xmm9,0x28(%rsp)
  movsd  %xmm3,0x10(%rsp)
  call   <sqrt@plt>
  movapd 0x70(%rsp),%xmm6
  mov    0x40(%rsp),%r8d
  movsd  0x60(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm2
  movapd %xmm0,%xmm7
  movsd  0x88(%rsp),%xmm8
  mov    0x1a0(%rsp),%r9
  movsd  0x80(%rsp),%xmm5
  movsd  0x48(%rsp),%xmm1
  movsd  0x30(%rsp),%xmm10
  movsd  0x28(%rsp),%xmm9
  movsd  0x10(%rsp),%xmm3
  jmp    L1122
```

tool_calls: name: read_data
arguments: data_tag: D94
datatype: qword
name: read_data
arguments: data_tag: D138
datatype: byte[8]
name: read_data
arguments: data_tag: D26
datatype: f32[4]
name: read_data
arguments: data_tag: D217
datatype: f64
name: read_data
arguments: data_tag: D83
datatype: f32[2]
name: read_data
arguments: data_tag: D202
datatype: string
name: read_data
arguments: data_tag: D157
datatype: f32[2]
name: read_data
arguments: data_tag: D27
datatype: byte[8]
name: read_data
arguments: data_tag: D144
datatype: f64
name: read_data
arguments: data_tag: D91
datatype: byte[8]

tool: D94: 9223372036854775807

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

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

tool: D217: 0.75

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

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

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

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

tool: D144: 1

tool: {"D91": [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;
}
```