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

```asm
<Hqr2>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xf8,%rsp
  mov    %edi,%ebx
  mov    %edi,0x68(%rsp)
  mov    %esi,0xa0(%rsp)
  mov    %edx,0xb0(%rsp)
  mov    %rcx,%r15
  mov    %r8,0xc0(%rsp)
  mov    %r9,0xe8(%rsp)
  mov    0x130(%rsp),%r14
  test   %edi,%edi
  jle    L670
  mov    %r9,%r13
  lea    -0x1(%rdi),%r9d
  mov    %edi,%r8d
  mov    $0x0,%ecx
  pxor   %xmm6,%xmm6
  mov    $0x0,%edi
  movq   D177(%rip),%xmm1
  movapd %xmm6,%xmm2
  mov    %esi,%ebp
  mov    %edx,%r12d
  jmp    L965
L135:
  mov    (%r15,%rcx,8),%rax
  movsd  (%rax,%rcx,8),%xmm0
  mov    0xc0(%rsp),%rax
  movsd  %xmm0,(%rax,%rcx,8)
  movq   $0x0,0x0(%r13,%rcx,8)
L1406:
  add    $0x1,%rcx
  cmp    %r8,%rcx
  je     L1350
L965:
  mov    %edi,%edx
  mov    %ecx,%edi
  cmp    %edx,%ebx
  jle    L1281
  mov    (%r15,%rcx,8),%r10
  movslq %edx,%r11
  lea    (%r10,%r11,8),%rax
  mov    %r9d,%esi
  sub    %edx,%esi
  add    %r11,%rsi
  lea    0x8(%r10,%rsi,8),%rdx
L336:
  movsd  (%rax),%xmm0
  andpd  %xmm1,%xmm0
  addsd  %xmm0,%xmm2
  add    $0x8,%rax
  cmp    %rdx,%rax
  jne    L336
L1281:
  cmp    %ecx,%ebp
  jg     L135
  cmp    %ecx,%r12d
  jge    L1406
  jmp    L135
L1350:
  movsd  %xmm2,0x98(%rsp)
  imul   $0x1e,0x68(%rsp),%eax
  mov    %eax,0x78(%rsp)
  mov    0xa0(%rsp),%edi
  cmp    %edi,0xb0(%rsp)
  jl     L461
L1195:
  movslq 0xa0(%rsp),%rax
  mov    %rax,0x58(%rsp)
  shl    $0x3,%rax
  mov    %rax,0xe0(%rsp)
  mov    0xb0(%rsp),%eax
  mov    %eax,0x30(%rsp)
  pxor   %xmm2,%xmm2
  movsd  %xmm2,0xb8(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm2,0x8(%rsp)
  movsd  %xmm2,0x18(%rsp)
  jmp    L686
L1065:
  mov    %ecx,0x60(%rsp)
L1081:
  mov    0x80(%rsp),%rax
  mov    (%rax),%rdx
  mov    0x70(%rsp),%rdi
  lea    (%rdx,%rdi,1),%rbp
  movsd  0x0(%rbp),%xmm4
  movsd  %xmm4,0x20(%rsp)
  mov    0x60(%rsp),%ebx
  mov    0x30(%rsp),%eax
  cmp    %eax,%ebx
  je     L1249
  mov    0x90(%rsp),%rax
  mov    (%rax),%rax
  mov    0x88(%rsp),%rsi
  movsd  (%rax,%rsi,1),%xmm7
  movsd  (%rdx,%rsi,1),%xmm5
  mulsd  (%rax,%rdi,1),%xmm5
  cmp    %ebx,0x38(%rsp)
  je     L524
  mov    0x78(%rsp),%edi
  cmp    %edi,0x6c(%rsp)
  je     L852
  mov    0x6c(%rsp),%eax
  cmp    $0xa,%eax
  je     L485
  cmp    $0x14,%eax
  je     L485
L724:
  addl   $0x1,0x6c(%rsp)
  mov    0xa4(%rsp),%edx
  mov    0x60(%rsp),%ecx
  cmp    %ecx,%edx
  jl     L681
  mov    0xa8(%rsp),%rax
  movq   D177(%rip),%xmm4
  movsd  D581(%rip),%xmm6
  movsd  0x20(%rsp),%xmm8
L69:
  mov    (%r15,%rax,1),%rsi
  movsd  (%rsi,%rax,1),%xmm2
  movapd %xmm8,%xmm3
  subsd  %xmm2,%xmm3
  movapd %xmm7,%xmm1
  subsd  %xmm2,%xmm1
  mov    0x8(%r15,%rax,1),%rdi
  movapd %xmm3,%xmm0
  mulsd  %xmm1,%xmm0
  subsd  %xmm5,%xmm0
  divsd  (%rdi,%rax,1),%xmm0
  addsd  0x8(%rsi,%rax,1),%xmm0
  movsd  0x8(%rdi,%rax,1),%xmm12
  movapd %xmm12,%xmm10
  subsd  %xmm2,%xmm10
  subsd  %xmm3,%xmm10
  subsd  %xmm1,%xmm10
  mov    0x10(%r15,%rax,1),%rdi
  movsd  0x8(%rdi,%rax,1),%xmm11
  movapd %xmm0,%xmm1
  andpd  %xmm4,%xmm1
  movapd %xmm10,%xmm3
  andpd  %xmm4,%xmm3
  addsd  %xmm3,%xmm1
  movapd %xmm11,%xmm3
  andpd  %xmm4,%xmm3
  addsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  movapd %xmm0,%xmm9
  divsd  %xmm1,%xmm10
  divsd  %xmm1,%xmm11
  cmp    %edx,%ecx
  je     L674
  mov    -0x8(%r15,%rax,1),%rdi
  movsd  -0x8(%rdi,%rax,1),%xmm3
  andpd  D177(%rip),%xmm3
  movapd %xmm2,%xmm0
  andpd  D177(%rip),%xmm0
  addsd  %xmm0,%xmm3
  andpd  D177(%rip),%xmm12
  addsd  %xmm12,%xmm3
  movapd %xmm9,%xmm0
  andpd  D177(%rip),%xmm0
  mulsd  %xmm0,%xmm3
  movsd  -0x8(%rsi,%rax,1),%xmm0
  andpd  D177(%rip),%xmm0
  movapd %xmm10,%xmm12
  andpd  D177(%rip),%xmm12
  movapd %xmm11,%xmm13
  andpd  D177(%rip),%xmm13
  addsd  %xmm13,%xmm12
  mulsd  %xmm12,%xmm0
  addsd  %xmm3,%xmm0
  subsd  %xmm3,%xmm0
  andpd  D177(%rip),%xmm0
  comisd %xmm0,%xmm6
  ja     L365
  sub    $0x1,%edx
  sub    $0x8,%rax
  cmp    %ecx,%edx
  jge    L69
  movsd  %xmm9,0x18(%rsp)
  movsd  %xmm10,0x8(%rsp)
  movsd  %xmm11,0x10(%rsp)
  mov    %edx,0x28(%rsp)
  jmp    L551
L852:
  mov    0x30(%rsp),%esi
  lea    D252(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L188:
  mov    0x30(%rsp),%eax
  add    $0xf8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L485:
  movsd  0xb8(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm1
  addsd  %xmm1,%xmm6
  movsd  %xmm6,0xb8(%rsp)
  mov    0xe0(%rsp),%rax
  mov    0xd0(%rsp),%rcx
L58:
  mov    %rax,%rdx
  add    (%r15,%rax,1),%rdx
  movsd  (%rdx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L58
  mov    0x80(%rsp),%rax
  mov    (%rax),%rax
  mov    0x88(%rsp),%rdi
  movsd  (%rax,%rdi,1),%xmm1
  movq   D177(%rip),%xmm3
  andpd  %xmm3,%xmm1
  mov    0x90(%rsp),%rax
  mov    (%rax),%rax
  mov    0xc8(%rsp),%rdi
  movsd  (%rax,%rdi,1),%xmm0
  andpd  %xmm3,%xmm0
  addsd  %xmm0,%xmm1
  movapd %xmm1,%xmm7
  mulsd  D42(%rip),%xmm7
  movsd  %xmm7,0x20(%rsp)
  movapd %xmm1,%xmm5
  mulsd  D372(%rip),%xmm5
  mulsd  %xmm1,%xmm5
  jmp    L724
L681:
  mov    0xa4(%rsp),%eax
  mov    %eax,0x28(%rsp)
  jmp    L551
L674:
  movsd  %xmm0,0x18(%rsp)
  movsd  %xmm10,0x8(%rsp)
  movsd  %xmm11,0x10(%rsp)
  mov    0x60(%rsp),%eax
  mov    %eax,0x28(%rsp)
L551:
  mov    0x28(%rsp),%eax
  lea    0x2(%rax),%edi
  cmp    0x30(%rsp),%edi
  jg     L1326
  movslq %edi,%rdx
  lea    0x0(,%rdx,8),%rax
  mov    (%r15,%rdx,8),%rdx
  movq   $0x0,-0x10(%rdx,%rax,1)
  sub    $0x10,%rax
  mov    0xb4(%rsp),%ebx
  lea    0x1(%rbx),%r8d
  mov    %edi,%edx
  jmp    L978
L365:
  movsd  %xmm9,0x18(%rsp)
  movsd  %xmm10,0x8(%rsp)
  movsd  %xmm11,0x10(%rsp)
  mov    %edx,0x28(%rsp)
  jmp    L551
L295:
  mov    %rcx,%rax
L978:
  add    $0x1,%edx
  cmp    %r8d,%edx
  je     L1326
  lea    0x8(%rax),%rcx
  mov    0x18(%r15,%rax,1),%rsi
  movq   $0x0,0x8(%rsi,%rax,1)
  cmp    %edx,%edi
  je     L295
  mov    0x18(%r15,%rax,1),%rsi
  movq   $0x0,(%rsi,%rax,1)
  jmp    L295
L1326:
  mov    0x28(%rsp),%edi
  cmp    %edi,0x38(%rsp)
  jl     L707
  movslq %edi,%rax
  mov    %rax,0x40(%rsp)
  lea    0x0(,%rax,8),%r12
  lea    0x8(%r12),%rbp
  lea    (%r15,%r12,1),%rbx
  mov    0x68(%rsp),%eax
  sub    $0x1,%eax
  sub    %edi,%eax
  mov    %eax,0x48(%rsp)
  mov    %edi,%r13d
  mov    %r15,0x50(%rsp)
  mov    0xb0(%rsp),%r15d
  jmp    L1023
L883:
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x10(%rsp)
  jmp    L141
L552:
  call   <sqrt@plt>
  jmp    L955
L1079:
  mov    0x28(%rsp),%edi
  cmp    %edi,0x60(%rsp)
  je     L169
  mov    (%rbx),%rax
  lea    -0x8(%rax,%r12,1),%rax
  movsd  (%rax),%xmm0
  xorpd  D238(%rip),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L169
L1436:
  cmp    %r13d,0x68(%rsp)
  jle    L255
  mov    0x48(%rsp),%eax
  mov    0x40(%rsp),%rdi
  lea    0x1(%rdi,%rax,1),%rsi
  shl    $0x3,%rsi
  mov    %r12,%rax
  movsd  0x8(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm7
L388:
  mov    %rax,%rdx
  add    (%rbx),%rdx
  movsd  (%rdx),%xmm3
  mov    0x8(%rbx),%rcx
  movapd %xmm6,%xmm0
  mulsd  (%rcx,%rax,1),%xmm0
  addsd  %xmm3,%xmm0
  movapd %xmm7,%xmm5
  mulsd  %xmm0,%xmm5
  subsd  %xmm5,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rax,%rdx
  add    0x8(%rbx),%rdx
  mulsd  %xmm4,%xmm0
  movsd  (%rdx),%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdx)
  add    $0x8,%rax
  cmp    %rsi,%rax
  jne    L388
L255:
  lea    0x2(%r13),%eax
  lea    0x3(%r13),%edx
  mov    0x30(%rsp),%edi
  cmp    %eax,%edi
  cmovle %edi,%edx
  test   %edx,%edx
  js     L581
  mov    0x50(%rsp),%rdi
  mov    %rdi,%rax
  mov    %edx,%edx
  lea    0x8(%rdi,%rdx,8),%rsi
  movsd  0x8(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm7
L1123:
  mov    (%rax),%rcx
  lea    (%rcx,%r12,1),%rdx
  movsd  (%rdx),%xmm3
  movapd %xmm4,%xmm0
  mulsd  (%rcx,%rbp,1),%xmm0
  movapd %xmm3,%xmm5
  mulsd  %xmm7,%xmm5
  addsd  %xmm5,%xmm0
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rbp,%rdx
  add    (%rax),%rdx
  mulsd  %xmm6,%xmm0
  movsd  (%rdx),%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdx)
  add    $0x8,%rax
  cmp    %rsi,%rax
  jne    L1123
L581:
  mov    0x58(%rsp),%rax
  movsd  0x8(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm7
L576:
  mov    (%r14,%rax,8),%rcx
  lea    (%rcx,%r12,1),%rdx
  movsd  (%rdx),%xmm3
  movapd %xmm4,%xmm0
  mulsd  (%rcx,%rbp,1),%xmm0
  movapd %xmm3,%xmm5
  mulsd  %xmm7,%xmm5
  addsd  %xmm5,%xmm0
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rbp,%rdx
  add    (%r14,%rax,8),%rdx
  movapd %xmm6,%xmm5
  mulsd  %xmm0,%xmm5
  movsd  (%rdx),%xmm3
  subsd  %xmm5,%xmm3
  movsd  %xmm3,(%rdx)
  add    $0x1,%rax
  cmp    %eax,%r15d
  jge    L576
  movsd  %xmm0,0x18(%rsp)
L644:
  add    $0x1,%r13d
  addq   $0x1,0x40(%rsp)
  add    $0x8,%r12
  add    $0x8,%rbp
  add    $0x8,%rbx
  subl   $0x1,0x48(%rsp)
  cmp    0x30(%rsp),%r13d
  je     L775
L1023:
  cmp    0x28(%rsp),%r13d
  je     L457
  mov    (%rbx),%rax
  movsd  -0x8(%rax,%r12,1),%xmm4
  movsd  %xmm4,0x18(%rsp)
  mov    0x8(%rbx),%rax
  movsd  -0x8(%rax,%r12,1),%xmm7
  movsd  %xmm7,0x8(%rsp)
  cmp    %r13d,0x38(%rsp)
  je     L883
  mov    0x10(%rbx),%rax
  movsd  -0x8(%rax,%r12,1),%xmm7
  movsd  %xmm7,0x10(%rsp)
L141:
  movsd  0x18(%rsp),%xmm7
  movapd %xmm7,%xmm0
  andpd  D177(%rip),%xmm0
  movsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm3
  andpd  D177(%rip),%xmm3
  addsd  %xmm3,%xmm0
  movsd  0x10(%rsp),%xmm5
  movapd %xmm5,%xmm3
  andpd  D177(%rip),%xmm3
  addsd  %xmm3,%xmm0
  movapd %xmm0,%xmm6
  movsd  %xmm0,0x20(%rsp)
  movsd  D581(%rip),%xmm0
  comisd %xmm6,%xmm0
  ja     L644
  divsd  %xmm6,%xmm7
  movsd  %xmm7,0x18(%rsp)
  divsd  %xmm6,%xmm4
  movsd  %xmm4,0x8(%rsp)
  divsd  %xmm6,%xmm5
  movsd  %xmm5,0x10(%rsp)
L457:
  movsd  0x8(%rsp),%xmm7
  movapd %xmm7,%xmm1
  mulsd  %xmm7,%xmm1
  movsd  0x18(%rsp),%xmm2
  movapd %xmm2,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  0x10(%rsp),%xmm7
  movapd %xmm7,%xmm1
  mulsd  %xmm7,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm4,%xmm4
  ucomisd %xmm0,%xmm4
  ja     L552
  sqrtsd %xmm0,%xmm0
L955:
  movsd  0x18(%rsp),%xmm1
  mov    $0x2,%eax
  call   <D_sign@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  cmp    0x28(%rsp),%r13d
  je     L1079
  mov    (%rbx),%rax
  movapd %xmm1,%xmm0
  xorpd  D238(%rip),%xmm0
  mulsd  0x20(%rsp),%xmm0
  movsd  %xmm0,-0x8(%rax,%r12,1)
L169:
  movsd  0x18(%rsp),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm2
  divsd  %xmm1,%xmm2
  movsd  %xmm2,0x20(%rsp)
  movsd  0x8(%rsp),%xmm7
  movapd %xmm7,%xmm4
  divsd  %xmm1,%xmm4
  movsd  0x10(%rsp),%xmm6
  movapd %xmm6,%xmm2
  divsd  %xmm1,%xmm2
  divsd  %xmm0,%xmm7
  movsd  %xmm7,0x8(%rsp)
  divsd  %xmm0,%xmm6
  movsd  %xmm6,0x10(%rsp)
  cmp    %r13d,0x38(%rsp)
  je     L1436
  cmp    %r13d,0x68(%rsp)
  jle    L1355
  mov    0x48(%rsp),%eax
  mov    0x40(%rsp),%rdi
  lea    0x1(%rdi,%rax,1),%rcx
  shl    $0x3,%rcx
  mov    %r12,%rax
  movsd  0x8(%rsp),%xmm5
  movsd  0x10(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm7
L355:
  mov    %rax,%rdx
  add    (%rbx),%rdx
  movsd  (%rdx),%xmm3
  mov    0x8(%rbx),%rsi
  movapd %xmm5,%xmm0
  mulsd  (%rsi,%rax,1),%xmm0
  addsd  %xmm3,%xmm0
  mov    0x10(%rbx),%rsi
  movapd %xmm6,%xmm8
  mulsd  (%rsi,%rax,1),%xmm8
  addsd  %xmm8,%xmm0
  movapd %xmm7,%xmm8
  mulsd  %xmm0,%xmm8
  subsd  %xmm8,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rax,%rdx
  add    0x8(%rbx),%rdx
  movapd %xmm4,%xmm8
  mulsd  %xmm0,%xmm8
  movsd  (%rdx),%xmm3
  subsd  %xmm8,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rax,%rdx
  add    0x10(%rbx),%rdx
  mulsd  %xmm2,%xmm0
  movsd  (%rdx),%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdx)
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L355
L1355:
  lea    0x2(%r13),%eax
  lea    0x3(%r13),%edx
  mov    0x30(%rsp),%edi
  cmp    %eax,%edi
  cmovle %edi,%edx
  test   %edx,%edx
  js     L1451
  lea    0x10(%r12),%rcx
  mov    0x50(%rsp),%rdi
  mov    %rdi,%rax
  mov    %edx,%edx
  lea    0x8(%rdi,%rdx,8),%rsi
  movsd  0x8(%rsp),%xmm5
  movsd  0x10(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm7
L1076:
  mov    (%rax),%rdx
  lea    (%rdx,%r12,1),%rdi
  movsd  (%rdi),%xmm3
  movapd %xmm4,%xmm0
  mulsd  (%rdx,%rbp,1),%xmm0
  movapd %xmm3,%xmm8
  mulsd  %xmm7,%xmm8
  addsd  %xmm8,%xmm0
  movapd %xmm2,%xmm8
  mulsd  (%rdx,%rcx,1),%xmm8
  addsd  %xmm8,%xmm0
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdi)
  mov    %rbp,%rdx
  add    (%rax),%rdx
  movapd %xmm5,%xmm8
  mulsd  %xmm0,%xmm8
  movsd  (%rdx),%xmm3
  subsd  %xmm8,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rcx,%rdx
  add    (%rax),%rdx
  mulsd  %xmm6,%xmm0
  movsd  (%rdx),%xmm3
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rdx)
  add    $0x8,%rax
  cmp    %rsi,%rax
  jne    L1076
L1451:
  lea    0x10(%r12),%rsi
  mov    0x58(%rsp),%rax
  movsd  0x8(%rsp),%xmm6
  movsd  0x10(%rsp),%xmm7
  movsd  0x20(%rsp),%xmm8
L1323:
  mov    (%r14,%rax,8),%rdx
  lea    (%rdx,%r12,1),%rcx
  movsd  (%rcx),%xmm3
  movapd %xmm4,%xmm0
  mulsd  (%rdx,%rbp,1),%xmm0
  movapd %xmm3,%xmm5
  mulsd  %xmm8,%xmm5
  addsd  %xmm5,%xmm0
  movapd %xmm2,%xmm5
  mulsd  (%rdx,%rsi,1),%xmm5
  addsd  %xmm5,%xmm0
  subsd  %xmm0,%xmm3
  movsd  %xmm3,(%rcx)
  mov    %rbp,%rdx
  add    (%r14,%rax,8),%rdx
  movapd %xmm6,%xmm5
  mulsd  %xmm0,%xmm5
  movsd  (%rdx),%xmm3
  subsd  %xmm5,%xmm3
  movsd  %xmm3,(%rdx)
  mov    %rsi,%rdx
  add    (%r14,%rax,8),%rdx
  movapd %xmm7,%xmm5
  mulsd  %xmm0,%xmm5
  movsd  (%rdx),%xmm3
  subsd  %xmm5,%xmm3
  movsd  %xmm3,(%rdx)
  add    $0x1,%rax
  cmp    %eax,%r15d
  jge    L1323
  movsd  %xmm0,0x18(%rsp)
  jmp    L644
L775:
  mov    0x50(%rsp),%r15
L707:
  mov    0x78(%rsp),%r12d
  sub    0x6c(%rsp),%r12d
  mov    0xa0(%rsp),%esi
  mov    0x30(%rsp),%ecx
  cmp    %ecx,%esi
  jge    L163
  mov    0x70(%rsp),%rax
  movsd  D581(%rip),%xmm4
  movapd %xmm4,%xmm3
  movsd  0x98(%rsp),%xmm5
L656:
  mov    (%r15,%rax,1),%rdx
  mov    -0x8(%r15,%rax,1),%rdi
  movsd  -0x8(%rdi,%rax,1),%xmm1
  andpd  D177(%rip),%xmm1
  movsd  (%rdx,%rax,1),%xmm0
  andpd  D177(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movapd %xmm1,%xmm0
  cmpnltsd %xmm4,%xmm0
  andpd  %xmm0,%xmm1
  andnpd %xmm5,%xmm0
  orpd   %xmm0,%xmm1
  movsd  -0x8(%rdx,%rax,1),%xmm0
  andpd  D177(%rip),%xmm0
  addsd  %xmm1,%xmm0
  subsd  %xmm1,%xmm0
  andpd  D177(%rip),%xmm0
  comisd %xmm0,%xmm3
  ja     L1065
  sub    $0x1,%ecx
  sub    $0x8,%rax
  cmp    %ecx,%esi
  jne    L656
  mov    0xa0(%rsp),%eax
  mov    %eax,0x60(%rsp)
  jmp    L1081
L983:
  call   <sqrt@plt>
  movapd %xmm0,%xmm2
  jmp    L1353
L1175:
  movsd  0x18(%rsp),%xmm1
  movapd %xmm2,%xmm0
  mov    $0x2,%eax
  call   <D_sign@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  addsd  0x18(%rsp),%xmm0
  movsd  0x20(%rsp),%xmm1
  addsd  %xmm0,%xmm1
  mov    0xc0(%rsp),%rax
  mov    0x70(%rsp),%rdi
  movsd  %xmm1,-0x8(%rax,%rdi,1)
  add    %rdi,%rax
  movapd %xmm0,%xmm2
  andpd  D177(%rip),%xmm2
  comisd D581(%rip),%xmm2
  ja     L635
  movsd  %xmm1,(%rax)
L364:
  mov    0xe8(%rsp),%rax
  mov    0x70(%rsp),%rdi
  movq   $0x0,-0x8(%rax,%rdi,1)
  mov    0xd8(%rsp),%rbx
  movq   $0x0,(%rax,%rbx,8)
  mov    0x80(%rsp),%rax
  mov    (%rax),%rax
  movsd  -0x8(%rax,%rdi,1),%xmm1
  movapd %xmm1,%xmm3
  andpd  D177(%rip),%xmm3
  addsd  %xmm2,%xmm3
  movsd  %xmm3,0x28(%rsp)
  movapd %xmm1,%xmm4
  divsd  %xmm3,%xmm4
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm0,%xmm6
  divsd  %xmm3,%xmm6
  movsd  %xmm6,0x20(%rsp)
  movapd %xmm4,%xmm0
  mulsd  %xmm4,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L275
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x10(%rsp)
L136:
  movsd  0x8(%rsp),%xmm6
  movsd  0x10(%rsp),%xmm4
  divsd  %xmm4,%xmm6
  movsd  %xmm6,0x18(%rsp)
  movsd  0x20(%rsp),%xmm6
  divsd  %xmm4,%xmm6
  movsd  %xmm6,0x8(%rsp)
  mov    0x68(%rsp),%eax
  mov    0x60(%rsp),%edi
  cmp    %edi,%eax
  jle    L1291
  mov    %eax,%edx
  sub    0xb4(%rsp),%edx
  add    0xd8(%rsp),%rdx
  shl    $0x3,%rdx
  mov    %r13,%rax
  mov    0x80(%rsp),%rsi
L606:
  mov    %rax,%rcx
  add    0x0(%rbp),%rcx
  movsd  (%rcx),%xmm0
  mov    (%rsi),%rdi
  movsd  0x18(%rsp),%xmm4
  movapd %xmm4,%xmm1
  mulsd  (%rdi,%rax,1),%xmm1
  movsd  0x8(%rsp),%xmm6
  movapd %xmm6,%xmm2
  mulsd  %xmm0,%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,(%rcx)
  mov    %rax,%rcx
  add    (%rsi),%rcx
  mulsd  (%rcx),%xmm6
  movapd %xmm6,%xmm1
  mulsd  %xmm4,%xmm0
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rcx)
  add    $0x8,%rax
  cmp    %rdx,%rax
  jne    L606
L1291:
  cmpl   $0x0,0x30(%rsp)
  js     L888
  mov    %r15,%rax
  mov    0xb4(%rsp),%edx
  lea    0x8(%r15,%rdx,8),%rsi
L1078:
  mov    (%rax),%rcx
  lea    (%rcx,%r13,1),%rdx
  movsd  (%rdx),%xmm0
  mov    0x70(%rsp),%rdi
  movsd  0x18(%rsp),%xmm6
  movapd %xmm6,%xmm1
  mulsd  (%rcx,%rdi,1),%xmm1
  movsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm2
  mulsd  %xmm0,%xmm2
  addsd  %xmm2,%xmm1
  movsd  %xmm1,(%rdx)
  add    (%rax),%rdi
  mulsd  (%rdi),%xmm4
  movapd %xmm4,%xmm1
  mulsd  %xmm6,%xmm0
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdi)
  add    $0x8,%rax
  cmp    %rsi,%rax
  jne    L1078
L888:
  mov    0x58(%rsp),%rax
L99:
  mov    (%r14,%rax,8),%rcx
  lea    (%rcx,%r13,1),%rdx
  movsd  (%rdx),%xmm2
  mov    0x70(%rsp),%rdi
  movsd  0x18(%rsp),%xmm6
  movapd %xmm6,%xmm0
  mulsd  (%rcx,%rdi,1),%xmm0
  movsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm1
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  add    (%r14,%rax,8),%rdi
  mulsd  (%rdi),%xmm4
  movapd %xmm4,%xmm0
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rdi)
  add    $0x1,%rax
  cmp    %eax,0xb0(%rsp)
  jge    L99
  mov    0xa4(%rsp),%eax
  mov    %eax,0x30(%rsp)
  jmp    L864
L635:
  movsd  0x38(%rsp),%xmm3
  divsd  %xmm0,%xmm3
  movsd  0x20(%rsp),%xmm1
  subsd  %xmm3,%xmm1
  movsd  %xmm1,(%rax)
  jmp    L364
L275:
  call   <sqrt@plt>
  movsd  %xmm0,0x10(%rsp)
  jmp    L136
L546:
  movsd  %xmm2,0x20(%rsp)
  movsd  0x98(%rsp),%xmm0
  andpd  D177(%rip),%xmm0
  movl   $0x0,0x30(%rsp)
  movsd  D581(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L188
  mov    0x68(%rsp),%eax
  sub    $0x1,%eax
  mov    %eax,0x6c(%rsp)
  js     L514
L448:
  mov    0x68(%rsp),%edi
  lea    -0x2(%rdi),%eax
  cltq
  mov    %rax,0x58(%rsp)
  movslq 0x6c(%rsp),%r13
  lea    -0x3(%rdi),%eax
  mov    %eax,0x70(%rsp)
  mov    %r14,0x130(%rsp)
  mov    %r13,%r14
  jmp    L1080
L844:
  lea    (%rax,%rbx,1),%rdi
  movsd  (%rdi),%xmm2
  xorpd  D238(%rip),%xmm1
  movsd  0x30(%rsp),%xmm3
  subsd  0x38(%rsp),%xmm2
  pxor   %xmm0,%xmm0
  mov    $0x4,%eax
  call   <CDiv@plt>
  jmp    L436
L1066:
  pxor   %xmm2,%xmm2
  movsd  %xmm2,0x18(%rsp)
  movsd  %xmm2,0x8(%rsp)
  jmp    L287
L742:
  lea    (%rcx,%rbp,1),%rsi
  lea    (%rcx,%rbx,1),%rdi
  movq   D238(%rip),%xmm0
  movsd  0x18(%rsp),%xmm1
  xorpd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm4
  xorpd  %xmm0,%xmm4
  movapd %xmm4,%xmm0
  movsd  0x30(%rsp),%xmm3
  movsd  0x40(%rsp),%xmm2
  mov    $0x4,%eax
  call   <CDiv@plt>
  jmp    L1263
L713:
  movq   D177(%rip),%xmm1
  movsd  0x40(%rsp),%xmm0
  andpd  %xmm1,%xmm0
  addsd  0x88(%rsp),%xmm0
  movapd %xmm6,%xmm2
  andpd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  movsd  0x78(%rsp),%xmm2
  andpd  %xmm1,%xmm2
  addsd  %xmm2,%xmm0
  movsd  0x20(%rsp),%xmm4
  andpd  %xmm4,%xmm1
  addsd  %xmm1,%xmm0
  mulsd  0x98(%rsp),%xmm0
  movapd %xmm0,%xmm2
L511:
  mulsd  D231(%rip),%xmm2
  movapd %xmm0,%xmm1
  addsd  %xmm2,%xmm1
  comisd %xmm0,%xmm1
  ja     L511
  jmp    L1469
L603:
  mov    0x8(%r14),%rax
  mov    (%r14),%rdx
  lea    (%rax,%rbp,1),%rsi
  lea    (%rax,%rbx,1),%rdi
  movq   D238(%rip),%xmm0
  movsd  0x28(%rsp),%xmm1
  xorpd  %xmm0,%xmm1
  movsd  0x78(%rsp),%xmm2
  movapd %xmm2,%xmm4
  mulsd  (%rdx,%rbp,1),%xmm4
  movsd  0x10(%rsp),%xmm6
  xorpd  %xmm6,%xmm0
  mulsd  (%rdx,%rbx,1),%xmm2
  subsd  %xmm2,%xmm0
  movsd  0x30(%rsp),%xmm3
  movsd  0x20(%rsp),%xmm2
  subsd  %xmm4,%xmm1
  mov    $0x4,%eax
  call   <CDiv@plt>
  jmp    L1263
L1328:
  movsd  0x40(%rsp),%xmm4
  movsd  %xmm4,0x20(%rsp)
  movsd  0x18(%rsp),%xmm6
  movsd  %xmm6,0x28(%rsp)
  movsd  0x8(%rsp),%xmm4
  movsd  %xmm4,0x10(%rsp)
L1336:
  sub    $0x1,%r13
  subq   $0x8,0x60(%rsp)
  test   %r13d,%r13d
  js     L542
L790:
  mov    %r13d,0xa4(%rsp)
  mov    %r13d,0x50(%rsp)
  lea    0x0(,%r13,8),%rdi
  mov    0x60(%rsp),%rax
  mov    %rax,%r14
  mov    (%rax),%rcx
  movsd  (%rcx,%r13,8),%xmm0
  subsd  0x38(%rsp),%xmm0
  movsd  %xmm0,0x40(%rsp)
  mov    0x90(%rsp),%rax
  mov    %eax,%r12d
  cmp    %eax,%esi
  jg     L1066
  movslq %esi,%rax
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x18(%rsp)
  movsd  %xmm6,0x8(%rsp)
L1377:
  movsd  (%rcx,%rax,8),%xmm0
  mov    (%r15,%rax,8),%rdx
  movapd %xmm0,%xmm1
  mulsd  (%rdx,%rbx,1),%xmm1
  addsd  0x8(%rsp),%xmm1
  movsd  %xmm1,0x8(%rsp)
  mulsd  (%rdx,%rbp,1),%xmm0
  addsd  0x18(%rsp),%xmm0
  movsd  %xmm0,0x18(%rsp)
  add    $0x1,%rax
  cmp    %eax,%r12d
  jge    L1377
L287:
  mov    0xe8(%rsp),%rax
  movsd  (%rax,%r13,8),%xmm2
  pxor   %xmm0,%xmm0
  comisd %xmm2,%xmm0
  ja     L1328
  movapd %xmm2,%xmm0
  andpd  D177(%rip),%xmm0
  movsd  D581(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L742
  movsd  0x8(%rcx,%rdi,1),%xmm6
  movsd  %xmm6,0x48(%rsp)
  mov    0x8(%r14),%rax
  movsd  (%rax,%rdi,1),%xmm4
  movsd  %xmm4,0x78(%rsp)
  mov    0xc0(%rsp),%rax
  movsd  (%rax,%r13,8),%xmm1
  subsd  0x38(%rsp),%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  %xmm2,%xmm2
  addsd  %xmm0,%xmm2
  movsd  0x30(%rsp),%xmm4
  movapd %xmm4,%xmm0
  mulsd  %xmm4,%xmm0
  subsd  %xmm0,%xmm2
  addsd  %xmm1,%xmm1
  mulsd  %xmm4,%xmm1
  movapd %xmm1,%xmm3
  movapd %xmm2,%xmm0
  andpd  D177(%rip),%xmm0
  movsd  D581(%rip),%xmm1
  comisd %xmm0,%xmm1
  jbe    L1469
  movapd %xmm3,%xmm0
  andpd  D177(%rip),%xmm0
  comisd %xmm0,%xmm1
  ja     L713
L1469:
  lea    (%rcx,%rbp,1),%rsi
  lea    (%rcx,%rbx,1),%rdi
  movsd  0x18(%rsp),%xmm5
  movapd %xmm5,%xmm0
  movsd  0x20(%rsp),%xmm7
  mulsd  %xmm7,%xmm0
  movsd  0x48(%rsp),%xmm6
  movapd %xmm6,%xmm4
  mulsd  0x28(%rsp),%xmm4
  movapd %xmm4,%xmm1
  subsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm14
  movapd %xmm14,%xmm4
  mulsd  %xmm7,%xmm4
  movapd %xmm6,%xmm0
  mulsd  0x10(%rsp),%xmm0
  subsd  %xmm4,%xmm0
  movsd  0x30(%rsp),%xmm7
  movapd %xmm7,%xmm4
  mulsd  %xmm5,%xmm4
  addsd  %xmm4,%xmm0
  movapd %xmm7,%xmm4
  mulsd  %xmm14,%xmm4
  subsd  %xmm4,%xmm1
  mov    $0x4,%eax
  call   <CDiv@plt>
  movsd  0x48(%rsp),%xmm4
  movapd %xmm4,%xmm1
  andpd  D177(%rip),%xmm1
  movsd  0x20(%rsp),%xmm7
  andpd  D177(%rip),%xmm7
  movapd %xmm7,%xmm0
  addsd  0x88(%rsp),%xmm0
  comisd %xmm0,%xmm1
  jbe    L603
  mov    (%r14),%rax
  mov    0x8(%r14),%rdx
  movq   D238(%rip),%xmm0
  movsd  0x8(%rsp),%xmm14
  xorpd  %xmm0,%xmm14
  movapd %xmm14,%xmm1
  movsd  0x40(%rsp),%xmm3
  movapd %xmm3,%xmm2
  mulsd  (%rax,%rbx,1),%xmm2
  subsd  %xmm2,%xmm1
  movsd  0x30(%rsp),%xmm6
  movapd %xmm6,%xmm2
  mulsd  (%rax,%rbp,1),%xmm2
  addsd  %xmm2,%xmm1
  divsd  %xmm4,%xmm1
  movsd  %xmm1,(%rdx,%rbx,1)
  mov    (%r14),%rax
  mov    0x8(%r14),%rdx
  movsd  0x18(%rsp),%xmm5
  xorpd  %xmm0,%xmm5
  movapd %xmm5,%xmm0
  movapd %xmm3,%xmm1
  mulsd  (%rax,%rbp,1),%xmm1
  subsd  %xmm1,%xmm0
  mulsd  (%rax,%rbx,1),%xmm6
  subsd  %xmm6,%xmm0
  divsd  %xmm4,%xmm0
  movsd  %xmm0,(%rdx,%rbp,1)
L1263:
  mov    (%r14),%rax
  movsd  (%rax,%rbx,1),%xmm0
  andpd  D177(%rip),%xmm0
  movsd  (%rax,%rbp,1),%xmm1
  andpd  D177(%rip),%xmm1
  maxsd  %xmm1,%xmm0
  comisd D581(%rip),%xmm0
  jbe    L1073
  movsd  D441(%rip),%xmm1
  divsd  %xmm0,%xmm1
  addsd  %xmm0,%xmm1
  mov    0x50(%rsp),%esi
  comisd %xmm1,%xmm0
  jb     L1336
  cmp    %r13d,%r12d
  jl     L847
  mov    0x80(%rsp),%eax
  sub    0xa4(%rsp),%eax
  add    %r13,%rax
  lea    0x8(%r15,%rax,8),%rcx
  mov    0x60(%rsp),%rax
L1230:
  mov    %rbx,%rdx
  add    (%rax),%rdx
  movsd  (%rdx),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx)
  mov    %rbp,%rdx
  add    (%rax),%rdx
  movsd  (%rdx),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx)
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L1230
  mov    0x50(%rsp),%esi
  jmp    L1336
L1073:
  mov    0x50(%rsp),%esi
  jmp    L1336
L847:
  mov    0x50(%rsp),%esi
  jmp    L1336
L542:
  mov    0x90(%rsp),%r14
L892:
  cmpl   $0x0,0x58(%rsp)
  js     L64
L1458:
  subq   $0x1,0x58(%rsp)
  sub    $0x1,%r14
  subl   $0x1,0x70(%rsp)
L1080:
  mov    %r14d,0x80(%rsp)
  mov    %r14d,%ebx
  lea    0x0(,%r14,8),%rbp
  mov    0xc0(%rsp),%rax
  movsd  (%rax,%r14,8),%xmm4
  movsd  %xmm4,0x38(%rsp)
  mov    0xe8(%rsp),%rax
  movsd  (%rax,%r14,8),%xmm6
  movsd  %xmm6,0x30(%rsp)
  mov    0x58(%rsp),%rdi
  mov    %edi,%r12d
  movsd  D9(%rip),%xmm0
  comisd %xmm6,%xmm0
  jbe    L347
  lea    0x0(,%rdi,8),%rbx
  mov    (%r15,%r14,8),%rax
  movsd  (%rax,%rdi,8),%xmm2
  mov    (%r15,%rdi,8),%rax
  lea    (%rax,%rbp,1),%rsi
  movsd  (%rsi),%xmm1
  movq   D177(%rip),%xmm0
  movapd %xmm2,%xmm3
  andpd  %xmm0,%xmm3
  andpd  %xmm1,%xmm0
  comisd %xmm0,%xmm3
  jbe    L844
  divsd  %xmm2,%xmm6
  movsd  %xmm6,(%rax,%rdi,8)
  mov    (%r15,%r14,8),%rax
  mov    (%r15,%rdi,8),%rdx
  movsd  (%rax,%rbp,1),%xmm0
  subsd  %xmm4,%xmm0
  xorpd  D238(%rip),%xmm0
  divsd  (%rax,%rdi,8),%xmm0
  movsd  %xmm0,(%rdx,%rbp,1)
L436:
  mov    (%r15,%r14,8),%rax
  movq   $0x0,(%rax,%rbx,1)
  mov    (%r15,%r14,8),%rax
  mov    D441(%rip),%rdi
  mov    %rdi,(%rax,%rbp,1)
  cmpl   $0x0,0x70(%rsp)
  js     L892
  movslq 0x70(%rsp),%r13
  lea    (%r15,%r13,8),%rax
  mov    %rax,0x60(%rsp)
  movsd  0x30(%rsp),%xmm6
  andpd  D177(%rip),%xmm6
  movsd  %xmm6,0x88(%rsp)
  mov    %r12d,%esi
  mov    %r14,0x90(%rsp)
  jmp    L790
L347:
  movsd  0x30(%rsp),%xmm0
  andpd  D177(%rip),%xmm0
  movsd  D581(%rip),%xmm1
  comisd %xmm0,%xmm1
  jbe    L892
  mov    (%r15,%r14,8),%rax
  mov    D441(%rip),%rdi
  mov    %rdi,(%rax,%rbp,1)
  cmpl   $0x0,0x58(%rsp)
  jns    L214
  mov    0x130(%rsp),%r14
L514:
  mov    0x68(%rsp),%eax
  test   %eax,%eax
  jle    L261
  lea    -0x1(%rax),%r8d
  mov    %eax,%edi
  mov    $0x0,%eax
  jmp    L545
L214:
  movslq %r12d,%r13
  lea    0x0(,%r13,8),%rsi
  lea    (%r15,%rsi,1),%r8
  pxor   %xmm5,%xmm5
  movapd %xmm1,%xmm4
  mov    0xc0(%rsp),%r11
  jmp    L1259
L605:
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x10(%rsp)
  jmp    L349
L1220:
  movsd  0x98(%rsp),%xmm2
L33:
  mulsd  D231(%rip),%xmm2
  movsd  0x98(%rsp),%xmm6
  movapd %xmm6,%xmm0
  addsd  %xmm2,%xmm0
  comisd %xmm6,%xmm0
  ja     L33
  jmp    L938
L226:
  movsd  0x8(%rdx,%rsi,1),%xmm6
  mov    0x8(%r9),%rax
  movsd  (%rax,%rsi,1),%xmm7
  movsd  (%r11,%rsi,1),%xmm1
  subsd  0x38(%rsp),%xmm1
  movsd  0x28(%rsp),%xmm0
  mulsd  %xmm6,%xmm0
  movsd  0x10(%rsp),%xmm15
  movapd %xmm15,%xmm8
  movsd  0x20(%rsp),%xmm14
  mulsd  %xmm14,%xmm8
  subsd  %xmm8,%xmm0
  mulsd  %xmm1,%xmm1
  mulsd  %xmm3,%xmm3
  addsd  %xmm3,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx,%rbp,1)
  movapd %xmm6,%xmm3
  andpd  D177(%rip),%xmm3
  movapd %xmm14,%xmm1
  andpd  D177(%rip),%xmm1
  comisd %xmm1,%xmm3
  jbe    L764
  mov    0x8(%r9),%rax
  movapd %xmm15,%xmm1
  xorpd  D238(%rip),%xmm1
  mulsd  %xmm2,%xmm0
  subsd  %xmm0,%xmm1
  divsd  %xmm6,%xmm1
  movsd  %xmm1,(%rax,%rbp,1)
  jmp    L1445
L764:
  mov    0x8(%r9),%rax
  movsd  0x28(%rsp),%xmm1
  xorpd  D238(%rip),%xmm1
  movapd %xmm7,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  divsd  0x20(%rsp),%xmm0
  movsd  %xmm0,(%rax,%rbp,1)
  jmp    L1445
L150:
  movsd  %xmm2,0x20(%rsp)
  movsd  0x10(%rsp),%xmm2
  movsd  %xmm2,0x28(%rsp)
L854:
  sub    $0x1,%r13
  sub    $0x8,%r8
  sub    $0x8,%rsi
  test   %r13d,%r13d
  js     L1458
L1259:
  mov    %r13d,%r10d
  mov    %r13d,%edi
  mov    %r8,%r9
  mov    (%r8),%rdx
  movsd  (%rdx,%rsi,1),%xmm2
  subsd  0x38(%rsp),%xmm2
  mov    %r14d,%ecx
  cmp    %r14d,%ebx
  jg     L605
  movslq %ebx,%rax
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x10(%rsp)
L210:
  mov    (%r15,%rax,8),%r12
  movsd  (%r12,%rbp,1),%xmm0
  mulsd  (%rdx,%rax,8),%xmm0
  addsd  0x10(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L210
L349:
  mov    0xe8(%rsp),%rax
  movsd  (%rax,%rsi,1),%xmm3
  comisd %xmm3,%xmm5
  ja     L150
  movapd %xmm3,%xmm0
  andpd  D177(%rip),%xmm0
  comisd %xmm0,%xmm4
  jbe    L226
  movapd %xmm2,%xmm0
  andpd  D177(%rip),%xmm0
  movsd  D581(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L1220
L938:
  movsd  0x10(%rsp),%xmm0
  xorpd  D238(%rip),%xmm0
  divsd  %xmm2,%xmm0
  movsd  %xmm0,(%rdx,%rbp,1)
L1445:
  mov    (%r9),%rax
  movsd  (%rax,%rbp,1),%xmm0
  andpd  D177(%rip),%xmm0
  mov    %edi,%ebx
  comisd D581(%rip),%xmm0
  jbe    L854
  movsd  D441(%rip),%xmm1
  divsd  %xmm0,%xmm1
  addsd  %xmm0,%xmm1
  comisd %xmm1,%xmm0
  jb     L854
  cmp    %r13d,%ecx
  jl     L854
  mov    0x80(%rsp),%eax
  sub    %r10d,%eax
  add    %r13,%rax
  lea    0x8(%r15,%rax,8),%rcx
  mov    %r8,%rax
L71:
  mov    %rbp,%rdx
  add    (%rax),%rdx
  movsd  (%rdx),%xmm1
  divsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx)
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L71
  mov    %edi,%ebx
  jmp    L854
L64:
  mov    0x130(%rsp),%r14
  jmp    L514
L409:
  cmp    0x68(%rsp),%edx
  jge    L124
  lea    0x0(,%rax,8),%rdx
  mov    %r8d,%ecx
  sub    %esi,%ecx
  lea    0x1(%rax,%rcx,1),%rcx
  shl    $0x3,%rcx
L397:
  mov    (%r15,%rax,8),%rsi
  movsd  (%rsi,%rdx,1),%xmm0
  mov    (%r14,%rax,8),%rsi
  movsd  %xmm0,(%rsi,%rdx,1)
  add    $0x8,%rdx
  cmp    %rdx,%rcx
  jne    L397
L124:
  add    $0x1,%rax
  cmp    %rax,%rdi
  je     L261
L545:
  mov    %eax,%esi
  mov    %eax,%edx
  cmp    %eax,0xa0(%rsp)
  jg     L409
  cmp    %eax,0xb0(%rsp)
  jge    L124
  jmp    L409
L261:
  mov    0xa0(%rsp),%ebp
  mov    0x6c(%rsp),%r12d
  cmp    %r12d,%ebp
  jg     L234
  movslq %r12d,%rcx
  shl    $0x3,%rcx
  lea    -0x1(%rbp),%r11d
  movslq %ebp,%r9
  lea    (%r14,%r9,8),%r10
  mov    0xb0(%rsp),%r13d
  mov    %r13d,%eax
  sub    %ebp,%eax
  add    %r9,%rax
  lea    0x8(%r14,%rax,8),%rbx
  jmp    L1202
L1313:
  mov    (%r8),%rdi
  mov    %r9,%rax
  pxor   %xmm1,%xmm1
L449:
  mov    (%r15,%rax,8),%rdx
  movsd  (%rdx,%rcx,1),%xmm0
  mulsd  (%rdi,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %eax,%esi
  jge    L449
L251:
  mov    (%r8),%rax
  movsd  %xmm1,(%rax,%rcx,1)
  add    $0x8,%r8
  cmp    %r8,%rbx
  je     L842
L549:
  pxor   %xmm1,%xmm1
  cmp    %esi,%ebp
  jle    L1313
  jmp    L251
L842:
  sub    $0x1,%r12d
  sub    $0x8,%rcx
  cmp    %r11d,%r12d
  je     L443
L1202:
  cmp    %r12d,%r13d
  mov    %r12d,%esi
  cmovle %r13d,%esi
  mov    %r10,%r8
  cmp    %ebp,%r13d
  jge    L549
  jmp    L842
L443:
  movl   $0x0,0x30(%rsp)
  jmp    L188
L234:
  movl   $0x0,0x30(%rsp)
  jmp    L188
L524:
  movsd  %xmm1,0x28(%rsp)
  movsd  %xmm5,0x38(%rsp)
  movq   %xmm7,%rbx
  movapd %xmm7,%xmm0
  subsd  0x20(%rsp),%xmm0
  mulsd  D437(%rip),%xmm0
  movsd  %xmm0,0x18(%rsp)
  mulsd  %xmm0,%xmm0
  addsd  %xmm5,%xmm0
  movsd  %xmm0,0x8(%rsp)
  andpd  D177(%rip),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm0,%xmm1
  ja     L983
  movapd %xmm0,%xmm2
  sqrtsd %xmm2,%xmm2
L1353:
  movsd  0x20(%rsp),%xmm0
  movsd  0xb8(%rsp),%xmm4
  addsd  %xmm4,%xmm0
  movsd  %xmm0,0x0(%rbp)
  mov    0x80(%rsp),%rax
  mov    (%rax),%rax
  mov    0xd8(%rsp),%rdi
  movsd  (%rax,%rdi,8),%xmm6
  movsd  %xmm6,0x20(%rsp)
  mov    0x70(%rsp),%rdi
  lea    -0x8(%rdi),%r13
  lea    (%r15,%r13,1),%rbp
  mov    0x0(%rbp),%rax
  movq   %rbx,%xmm0
  addsd  %xmm4,%xmm0
  movsd  %xmm0,-0x8(%rax,%rdi,1)
  movsd  0x8(%rsp),%xmm4
  comisd D9(%rip),%xmm4
  jae    L1175
  movsd  0x20(%rsp),%xmm0
  addsd  0x18(%rsp),%xmm0
  mov    0xc0(%rsp),%rax
  mov    0x70(%rsp),%rdi
  movsd  %xmm0,-0x8(%rax,%rdi,1)
  mov    0xd8(%rsp),%rbx
  movsd  %xmm0,(%rax,%rbx,8)
  mov    0xe8(%rsp),%rax
  movsd  %xmm2,-0x8(%rax,%rdi,1)
  movapd %xmm2,%xmm0
  xorpd  D238(%rip),%xmm0
  movsd  %xmm0,(%rax,%rbx,8)
  mov    0xa4(%rsp),%eax
  mov    %eax,0x30(%rsp)
  jmp    L864
L1249:
  movsd  %xmm1,0x28(%rsp)
  jmp    L914
L163:
  movsd  %xmm1,0x28(%rsp)
  mov    0x80(%rsp),%rax
  mov    0x70(%rsp),%rbp
  add    (%rax),%rbp
  movsd  0x0(%rbp),%xmm4
  movsd  %xmm4,0x20(%rsp)
L914:
  movsd  0x20(%rsp),%xmm0
  addsd  0xb8(%rsp),%xmm0
  movsd  %xmm0,0x0(%rbp)
  mov    0x80(%rsp),%rax
  mov    (%rax),%rax
  mov    0xd8(%rsp),%rdi
  movsd  (%rax,%rdi,8),%xmm0
  mov    0xc0(%rsp),%rbx
  mov    %rdi,%rax
  movsd  %xmm0,(%rbx,%rdi,8)
  mov    0xe8(%rsp),%rdi
  movq   $0x0,(%rdi,%rax,8)
  mov    0x38(%rsp),%eax
  mov    %eax,0x30(%rsp)
L864:
  mov    0x30(%rsp),%edi
  cmp    %edi,0xa0(%rsp)
  jg     L546
  mov    %r12d,0x78(%rsp)
L686:
  mov    0x30(%rsp),%eax
  lea    -0x1(%rax),%edi
  mov    %edi,0x38(%rsp)
  lea    -0x2(%rax),%ebx
  mov    %ebx,0xa4(%rsp)
  movslq %eax,%rdi
  mov    %rdi,0xd8(%rsp)
  shl    $0x3,%rdi
  mov    %rdi,0x70(%rsp)
  lea    (%r15,%rdi,1),%rsi
  mov    %rsi,0x80(%rsp)
  lea    -0x8(%rdi),%rsi
  mov    %rsi,0x88(%rsp)
  add    %r15,%rsi
  mov    %rsi,0x90(%rsp)
  sub    $0x10,%rdi
  mov    %rdi,0xc8(%rsp)
  mov    %eax,0xb4(%rsp)
  mov    %eax,%edi
  sub    0xa0(%rsp),%edi
  mov    %rdi,%rax
  mov    0x58(%rsp),%rdi
  lea    0x1(%rdi,%rax,1),%rax
  shl    $0x3,%rax
  mov    %rax,0xd0(%rsp)
  movslq %ebx,%rax
  shl    $0x3,%rax
  mov    %rax,0xa8(%rsp)
  movl   $0x0,0x6c(%rsp)
  movsd  0x28(%rsp),%xmm1
  jmp    L707
L670:
  imul   $0x1e,0x68(%rsp),%eax
  mov    %eax,0x78(%rsp)
  pxor   %xmm2,%xmm2
  movsd  %xmm2,0x98(%rsp)
  mov    0xa0(%rsp),%edi
  cmp    %edi,0xb0(%rsp)
  jge    L1195
  movl   $0x0,0x30(%rsp)
  jmp    L188
L461:
  movsd  0x98(%rsp),%xmm0
  andpd  D177(%rip),%xmm0
  movl   $0x0,0x30(%rsp)
  movsd  D581(%rip),%xmm1
  comisd %xmm0,%xmm1
  ja     L188
  mov    0x68(%rsp),%eax
  sub    $0x1,%eax
  mov    %eax,0x6c(%rsp)
  pxor   %xmm2,%xmm2
  movsd  %xmm2,0x20(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm2,0x10(%rsp)
  jmp    L448
```

tool_calls: name: unpack_data
arguments: data_tag: D177
type: qword[2]
name: unpack_data
arguments: data_tag: D581
type: byte[16]
name: unpack_data
arguments: data_tag: D252
type: string
name: unpack_data
arguments: data_tag: D42
type: f64
name: unpack_data
arguments: data_tag: D372
type: f32[2]
name: unpack_data
arguments: data_tag: D238
type: f32[4]
name: unpack_data
arguments: data_tag: D231
type: byte[8]
name: unpack_data
arguments: data_tag: D441
type: f64
name: unpack_data
arguments: data_tag: D9
type: byte[16]
name: unpack_data
arguments: data_tag: D437
type: f32[2]

tool: {"D177": [0x7fffffffffffffff,0x0000000000000000]}

tool: {"D581": [0xa0,0xc2,0xeb,0xfe,0x4b,0x48,0xb4,0x39,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x3f]}

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

tool: D42: 0.75

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

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

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

tool: D441: 1

tool: {"D9": [0x11,0xea,0x2d,0x81,0x99,0x97,0x71,0xbd,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

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

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;
}
```