user: What would the C source look like for the assembly code provided here?

```asm
<Hqr2>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xf0,%rsp
  mov    %edi,-0xc4(%rbp)
  mov    %esi,-0xc8(%rbp)
  mov    %edx,-0xcc(%rbp)
  mov    %rcx,-0xd8(%rbp)
  mov    %r8,-0xe0(%rbp)
  mov    %r9,-0xe8(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movl   $0x0,-0xac(%rbp)
  movl   $0x0,-0xb4(%rbp)
  jmp    L1018
L1140:
  mov    -0xac(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L253
L1195:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  addl   $0x1,-0xb0(%rbp)
L253:
  mov    -0xb0(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L1195
  mov    -0xb4(%rbp),%eax
  mov    %eax,-0xac(%rbp)
  mov    -0xb4(%rbp),%eax
  cmp    -0xc8(%rbp),%eax
  jl     L142
  mov    -0xb4(%rbp),%eax
  cmp    -0xcc(%rbp),%eax
  jle    L1194
L142:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xe0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
L1194:
  addl   $0x1,-0xb4(%rbp)
L1018:
  mov    -0xb4(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L1140
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xa0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0xc4(%rbp),%eax
  imul   $0x1e,%eax,%eax
  mov    %eax,-0x9c(%rbp)
  jmp    L154
L839:
  movl   $0x0,-0x98(%rbp)
  mov    -0xa0(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x90(%rbp)
  mov    -0x90(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x8c(%rbp)
  movl   $0x0,-0x94(%rbp)
L1165:
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xa8(%rbp)
  jmp    L978
L653:
  mov    -0xa8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x60(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L495
  movsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
L495:
  movsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa8(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  ja     L1023
  subl   $0x1,-0xa8(%rbp)
L978:
  mov    -0xa8(%rbp),%eax
  cmp    -0xc8(%rbp),%eax
  jg     L653
  jmp    L616
L1023:
  nop
L616:
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0xa8(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  je     L1146
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0xa8(%rbp),%eax
  cmp    -0x90(%rbp),%eax
  jne    L563
  movl   $0x1,-0x94(%rbp)
  jmp    L647
L563:
  cmpl   $0x0,-0x9c(%rbp)
  jne    L1026
  mov    -0xa0(%rbp),%eax
  mov    %eax,%esi
  lea    D803(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0xa0(%rbp),%eax
  jmp    L1202
L1026:
  cmpl   $0xa,-0x98(%rbp)
  je     L606
  cmpl   $0x14,-0x98(%rbp)
  jne    L844
L606:
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L690
L551:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L690:
  mov    -0xb4(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L551
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x8c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x60(%rbp),%xmm1
  movsd  D524(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x60(%rbp),%xmm1
  movsd  D414(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x60(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
L844:
  addl   $0x1,-0x98(%rbp)
  subl   $0x1,-0x9c(%rbp)
  mov    -0x8c(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  jmp    L931
L1111:
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x48(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x40(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x60(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x20(%rbp),%xmm0
  subsd  -0x68(%rbp),%xmm0
  subsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x78(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x68(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x78(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x70(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x68(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0xa4(%rbp),%eax
  cmp    -0xa8(%rbp),%eax
  je     L659
  movsd  -0x78(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  mov    -0xa4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm0,%xmm2
  movsd  -0x20(%rbp),%xmm0
  movq   D540(%rip),%xmm3
  andpd  %xmm3,%xmm0
  addsd  %xmm0,%xmm2
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm3
  andpd  %xmm3,%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm0,%xmm2
  movsd  -0x68(%rbp),%xmm0
  movq   D540(%rip),%xmm3
  andpd  %xmm3,%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  ja     L1036
  subl   $0x1,-0xa4(%rbp)
L931:
  mov    -0xa4(%rbp),%eax
  cmp    -0xa8(%rbp),%eax
  jge    L1111
  jmp    L567
L659:
  nop
  jmp    L567
L1036:
  nop
L567:
  mov    -0xa4(%rbp),%eax
  add    $0x2,%eax
  mov    %eax,-0x88(%rbp)
  mov    -0x88(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L763
L1266:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x10,%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cmp    -0x88(%rbp),%eax
  je     L852
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x18,%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
L852:
  addl   $0x1,-0xb4(%rbp)
L763:
  mov    -0xb4(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L1266
  mov    -0xa4(%rbp),%eax
  mov    %eax,-0xac(%rbp)
  jmp    L304
L1186:
  mov    -0xac(%rbp),%eax
  cmp    -0x90(%rbp),%eax
  setne  %al
  movzbl %al,%eax
  mov    %eax,-0x84(%rbp)
  mov    -0xac(%rbp),%eax
  cmp    -0xa4(%rbp),%eax
  je     L376
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  cmpl   $0x0,-0x84(%rbp)
  je     L1071
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x68(%rbp)
L1071:
  movsd  -0x78(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x68(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  D313(%rip),%xmm0
  comisd -0x48(%rbp),%xmm0
  ja     L681
  movsd  -0x78(%rbp),%xmm0
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x70(%rbp),%xmm0
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x68(%rbp),%xmm0
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
L376:
  movsd  -0x78(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movsd  -0x78(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <D_sign@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0xac(%rbp),%eax
  cmp    -0xa4(%rbp),%eax
  je     L414
  movsd  -0x60(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  mulsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L412
L414:
  mov    -0xa8(%rbp),%eax
  cmp    -0xa4(%rbp),%eax
  je     L412
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  sub    $0x8,%rax
  add    %rdx,%rax
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L412:
  movsd  -0x78(%rbp),%xmm0
  addsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x78(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x70(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x68(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x70(%rbp),%xmm0
  divsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x68(%rbp),%xmm0
  divsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  cmpl   $0x0,-0x84(%rbp)
  jne    L742
  mov    -0xac(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L1156
L891:
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x48(%rbp),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x40(%rbp),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb0(%rbp)
L1156:
  mov    -0xb0(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L891
  mov    -0xac(%rbp),%eax
  add    $0x2,%eax
  cmp    %eax,-0xa0(%rbp)
  jle    L922
  mov    -0xac(%rbp),%eax
  add    $0x3,%eax
  jmp    L1114
L922:
  mov    -0xa0(%rbp),%eax
L1114:
  mov    %eax,-0xb0(%rbp)
  movl   $0x0,-0xb4(%rbp)
  jmp    L443
L797:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x48(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x70(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L443:
  mov    -0xb4(%rbp),%eax
  cmp    -0xb0(%rbp),%eax
  jle    L797
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L306
L129:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x48(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x70(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L306:
  mov    -0xb4(%rbp),%eax
  cmp    -0xcc(%rbp),%eax
  jle    L129
  jmp    L583
L742:
  mov    -0xac(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L1115
L285:
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x48(%rbp),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x40(%rbp),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb0(%rbp)
L1115:
  mov    -0xb0(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L285
  mov    -0xac(%rbp),%eax
  add    $0x2,%eax
  cmp    %eax,-0xa0(%rbp)
  jle    L198
  mov    -0xac(%rbp),%eax
  add    $0x3,%eax
  jmp    L185
L198:
  mov    -0xa0(%rbp),%eax
L185:
  mov    %eax,-0xb0(%rbp)
  movl   $0x0,-0xb4(%rbp)
  jmp    L51
L1108:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x48(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x70(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x68(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L51:
  mov    -0xb4(%rbp),%eax
  cmp    -0xb0(%rbp),%eax
  jle    L1108
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L451
L149:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x48(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x70(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x68(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  add    $0x2,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L451:
  mov    -0xb4(%rbp),%eax
  cmp    -0xcc(%rbp),%eax
  jle    L149
  jmp    L583
L681:
  nop
L583:
  addl   $0x1,-0xac(%rbp)
L304:
  mov    -0xac(%rbp),%eax
  cmp    -0x90(%rbp),%eax
  jle    L1186
  jmp    L1165
L1146:
  nop
L647:
  cmpl   $0x0,-0x94(%rbp)
  je     L1246
  movsd  -0x40(%rbp),%xmm0
  subsd  -0x48(%rbp),%xmm0
  movsd  D756(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x78(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x50(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x20(%rbp)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  -0x40(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x70(%rbp),%xmm0
  comisd D48(%rip),%xmm0
  jb     L975
  movsd  -0x78(%rbp),%xmm0
  mov    -0x20(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  mov    $0x2,%eax
  call   <D_sign@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x78(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xe0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x20(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd D313(%rip),%xmm0
  jbe    L937
  movsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0x20(%rbp),%xmm1
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x48(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L937:
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x20(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x48(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x20(%rbp),%xmm0
  divsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x78(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x68(%rbp)
  movsd  -0x78(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x70(%rbp),%xmm0
  divsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  mov    -0x90(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L433
L664:
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb0(%rbp)
L433:
  mov    -0xb0(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L664
  movl   $0x0,-0xb4(%rbp)
  jmp    L1024
L452:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L1024:
  mov    -0xb4(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L452
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L1101
L245:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x20(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L1101:
  mov    -0xb4(%rbp),%eax
  cmp    -0xcc(%rbp),%eax
  jle    L245
  jmp    L988
L975:
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x20(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L988:
  mov    -0x8c(%rbp),%eax
  mov    %eax,-0xa0(%rbp)
  jmp    L154
L1246:
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  -0x48(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xe0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x90(%rbp),%eax
  mov    %eax,-0xa0(%rbp)
L154:
  mov    -0xa0(%rbp),%eax
  cmp    -0xc8(%rbp),%eax
  jge    L839
  movsd  -0x80(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L809
  mov    $0x0,%eax
  jmp    L1202
L809:
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xa0(%rbp)
  jmp    L586
L209:
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  mov    -0xa0(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x90(%rbp)
  movsd  D48(%rip),%xmm0
  comisd -0x70(%rbp),%xmm0
  jbe    L221
  mov    -0x90(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L503
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  -0x70(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x78(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  jmp    L1199
L503:
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  mov    -0x90(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xd8(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%rcx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rcx,%rax
  mov    -0x90(%rbp),%ecx
  movslq %ecx,%rcx
  lea    0x0(,%rcx,8),%rsi
  mov    -0xd8(%rbp),%rcx
  add    %rsi,%rcx
  mov    (%rcx),%rsi
  mov    -0x90(%rbp),%ecx
  movslq %ecx,%rcx
  shl    $0x3,%rcx
  add    %rsi,%rcx
  movsd  (%rcx),%xmm0
  movapd %xmm0,%xmm2
  subsd  -0x78(%rbp),%xmm2
  mov    -0x90(%rbp),%ecx
  movslq %ecx,%rcx
  lea    0x0(,%rcx,8),%rsi
  mov    -0xd8(%rbp),%rcx
  add    %rsi,%rcx
  mov    (%rcx),%rsi
  mov    -0xa0(%rbp),%ecx
  movslq %ecx,%rcx
  shl    $0x3,%rcx
  add    %rsi,%rcx
  movsd  (%rcx),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  -0x70(%rbp),%xmm1
  mov    %rdx,%rsi
  mov    %rax,%rdi
  movapd %xmm1,%xmm3
  movapd %xmm0,%xmm1
  mov    D798(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <CDiv@plt>
L1199:
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  D618(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x90(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x8c(%rbp)
  cmpl   $0x0,-0x8c(%rbp)
  js     L204
  mov    -0x8c(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L511
L688:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0xa4(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L818
L1259:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x38(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  addl   $0x1,-0xb0(%rbp)
L818:
  mov    -0xb0(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L1259
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jbe    L34
  movsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  jmp    L644
L34:
  mov    -0xb4(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L431
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  movsd  -0x30(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  movapd %xmm0,%xmm4
  xorpd  %xmm1,%xmm4
  movsd  -0x38(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  -0x70(%rbp),%xmm1
  movsd  -0x50(%rbp),%xmm0
  mov    %rcx,%rsi
  mov    %rdx,%rdi
  movapd %xmm1,%xmm3
  movapd %xmm0,%xmm2
  movapd %xmm4,%xmm1
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <CDiv@plt>
  jmp    L126
L431:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x78(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x78(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x78(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x70(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x28(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L960
  movsd  -0x8(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L960
  movsd  -0x50(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x70(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x48(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x40(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x20(%rbp),%xmm0
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x80(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
L1085:
  movsd  -0x28(%rbp),%xmm1
  movsd  D299(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  comisd -0x18(%rbp),%xmm0
  ja     L1085
L960:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x60(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  mulsd  -0x30(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x70(%rbp),%xmm1
  mulsd  -0x38(%rbp),%xmm1
  movapd %xmm0,%xmm4
  subsd  %xmm1,%xmm4
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x38(%rbp),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movsd  -0x8(%rbp),%xmm1
  movsd  -0x28(%rbp),%xmm0
  mov    %rcx,%rsi
  mov    %rdx,%rdi
  movapd %xmm1,%xmm3
  movapd %xmm0,%xmm2
  movapd %xmm4,%xmm1
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <CDiv@plt>
  movsd  -0x48(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x20(%rbp),%xmm1
  movq   D540(%rip),%xmm2
  andpd  %xmm1,%xmm2
  movsd  -0x70(%rbp),%xmm1
  movq   D540(%rip),%xmm3
  andpd  %xmm3,%xmm1
  addsd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L1090
  movsd  -0x38(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x50(%rbp),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x30(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  -0x50(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  -0x70(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L126
L1090:
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  movsd  -0x60(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rsi
  mov    -0xd8(%rbp),%rax
  add    %rsi,%rax
  mov    (%rax),%rsi
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rsi,%rax
  movsd  (%rax),%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movapd %xmm0,%xmm4
  subsd  %xmm1,%xmm4
  movsd  -0x68(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rsi
  mov    -0xd8(%rbp),%rax
  add    %rsi,%rax
  mov    (%rax),%rsi
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rsi,%rax
  movsd  (%rax),%xmm1
  mulsd  -0x40(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movsd  -0x70(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  mov    %rcx,%rsi
  mov    %rdx,%rdi
  movapd %xmm1,%xmm3
  movapd %xmm0,%xmm2
  movapd %xmm4,%xmm1
  movq   %rax,%xmm0
  mov    $0x4,%eax
  call   <CDiv@plt>
L126:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  comisd -0x10(%rbp),%xmm0
  jbe    L970
  movsd  -0x18(%rbp),%xmm0
  jmp    L1120
L970:
  movsd  -0x10(%rbp),%xmm0
L1120:
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  comisd D313(%rip),%xmm0
  jbe    L644
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  D618(%rip),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  comisd -0x10(%rbp),%xmm0
  jb     L644
  mov    -0xb4(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L771
L548:
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0x90(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb0(%rbp)
L771:
  mov    -0xb0(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L548
L644:
  subl   $0x1,-0xb4(%rbp)
L511:
  cmpl   $0x0,-0xb4(%rbp)
  jns    L688
  jmp    L204
L221:
  movsd  -0x70(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L204
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xa0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  D618(%rip),%xmm0
  movsd  %xmm0,(%rax)
  cmpl   $0x0,-0x90(%rbp)
  js     L204
  mov    -0x90(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L1168
L115:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0xa4(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L1016
L557:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x68(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  addl   $0x1,-0xb0(%rbp)
L1016:
  mov    -0xb0(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L557
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jbe    L354
  movsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  jmp    L78
L354:
  mov    -0xb4(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L719
  movsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  D313(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L231
  movsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
L26:
  movsd  -0x58(%rbp),%xmm1
  movsd  D299(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x80(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  comisd -0x18(%rbp),%xmm0
  ja     L26
L231:
  movsd  -0x68(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L926
L719:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x78(%rbp),%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  subsd  -0x78(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xe8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x60(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  mulsd  -0x68(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  divsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x48(%rbp),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x20(%rbp),%xmm1
  movq   D540(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L487
  movsd  -0x68(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  -0x50(%rbp),%xmm1
  mulsd  -0x58(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L926
L487:
  movsd  -0x60(%rbp),%xmm0
  movq   D334(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  -0x58(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb4(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L926:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D540(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  comisd D313(%rip),%xmm0
  jbe    L78
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  D618(%rip),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  -0x18(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  comisd -0x10(%rbp),%xmm0
  jb     L78
  mov    -0xb4(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L1196
L564:
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xa0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  divsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb0(%rbp)
L1196:
  mov    -0xb0(%rbp),%eax
  cmp    -0xa0(%rbp),%eax
  jle    L564
L78:
  subl   $0x1,-0xb4(%rbp)
L1168:
  cmpl   $0x0,-0xb4(%rbp)
  jns    L115
L204:
  subl   $0x1,-0xa0(%rbp)
L586:
  cmpl   $0x0,-0xa0(%rbp)
  jns    L209
  movl   $0x0,-0xb4(%rbp)
  jmp    L158
L530:
  mov    -0xb4(%rbp),%eax
  cmp    -0xc8(%rbp),%eax
  jl     L1028
  mov    -0xb4(%rbp),%eax
  cmp    -0xcc(%rbp),%eax
  jle    L393
L1028:
  mov    -0xb4(%rbp),%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L423
L413:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rax,%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x10(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%rcx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb0(%rbp)
L423:
  mov    -0xb0(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L413
L393:
  addl   $0x1,-0xb4(%rbp)
L158:
  mov    -0xb4(%rbp),%eax
  cmp    -0xc4(%rbp),%eax
  jl     L530
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xb0(%rbp)
  jmp    L218
L1157:
  mov    -0xcc(%rbp),%edx
  mov    -0xb0(%rbp),%eax
  cmp    %eax,%edx
  cmovle %edx,%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xb4(%rbp)
  jmp    L45
L133:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xac(%rbp)
  jmp    L1185
L673:
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xac(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x20(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  addl   $0x1,-0xac(%rbp)
L1185:
  mov    -0xac(%rbp),%eax
  cmp    -0xa4(%rbp),%eax
  jle    L673
  mov    -0xb4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x10(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rdx
  mov    -0xb0(%rbp),%eax
  cltq
  shl    $0x3,%rax
  add    %rdx,%rax
  movsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xb4(%rbp)
L45:
  mov    -0xb4(%rbp),%eax
  cmp    -0xcc(%rbp),%eax
  jle    L133
  subl   $0x1,-0xb0(%rbp)
L218:
  mov    -0xb0(%rbp),%eax
  cmp    -0xc8(%rbp),%eax
  jge    L1157
  mov    $0x0,%eax
L1202:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D540
type_infered: qword
name: retrieve_data
arguments: data_label: D313
type_infered: byte[16]
name: retrieve_data
arguments: data_label: D803
type_infered: string
name: retrieve_data
arguments: data_label: D524
type_infered: f64
name: retrieve_data
arguments: data_label: D414
type_infered: f32[2]
name: retrieve_data
arguments: data_label: D334
type_infered: f32[2]
name: retrieve_data
arguments: data_label: D756
type_infered: f64
name: retrieve_data
arguments: data_label: D48
type_infered: byte[16]
name: retrieve_data
arguments: data_label: D798
type_infered: f32[2]
name: retrieve_data
arguments: data_label: D618
type_infered: f64
name: retrieve_data
arguments: data_label: D299
type_infered: byte[8]

tool: D540: 9223372036854775807

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

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

tool: D524: 0.75

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

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

tool: D756: 2

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

tool: {"D798": [0.0,0.0]}

tool: D618: 1

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