user: What is the c source code of the assembly code below?

```asm
<hqrx>:
  endbr64
  push   %r15
  mov    %rcx,%r15
  push   %r14
  push   %r13
  mov    %edx,%r13d
  push   %r12
  mov    %edi,%r12d
  push   %rbp
  push   %rbx
  sub    $0x138,%rsp
  movl   $0x0,(%r9)
  mov    %esi,0xac(%rsp)
  mov    %r8,0x120(%rsp)
  mov    %r9,0x128(%rsp)
  test   %edi,%edi
  jle    L719
  mov    %esi,%ebx
  pxor   %xmm5,%xmm5
  movslq %edi,%rsi
  mov    %r8,%r11
  lea    0x1(%rdi),%ecx
  shl    $0x3,%rsi
  xor    %r8d,%r8d
  xor    %r10d,%r10d
  movq   D123(%rip),%xmm1
  xor    %r9d,%r9d
  mov    $0x1,%eax
  movsd  %xmm5,0x88(%rsp)
  mov    $0x1,%edi
L1084:
  cmp    %eax,%r12d
  jl     L746
  lea    -0x1(%rax),%edx
  imul   %r12d,%edx
  movslq %edx,%rdx
  add    %r9,%rdx
  lea    (%r15,%rdx,8),%rdx
  nopl   0x0(%rax)
L920:
  movsd  (%rdx),%xmm0
  add    $0x1,%eax
  add    %rsi,%rdx
  andpd  %xmm1,%xmm0
  addsd  0x88(%rsp),%xmm0
  movsd  %xmm0,0x88(%rsp)
  cmp    %ecx,%eax
  jne    L920
L746:
  cmp    %edi,%ebx
  jg     L108
  cmp    %edi,%r13d
  jge    L179
L108:
  movslq %r10d,%rax
  movsd  (%r15,%rax,8),%xmm0
  movslq %r8d,%rax
  movsd  %xmm0,(%r11,%rax,8)
  lea    0x1(%r8),%eax
  cltq
  movq   $0x0,(%r11,%rax,8)
L179:
  lea    0x1(%rdi),%edx
  add    $0x1,%r9
  add    %ecx,%r10d
  add    $0x2,%r8d
  mov    %edi,%eax
  cmp    %ecx,%edx
  je     L508
  mov    %edx,%edi
  jmp    L1084
L719:
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0x88(%rsp)
L508:
  mov    0xac(%rsp),%ebx
  cmp    %ebx,%r13d
  jl     L945
  lea    0x1(%r12),%edi
  movapd %xmm5,%xmm3
  movapd %xmm5,%xmm2
  mov    %r12d,%eax
  not    %eax
  mov    %edi,0x10(%rsp)
  movapd %xmm5,%xmm1
  cltq
  movl   $0x0,0x14(%rsp)
  lea    0x0(,%rax,8),%r14
  movslq %edi,%rax
  mov    %r12d,0x11c(%rsp)
  shl    $0x3,%rax
  mov    %r14,0xa0(%rsp)
  mov    %rax,0x100(%rsp)
  lea    -0x1(%rbx),%eax
  movsd  %xmm5,0xf0(%rsp)
  imul   %edi,%eax
  cltq
  lea    (%r15,%rax,8),%rax
  mov    %rax,0x108(%rsp)
  movslq %r12d,%rax
  mov    %r13d,%r12d
  lea    0x8(,%rax,8),%rdi
  shl    $0x3,%rax
  mov    %rax,0x90(%rsp)
  movslq %ebx,%rax
  mov    %rdi,0x68(%rsp)
  mov    %rax,0x110(%rsp)
L75:
  mov    0x11c(%rsp),%esi
  lea    -0x1(%r12),%ebx
  lea    -0x2(%r12),%edi
  movl   $0x0,0xa8(%rsp)
  mov    %edi,0x118(%rsp)
  mov    %r15,%r13
  mov    %esi,%eax
  mov    %ebx,0x8(%rsp)
  mov    %esi,%r14d
  imul   %ebx,%eax
  lea    (%rax,%rbx,1),%edx
  add    %edi,%eax
  movslq %edx,%rdx
  cltq
  lea    (%r15,%rdx,8),%rcx
  mov    %edi,%edx
  lea    (%r15,%rax,8),%rax
  imul   %esi,%edx
  mov    %rax,0xd8(%rsp)
  mov    %rcx,0xb8(%rsp)
  mov    %edx,%eax
  lea    (%rdi,%rdx,1),%ecx
  sub    %esi,%eax
  movslq %ecx,%rcx
  add    %edi,%eax
  lea    (%r15,%rcx,8),%rcx
  movslq %edx,%rdi
  cltq
  mov    %rcx,0xd0(%rsp)
  lea    (%rbx,%rdx,1),%ecx
  lea    (%r15,%rax,8),%rax
  movslq %ecx,%rcx
  mov    %rdi,0xe0(%rsp)
  mov    %rax,0xf8(%rsp)
  mov    0xac(%rsp),%eax
  lea    (%r15,%rcx,8),%rcx
  mov    %rcx,0xb0(%rsp)
  lea    (%rax,%r12,1),%ecx
  mov    $0xfffffffffffffffe,%rax
  sub    0x110(%rsp),%rax
  movslq %ecx,%rdx
  mov    %ecx,0x40(%rsp)
  add    %rdx,%rax
  movslq %r12d,%rdx
  add    %rdi,%rax
  lea    (%r15,%rax,8),%rax
  mov    %rax,0xc0(%rsp)
  mov    0x10(%rsp),%eax
  imul   %ebx,%eax
  cltq
  sub    %rdx,%rax
  sub    %rdi,%rax
  mov    %rax,0xc8(%rsp)
  lea    -0x3(%r12),%eax
  imul   %esi,%eax
  cltq
  mov    %rax,0xe8(%rsp)
  nopw   0x0(%rax,%rax,1)
L808:
  mov    0xc0(%rsp),%rdx
  mov    0xac(%rsp),%eax
  movsd  D177(%rip),%xmm6
  mov    0x88(%rsp),%r8
  mov    0x40(%rsp),%ecx
  mov    0xa0(%rsp),%r9
  mov    0xc8(%rsp),%rdi
  nopl   0x0(%rax,%rax,1)
L1025:
  mov    %ecx,%r15d
  mov    %eax,%esi
  sub    %eax,%r15d
  cmp    %eax,%r12d
  je     L403
  movsd  (%rdx),%xmm0
  movsd  0x10(%rdx,%rdi,8),%xmm4
  andpd  D123(%rip),%xmm0
  andpd  D123(%rip),%xmm4
  addsd  %xmm4,%xmm0
  ucomisd %xmm5,%xmm0
  jp     L24
  movq   %xmm0,%rbx
  cmove  %r8,%rbx
  movq   %rbx,%xmm0
L24:
  mulsd  %xmm6,%xmm0
  movsd  0x8(%rdx),%xmm4
  andpd  D123(%rip),%xmm4
  comisd %xmm4,%xmm0
  jae    L403
  add    $0x1,%eax
  add    %r9,%rdx
  cmp    %r12d,%eax
  jle    L1025
L403:
  mov    0xb8(%rsp),%rax
  mov    %esi,0x44(%rsp)
  movsd  (%rax),%xmm6
  cmp    %r15d,%r12d
  je     L1007
  mov    0xd0(%rsp),%rax
  movsd  (%rax),%xmm8
  mov    0xb0(%rsp),%rax
  movsd  (%rax),%xmm7
  mov    0xd8(%rsp),%rax
  mulsd  (%rax),%xmm7
  cmp    %r15d,0x8(%rsp)
  je     L982
  cmpl   $0x1e,0xa8(%rsp)
  je     L561
  mov    0xa8(%rsp),%ebx
  mov    $0x100400,%eax
  bt     %rbx,%rax
  jb     L159
L147:
  mov    0x118(%rsp),%ebx
  addl   $0x1,0xa8(%rsp)
  cmp    %r15d,%ebx
  jl     L584
  lea    -0x4(%r12),%edx
  mov    0xe8(%rsp),%rax
  movslq %ebx,%rsi
  movq   D123(%rip),%xmm0
  imul   %r14d,%edx
  mov    0xa0(%rsp),%r8
  movsd  D177(%rip),%xmm9
  add    %rsi,%rax
  lea    0x0(%r13,%rax,8),%rcx
  mov    0xe0(%rsp),%rax
  movslq %edx,%rdx
  lea    -0x2(%rsi,%rdx,1),%rdx
  add    %rsi,%rax
  lea    0x0(%r13,%rdx,8),%rsi
  lea    (%rbx,%r15,1),%edx
  sub    %r12d,%edx
  lea    0x0(%r13,%rax,8),%rax
  lea    0x1(%rdx),%edi
  mov    %ebx,%edx
  jmp    L651
  xchg   %ax,%ax
L627:
  movapd %xmm2,%xmm11
  movapd %xmm3,%xmm4
  andpd  %xmm0,%xmm10
  andpd  %xmm0,%xmm4
  andpd  %xmm0,%xmm11
  andpd  %xmm0,%xmm12
  addsd  %xmm4,%xmm11
  movsd  0x8(%rsi),%xmm4
  andpd  %xmm0,%xmm4
  mulsd  %xmm4,%xmm11
  movsd  (%rsi),%xmm4
  andpd  %xmm0,%xmm4
  addsd  %xmm10,%xmm4
  movapd %xmm1,%xmm10
  andpd  %xmm0,%xmm10
  mulsd  %xmm9,%xmm10
  addsd  %xmm12,%xmm4
  mulsd  %xmm10,%xmm4
  comisd %xmm11,%xmm4
  jae    L1073
  sub    $0x1,%edx
  add    %r8,%rcx
  add    %r8,%rax
  add    %r8,%rsi
  cmp    %edi,%edx
  je     L1073
L651:
  movsd  -0x8(%rcx),%xmm10
  movapd %xmm6,%xmm4
  movsd  (%rax),%xmm12
  mov    %edx,%r9d
  movapd %xmm8,%xmm3
  subsd  %xmm10,%xmm4
  subsd  %xmm10,%xmm3
  movapd %xmm12,%xmm2
  subsd  %xmm10,%xmm2
  movapd %xmm4,%xmm1
  mulsd  %xmm3,%xmm1
  subsd  %xmm4,%xmm2
  subsd  %xmm3,%xmm2
  movsd  0x8(%rax),%xmm3
  subsd  %xmm7,%xmm1
  divsd  (%rcx),%xmm1
  addsd  -0x8(%rax),%xmm1
  movapd %xmm2,%xmm11
  andpd  %xmm0,%xmm11
  movapd %xmm1,%xmm4
  andpd  %xmm0,%xmm4
  addsd  %xmm11,%xmm4
  movapd %xmm3,%xmm11
  andpd  %xmm0,%xmm11
  addsd  %xmm11,%xmm4
  divsd  %xmm4,%xmm1
  divsd  %xmm4,%xmm2
  divsd  %xmm4,%xmm3
  cmp    %r15d,%edx
  jne    L627
L1073:
  mov    %r9d,0x14(%rsp)
L584:
  mov    0x14(%rsp),%eax
  lea    0x2(%rax),%edi
  cmp    %r12d,%edi
  jg     L583
  lea    -0x1(%rax),%edx
  mov    %eax,%ebx
  imul   %r14d,%edx
  lea    0x1(%rdx,%rax,1),%eax
  cltq
  movq   $0x0,0x0(%r13,%rax,8)
  lea    0x3(%rbx),%eax
  cmp    %r12d,%eax
  jg     L583
  lea    (%rdx,%r14,1),%ecx
  movslq %edi,%rsi
  lea    0x1(%r12),%r8d
  add    %edi,%edx
  movslq %ecx,%rcx
  add    %rsi,%rcx
  lea    0x0(%r13,%rcx,8),%rcx
  cs nopw 0x0(%rax,%rax,1)
L1089:
  movq   $0x0,(%rcx)
  cmp    %eax,%edi
  je     L577
  movslq %edx,%rsi
  add    $0x1,%eax
  add    0x68(%rsp),%rcx
  add    0x10(%rsp),%edx
  movq   $0x0,0x0(%r13,%rsi,8)
  cmp    %eax,%r8d
  jne    L1089
L583:
  mov    0x8(%rsp),%ebx
  cmp    %ebx,0x14(%rsp)
  jg     L808
  mov    0x14(%rsp),%edi
  cmp    %r12d,%edi
  jg     L779
  movslq %edi,%rax
  lea    -0x1(%rdi),%edx
  mov    %r15d,0x28(%rsp)
  mov    %rax,0x30(%rsp)
  lea    -0x2(%rdi),%eax
  mov    %edx,%ebx
  imul   %r14d,%eax
  mov    %r14d,0x18(%rsp)
  imul   %r14d,%ebx
  lea    (%rax,%rdx,1),%esi
  lea    0x1(%rdi),%eax
  imul   %r14d,%eax
  mov    %esi,%r15d
  mov    %edi,%r14d
  mov    %eax,0x20(%rsp)
  jmp    L663
  nop
L875:
  lea    0x2(%r15),%eax
  movq   D123(%rip),%xmm0
  cltq
  movsd  0x0(%r13,%rax,8),%xmm3
  movapd %xmm3,%xmm6
  andpd  %xmm0,%xmm6
L34:
  movapd %xmm1,%xmm4
  andpd  %xmm0,%xmm4
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm4
  addsd  %xmm6,%xmm4
  ucomisd %xmm5,%xmm4
  jp     L664
  mov    0x18(%rsp),%eax
  lea    (%rbx,%rax,1),%eax
  jne    L664
L974:
  mov    0x18(%rsp),%esi
  addq   $0x1,0x30(%rsp)
  mov    %eax,%ebx
  add    %esi,0x20(%rsp)
  add    0x10(%rsp),%r15d
  cmp    %r14d,%r12d
  je     L1027
L663:
  mov    %r14d,%ebp
  mov    %r14d,%ecx
  add    $0x1,%r14d
  mov    %r14d,0x38(%rsp)
  cmp    %ebp,0x14(%rsp)
  je     L780
  movslq %r15d,%rax
  lea    0x0(%r13,%rax,8),%rdx
  lea    0x1(%r15),%eax
  cltq
  movsd  (%rdx),%xmm1
  movsd  0x0(%r13,%rax,8),%xmm2
  cmp    %ebp,0x8(%rsp)
  jne    L875
  movq   D123(%rip),%xmm0
  movapd %xmm5,%xmm3
  movapd %xmm5,%xmm6
  jmp    L34
  nop
L664:
  divsd  %xmm4,%xmm1
  divsd  %xmm4,%xmm2
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  divsd  %xmm4,%xmm3
  movapd %xmm2,%xmm6
  mulsd  %xmm2,%xmm6
  addsd  %xmm6,%xmm0
  movapd %xmm3,%xmm6
  mulsd  %xmm3,%xmm6
  addsd  %xmm6,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L177
  sqrtsd %xmm0,%xmm0
L263:
  mov    $0x2,%eax
  mov    %ecx,0x60(%rsp)
  mov    %rdx,0x50(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm3,0x78(%rsp)
  movsd  %xmm2,0x70(%rsp)
  movsd  %xmm4,0x58(%rsp)
  movsd  %xmm1,0x48(%rsp)
  call   <sign@plt>
  pxor   %xmm0,%xmm0
  mov    0x50(%rsp),%rdx
  movsd  0x58(%rsp),%xmm4
  cvtsi2sd %eax,%xmm0
  movsd  0x48(%rsp),%xmm1
  mov    0x60(%rsp),%ecx
  movsd  0x70(%rsp),%xmm2
  movsd  0x78(%rsp),%xmm3
  movsd  0x80(%rsp),%xmm5
  movapd %xmm0,%xmm6
  xorpd  D6(%rip),%xmm6
  mulsd  %xmm4,%xmm6
  movsd  %xmm6,(%rdx)
L113:
  addsd  %xmm0,%xmm1
  movapd %xmm2,%xmm4
  movapd %xmm3,%xmm10
  movslq %ebx,%rax
  divsd  %xmm0,%xmm4
  cmp    %ebp,0x8(%rsp)
  mov    %rax,0x48(%rsp)
  movapd %xmm1,%xmm8
  divsd  %xmm0,%xmm8
  divsd  %xmm0,%xmm10
  divsd  %xmm1,%xmm2
  divsd  %xmm1,%xmm3
  jne    L111
  add    0x30(%rsp),%rax
  mov    0x90(%rsp),%r10
  lea    0x1(%r12),%edx
  lea    0x0(%r13,%rax,8),%rax
  nopl   (%rax)
L1061:
  movsd  (%rax),%xmm6
  movapd %xmm2,%xmm1
  movsd  -0x8(%rax),%xmm0
  add    $0x1,%ebp
  movapd %xmm4,%xmm7
  mulsd  %xmm6,%xmm1
  addsd  %xmm0,%xmm1
  mulsd  %xmm1,%xmm7
  subsd  %xmm7,%xmm6
  movsd  %xmm6,(%rax)
  movapd %xmm8,%xmm6
  mulsd  %xmm1,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,-0x8(%rax)
  add    %r10,%rax
  cmp    %edx,%ebp
  jne    L1061
  mov    %r12d,%edi
  xor    %eax,%eax
  lea    0x3(%rcx),%esi
  movsd  %xmm3,0x78(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm2,0x70(%rsp)
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm4,0x58(%rsp)
  movsd  %xmm8,0x50(%rsp)
  call   <imin@plt>
  cmp    0x28(%rsp),%eax
  movsd  0x50(%rsp),%xmm8
  movsd  0x58(%rsp),%xmm4
  movsd  0x60(%rsp),%xmm1
  mov    %eax,%edi
  movsd  0x70(%rsp),%xmm2
  movsd  0x78(%rsp),%xmm3
  movsd  0x80(%rsp),%xmm5
  jl     L151
  mov    0x18(%rsp),%eax
  movslq 0x28(%rsp),%r8
  mov    0x48(%rsp),%rsi
  add    %ebx,%eax
  lea    (%r8,%rsi,1),%rbp
  movslq %eax,%rsi
  lea    0x8(,%rbp,8),%r9
  lea    (%r8,%rsi,1),%r11
  lea    -0x8(,%r11,8),%rcx
  lea    -0x10(%r9),%rdx
  lea    0x8(,%r11,8),%r11
  cmp    %rdx,%r11
  setle  %r11b
  cmp    %rcx,%r9
  setle  %r9b
  or     %r11b,%r9b
  je     L850
  cmp    %r8d,%edi
  je     L850
  mov    0x44(%rsp),%esi
  sub    0x40(%rsp),%esi
  add    %r13,%rdx
  movapd %xmm8,%xmm10
  lea    0x1(%rdi,%rsi,1),%esi
  movapd %xmm4,%xmm9
  movapd %xmm2,%xmm7
  add    %r13,%rcx
  unpcklpd %xmm10,%xmm10
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm7,%xmm7
  mov    %esi,%edi
  shr    %edi
  lea    -0x1(%rdi),%r8d
  lea    0x10(%rdx),%rdi
  shl    $0x4,%r8
  add    %rdi,%r8
  jmp    L325
  nopl   0x0(%rax)
L1046:
  add    $0x10,%rdi
L325:
  movupd (%rdx),%xmm1
  movupd (%rcx),%xmm0
  add    $0x10,%rcx
  mulpd  %xmm9,%xmm0
  mulpd  %xmm10,%xmm1
  addpd  %xmm0,%xmm1
  movupd -0x10(%rcx),%xmm0
  movapd %xmm1,%xmm6
  mulpd  %xmm7,%xmm6
  subpd  %xmm6,%xmm0
  movups %xmm0,-0x10(%rcx)
  movupd (%rdx),%xmm0
  subpd  %xmm1,%xmm0
  movups %xmm0,(%rdx)
  mov    %rdi,%rdx
  cmp    %r8,%rdi
  jne    L1046
  mov    0x28(%rsp),%edi
  mov    %esi,%ecx
  unpckhpd %xmm1,%xmm1
  and    $0xfffffffe,%ecx
  lea    (%rcx,%rdi,1),%edx
  cmp    %ecx,%esi
  je     L974
  sub    $0x1,%edx
  add    %edx,%ebx
  add    %eax,%edx
  movslq %ebx,%rbx
  movslq %edx,%rdx
  lea    0x0(%r13,%rbx,8),%rcx
  lea    0x0(%r13,%rdx,8),%rdx
  movsd  (%rdx),%xmm0
  movsd  (%rcx),%xmm1
  mulsd  %xmm0,%xmm4
  mulsd  %xmm8,%xmm1
  addsd  %xmm4,%xmm1
  movapd %xmm2,%xmm4
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm0
  movsd  %xmm0,(%rdx)
  movsd  (%rcx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx)
  jmp    L974
  nopl   0x0(%rax,%rax,1)
L111:
  add    0x30(%rsp),%rax
  mov    0x90(%rsp),%r10
  lea    0x0(%r13,%rax,8),%rax
  nopw   0x0(%rax,%rax,1)
L251:
  movsd  (%rax),%xmm6
  movsd  0x8(%rax),%xmm7
  add    $0x1,%ebp
  movsd  -0x8(%rax),%xmm0
  movapd %xmm6,%xmm9
  movapd %xmm7,%xmm1
  mulsd  %xmm2,%xmm9
  mulsd  %xmm3,%xmm1
  addsd  %xmm0,%xmm9
  addsd  %xmm9,%xmm1
  movapd %xmm10,%xmm9
  mulsd  %xmm1,%xmm9
  subsd  %xmm9,%xmm7
  movsd  %xmm7,0x8(%rax)
  movapd %xmm4,%xmm7
  mulsd  %xmm1,%xmm7
  subsd  %xmm7,%xmm6
  movsd  %xmm6,(%rax)
  movapd %xmm8,%xmm6
  mulsd  %xmm1,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,-0x8(%rax)
  add    %r10,%rax
  cmp    %r12d,%ebp
  jle    L251
  xor    %eax,%eax
  lea    0x3(%rcx),%esi
  mov    %r12d,%edi
  movsd  %xmm2,0x78(%rsp)
  movsd  %xmm5,0x98(%rsp)
  movsd  %xmm3,0x80(%rsp)
  movsd  %xmm1,0x70(%rsp)
  movsd  %xmm10,0x60(%rsp)
  movsd  %xmm4,0x58(%rsp)
  movsd  %xmm8,0x50(%rsp)
  call   <imin@plt>
  cmp    0x28(%rsp),%eax
  movsd  0x50(%rsp),%xmm8
  movsd  0x58(%rsp),%xmm4
  movsd  0x60(%rsp),%xmm10
  mov    %eax,%r8d
  movsd  0x70(%rsp),%xmm1
  movsd  0x78(%rsp),%xmm2
  movsd  0x80(%rsp),%xmm3
  movsd  0x98(%rsp),%xmm5
  jl     L151
  movslq 0x28(%rsp),%r11
  mov    0x48(%rsp),%rsi
  mov    0x18(%rsp),%eax
  lea    (%r11,%rsi,1),%rdi
  movslq 0x20(%rsp),%rsi
  add    %ebx,%eax
  lea    0x8(,%rdi,8),%rbp
  mov    %rdi,0x58(%rsp)
  movslq %eax,%rdi
  mov    %rsi,0x70(%rsp)
  lea    (%r11,%rdi,1),%rcx
  mov    %rdi,0x60(%rsp)
  lea    (%r11,%rsi,1),%rdi
  lea    -0x8(,%rcx,8),%rdx
  lea    0x8(,%rcx,8),%r9
  cmp    %rdx,%rbp
  lea    -0x10(%rbp),%rcx
  lea    -0x8(,%rdi,8),%rsi
  setle  0x50(%rsp)
  cmp    %rcx,%r9
  movzbl 0x50(%rsp),%r10d
  lea    0x8(,%rdi,8),%rdi
  setle  0x50(%rsp)
  or     0x50(%rsp),%r10b
  cmp    %rsi,%r9
  setle  %r9b
  cmp    %rdi,%rdx
  setge  0x50(%rsp)
  or     0x50(%rsp),%r9b
  and    %r10d,%r9d
  cmp    %rsi,%rbp
  setle  %bpl
  cmp    %rdi,%rcx
  setge  %dil
  or     %edi,%ebp
  test   %bpl,%r9b
  je     L700
  cmp    0x28(%rsp),%r8d
  je     L700
  mov    0x44(%rsp),%edi
  sub    0x40(%rsp),%edi
  movapd %xmm8,%xmm12
  add    %r13,%rcx
  lea    0x1(%r8,%rdi,1),%r8d
  movapd %xmm4,%xmm11
  movapd %xmm3,%xmm7
  xor    %edi,%edi
  mov    %r8d,%r9d
  movapd %xmm10,%xmm9
  movapd %xmm2,%xmm6
  add    %r13,%rdx
  shr    %r9d
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  add    %r13,%rsi
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm7,%xmm7
  unpcklpd %xmm6,%xmm6
  shl    $0x4,%r9
  cs nopw 0x0(%rax,%rax,1)
L899:
  movupd (%rcx,%rdi,1),%xmm0
  movupd (%rdx,%rdi,1),%xmm1
  mulpd  %xmm12,%xmm0
  mulpd  %xmm11,%xmm1
  addpd  %xmm1,%xmm0
  movupd (%rsi,%rdi,1),%xmm1
  mulpd  %xmm9,%xmm1
  addpd  %xmm1,%xmm0
  movupd (%rsi,%rdi,1),%xmm1
  movapd %xmm0,%xmm13
  mulpd  %xmm7,%xmm13
  subpd  %xmm13,%xmm1
  movapd %xmm0,%xmm13
  mulpd  %xmm6,%xmm13
  movups %xmm1,(%rsi,%rdi,1)
  movupd (%rdx,%rdi,1),%xmm1
  subpd  %xmm13,%xmm1
  movups %xmm1,(%rdx,%rdi,1)
  movupd (%rcx,%rdi,1),%xmm1
  subpd  %xmm0,%xmm1
  movups %xmm1,(%rcx,%rdi,1)
  add    $0x10,%rdi
  cmp    %r9,%rdi
  jne    L899
  mov    0x28(%rsp),%edi
  mov    %r8d,%ecx
  unpckhpd %xmm0,%xmm0
  and    $0xfffffffe,%ecx
  movapd %xmm0,%xmm1
  lea    (%rcx,%rdi,1),%edx
  cmp    %ecx,%r8d
  je     L974
  sub    $0x1,%edx
  add    %edx,%ebx
  lea    (%rax,%rdx,1),%esi
  add    0x20(%rsp),%edx
  movslq %ebx,%rbx
  movslq %esi,%rsi
  movslq %edx,%rdx
  lea    0x0(%r13,%rbx,8),%rcx
  lea    0x0(%r13,%rsi,8),%rsi
  movsd  (%rcx),%xmm1
  mulsd  (%rsi),%xmm4
  lea    0x0(%r13,%rdx,8),%rdx
  movsd  (%rdx),%xmm0
  mulsd  %xmm8,%xmm1
  mulsd  %xmm0,%xmm10
  addsd  %xmm4,%xmm1
  movapd %xmm3,%xmm4
  addsd  %xmm10,%xmm1
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm0
  movapd %xmm2,%xmm4
  mulsd  %xmm1,%xmm4
  movsd  %xmm0,(%rdx)
  movsd  (%rsi),%xmm0
  subsd  %xmm4,%xmm0
  movsd  %xmm0,(%rsi)
  movsd  (%rcx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx)
  jmp    L974
  nopw   0x0(%rax,%rax,1)
L1027:
  mov    0x28(%rsp),%r15d
  mov    %esi,%r14d
  cmp    %r12d,0x8(%rsp)
  jl     L808
L763:
  mov    0x38(%rsp),%ebp
  mov    %r15d,0x20(%rsp)
  mov    %r14d,0x18(%rsp)
  lea    -0x2(%rbp),%eax
  lea    -0x1(%rbp),%edx
  mov    %r12d,0x70(%rsp)
  imul   %r14d,%eax
  mov    %edx,%ebx
  imul   %r14d,%ebx
  lea    (%rax,%rdx,1),%r11d
  lea    0x1(%rbp),%eax
  imul   %r14d,%eax
  mov    %r11d,%r12d
  mov    %ebp,%r14d
  mov    %eax,%r15d
  jmp    L707
  nopl   0x0(%rax)
L1006:
  lea    0x2(%r12),%eax
  movq   D123(%rip),%xmm0
  cltq
  movsd  0x0(%r13,%rax,8),%xmm3
  movapd %xmm3,%xmm6
  andpd  %xmm0,%xmm6
L198:
  movapd %xmm2,%xmm4
  andpd  %xmm0,%xmm4
  andpd  %xmm1,%xmm0
  addsd  %xmm0,%xmm4
  addsd  %xmm6,%xmm4
  ucomisd %xmm5,%xmm4
  jp     L931
  mov    0x18(%rsp),%eax
  lea    (%rbx,%rax,1),%eax
  jne    L931
  nopl   0x0(%rax)
L903:
  add    $0x1,%r14d
  add    0x10(%rsp),%r12d
  mov    %eax,%ebx
  add    0x18(%rsp),%r15d
  cmp    0x8(%rsp),%r14d
  jg     L769
L707:
  cmp    0x14(%rsp),%r14d
  je     L947
  movslq %r12d,%rax
  lea    0x0(%r13,%rax,8),%rbp
  lea    0x1(%r12),%eax
  cltq
  movsd  0x0(%rbp),%xmm1
  movsd  0x0(%r13,%rax,8),%xmm2
  cmp    0x8(%rsp),%r14d
  jne    L1006
  movq   D123(%rip),%xmm0
  movapd %xmm5,%xmm3
  movapd %xmm5,%xmm6
  jmp    L198
  nopl   0x0(%rax)
L931:
  divsd  %xmm4,%xmm1
  divsd  %xmm4,%xmm2
  movapd %xmm1,%xmm6
  mulsd  %xmm1,%xmm6
  divsd  %xmm4,%xmm3
  movapd %xmm2,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm6,%xmm0
  movapd %xmm3,%xmm6
  mulsd  %xmm3,%xmm6
  addsd  %xmm6,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L571
  sqrtsd %xmm0,%xmm0
L906:
  mov    $0x2,%eax
  movsd  %xmm5,0x50(%rsp)
  movsd  %xmm3,0x48(%rsp)
  movsd  %xmm2,0x38(%rsp)
  movsd  %xmm4,0x30(%rsp)
  movsd  %xmm1,0x28(%rsp)
  call   <sign@plt>
  pxor   %xmm8,%xmm8
  movsd  0x30(%rsp),%xmm4
  movsd  0x50(%rsp),%xmm5
  cvtsi2sd %eax,%xmm8
  movsd  0x48(%rsp),%xmm3
  movsd  0x38(%rsp),%xmm2
  movsd  0x28(%rsp),%xmm1
  movapd %xmm8,%xmm0
  xorpd  D6(%rip),%xmm0
  mulsd  %xmm4,%xmm0
  movsd  %xmm0,0x0(%rbp)
L78:
  addsd  %xmm8,%xmm1
  movapd %xmm2,%xmm7
  movapd %xmm3,%xmm6
  xor    %eax,%eax
  divsd  %xmm8,%xmm7
  mov    0x70(%rsp),%edi
  lea    0x3(%r14),%esi
  movsd  %xmm5,0x60(%rsp)
  movapd %xmm1,%xmm0
  movsd  %xmm1,0x30(%rsp)
  divsd  %xmm1,%xmm2
  movsd  %xmm7,0x50(%rsp)
  divsd  %xmm1,%xmm3
  movsd  %xmm2,0x38(%rsp)
  divsd  %xmm8,%xmm0
  movsd  %xmm3,0x28(%rsp)
  divsd  %xmm8,%xmm6
  movsd  %xmm0,0x58(%rsp)
  movsd  %xmm6,0x48(%rsp)
  call   <imin@plt>
  movsd  0x28(%rsp),%xmm3
  movsd  0x30(%rsp),%xmm1
  mov    %eax,%edi
  cmp    0x20(%rsp),%edi
  mov    0x18(%rsp),%eax
  movsd  0x38(%rsp),%xmm2
  movsd  0x48(%rsp),%xmm6
  movsd  0x50(%rsp),%xmm7
  movsd  0x58(%rsp),%xmm0
  movsd  0x60(%rsp),%xmm5
  jl     L1042
  movslq 0x20(%rsp),%r10
  add    %ebx,%eax
  cmp    0x8(%rsp),%r14d
  je     L85
  movslq %r15d,%rsi
  lea    0x1(%rsi,%r10,1),%r9
  mov    %rsi,0x50(%rsp)
  movslq %eax,%rsi
  shl    $0x3,%r9
  lea    (%rsi,%r10,1),%rcx
  mov    %rsi,0x48(%rsp)
  lea    0x8(,%rcx,8),%r11
  lea    -0x8(,%rcx,8),%rdx
  movslq %ebx,%rcx
  lea    -0x10(%r9),%rsi
  lea    (%rcx,%r10,1),%rbp
  mov    %r11,0x30(%rsp)
  cmp    %r11,%rsi
  lea    0x8(,%rbp,8),%r8
  mov    %rcx,0x38(%rsp)
  lea    -0x8(,%rbp,8),%rcx
  setge  %r11b
  cmp    %r9,%rdx
  mov    %r8,0x28(%rsp)
  setge  %r8b
  or     %r8d,%r11d
  cmp    %rdx,0x28(%rsp)
  setle  %r8b
  cmp    0x30(%rsp),%rcx
  setge  0x30(%rsp)
  or     0x30(%rsp),%r8b
  and    %r11d,%r8d
  cmp    %rsi,0x28(%rsp)
  setle  %r11b
  cmp    %r9,%rcx
  setge  %r9b
  or     %r9d,%r11d
  test   %r11b,%r8b
  je     L744
  cmp    0x20(%rsp),%edi
  je     L744
  mov    0x44(%rsp),%r8d
  sub    0x40(%rsp),%r8d
  movapd %xmm0,%xmm12
  movapd %xmm7,%xmm11
  lea    0x1(%rdi,%r8,1),%r8d
  movapd %xmm6,%xmm10
  add    %r13,%rcx
  add    %r13,%rdx
  mov    %r8d,%r9d
  movapd %xmm3,%xmm9
  movapd %xmm2,%xmm8
  add    %r13,%rsi
  shr    %r9d
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  xor    %edi,%edi
  unpcklpd %xmm10,%xmm10
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm8,%xmm8
  shl    $0x4,%r9
  nopl   0x0(%rax)
L261:
  movupd (%rcx,%rdi,1),%xmm1
  movupd (%rdx,%rdi,1),%xmm4
  mulpd  %xmm12,%xmm1
  mulpd  %xmm11,%xmm4
  addpd  %xmm4,%xmm1
  movupd (%rsi,%rdi,1),%xmm4
  mulpd  %xmm10,%xmm4
  addpd  %xmm4,%xmm1
  movupd (%rsi,%rdi,1),%xmm4
  movapd %xmm1,%xmm13
  mulpd  %xmm9,%xmm13
  subpd  %xmm13,%xmm4
  movapd %xmm1,%xmm13
  mulpd  %xmm8,%xmm13
  movups %xmm4,(%rsi,%rdi,1)
  movupd (%rdx,%rdi,1),%xmm4
  subpd  %xmm13,%xmm4
  movups %xmm4,(%rdx,%rdi,1)
  movupd (%rcx,%rdi,1),%xmm4
  subpd  %xmm1,%xmm4
  movups %xmm4,(%rcx,%rdi,1)
  add    $0x10,%rdi
  cmp    %r9,%rdi
  jne    L261
  mov    0x20(%rsp),%edi
  mov    %r8d,%ecx
  unpckhpd %xmm1,%xmm1
  and    $0xfffffffe,%ecx
  lea    (%rcx,%rdi,1),%edx
  cmp    %ecx,%r8d
  je     L903
  sub    $0x1,%edx
  add    %edx,%ebx
  lea    (%rax,%rdx,1),%esi
  add    %r15d,%edx
  movslq %ebx,%rbx
  movslq %esi,%rsi
  movslq %edx,%rdx
  lea    0x0(%r13,%rbx,8),%rcx
  lea    0x0(%r13,%rsi,8),%rsi
  mulsd  (%rcx),%xmm0
  lea    0x0(%r13,%rdx,8),%rdx
  mulsd  (%rsi),%xmm7
  movsd  (%rdx),%xmm4
  mulsd  %xmm4,%xmm6
  addsd  %xmm7,%xmm0
  addsd  %xmm0,%xmm6
  movapd %xmm3,%xmm0
  mulsd  %xmm6,%xmm0
  movapd %xmm6,%xmm1
  subsd  %xmm0,%xmm4
  movsd  %xmm4,(%rdx)
  movapd %xmm2,%xmm4
  movsd  (%rsi),%xmm0
  mulsd  %xmm6,%xmm4
  subsd  %xmm4,%xmm0
  movsd  %xmm0,(%rsi)
  movsd  (%rcx),%xmm0
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rcx)
  jmp    L903
  nopw   0x0(%rax,%rax,1)
L85:
  movslq %eax,%rsi
  movslq %ebx,%r11
  lea    0x1(%r10,%rsi,1),%r8
  lea    (%r11,%r10,1),%r9
  shl    $0x3,%r8
  lea    0x8(,%r9,8),%rbp
  lea    -0x8(,%r9,8),%rdx
  lea    -0x10(%r8),%rcx
  cmp    %rbp,%rcx
  setge  %bpl
  cmp    %rdx,%r8
  setle  %r8b
  or     %bpl,%r8b
  je     L398
  cmp    0x20(%rsp),%edi
  je     L398
  mov    0x44(%rsp),%esi
  sub    0x40(%rsp),%esi
  add    %r13,%rdx
  movapd %xmm0,%xmm10
  lea    0x1(%rdi,%rsi,1),%esi
  movapd %xmm7,%xmm9
  movapd %xmm2,%xmm8
  add    %r13,%rcx
  mov    %esi,%edi
  unpcklpd %xmm10,%xmm10
  unpcklpd %xmm9,%xmm9
  shr    %edi
  unpcklpd %xmm8,%xmm8
  lea    -0x1(%rdi),%r8d
  lea    0x10(%rdx),%rdi
  shl    $0x4,%r8
  add    %rdi,%r8
  jmp    L1034
  nopl   (%rax)
L572:
  add    $0x10,%rdi
L1034:
  movupd (%rdx),%xmm1
  movupd (%rcx),%xmm4
  movapd %xmm8,%xmm6
  add    $0x10,%rcx
  mulpd  %xmm9,%xmm4
  mulpd  %xmm10,%xmm1
  addpd  %xmm4,%xmm1
  movupd -0x10(%rcx),%xmm4
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm4
  movups %xmm4,-0x10(%rcx)
  movupd (%rdx),%xmm4
  subpd  %xmm1,%xmm4
  movups %xmm4,(%rdx)
  mov    %rdi,%rdx
  cmp    %r8,%rdi
  jne    L572
  mov    0x20(%rsp),%edi
  mov    %esi,%ecx
  unpckhpd %xmm1,%xmm1
  and    $0xfffffffe,%ecx
  lea    (%rcx,%rdi,1),%edx
  cmp    %esi,%ecx
  je     L903
  sub    $0x1,%edx
  add    %edx,%ebx
  add    %eax,%edx
  movslq %edx,%rdx
  movslq %ebx,%rbx
  lea    0x0(%r13,%rdx,8),%rdx
  lea    0x0(%r13,%rbx,8),%rcx
  movsd  (%rdx),%xmm4
  mulsd  (%rcx),%xmm0
  mulsd  %xmm4,%xmm7
  movapd %xmm0,%xmm1
  addsd  %xmm7,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  subsd  %xmm0,%xmm4
  movsd  %xmm4,(%rdx)
  movsd  (%rcx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx)
  jmp    L903
  nopl   0x0(%rax,%rax,1)
L769:
  mov    0x18(%rsp),%r14d
  mov    0x70(%rsp),%r12d
  jmp    L808
  nopw   0x0(%rax,%rax,1)
L779:
  mov    %edi,0x38(%rsp)
  jmp    L763
  nopl   0x0(%rax)
L577:
  lea    0x1(%rdi),%eax
  add    0x68(%rsp),%rcx
  add    0x10(%rsp),%edx
  cmp    %eax,%r8d
  jne    L1089
  jmp    L583
  nopw   0x0(%rax,%rax,1)
L947:
  movapd %xmm1,%xmm4
  movapd %xmm2,%xmm0
  mulsd  %xmm1,%xmm4
  mulsd  %xmm2,%xmm0
  addsd  %xmm4,%xmm0
  movapd %xmm3,%xmm4
  mulsd  %xmm3,%xmm4
  addsd  %xmm4,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L1079
  sqrtsd %xmm0,%xmm0
L73:
  mov    $0x2,%eax
  movsd  %xmm5,0x48(%rsp)
  movsd  %xmm3,0x38(%rsp)
  movsd  %xmm2,0x30(%rsp)
  movsd  %xmm1,0x28(%rsp)
  call   <sign@plt>
  mov    0x20(%rsp),%edi
  pxor   %xmm8,%xmm8
  cmp    %edi,0x14(%rsp)
  cvtsi2sd %eax,%xmm8
  movsd  0x28(%rsp),%xmm1
  movsd  0x30(%rsp),%xmm2
  movsd  0x38(%rsp),%xmm3
  movsd  0x48(%rsp),%xmm5
  je     L78
  movslq %r12d,%rax
  lea    0x0(%r13,%rax,8),%rax
  movsd  (%rax),%xmm0
  xorpd  D6(%rip),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L78
  nopl   (%rax)
L780:
  movapd %xmm2,%xmm4
  movapd %xmm1,%xmm0
  mulsd  %xmm2,%xmm4
  mulsd  %xmm1,%xmm0
  addsd  %xmm4,%xmm0
  movapd %xmm3,%xmm4
  mulsd  %xmm3,%xmm4
  addsd  %xmm4,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L672
  sqrtsd %xmm0,%xmm0
L756:
  mov    $0x2,%eax
  mov    %ecx,0x50(%rsp)
  movsd  %xmm5,0x70(%rsp)
  movsd  %xmm3,0x60(%rsp)
  movsd  %xmm2,0x58(%rsp)
  movsd  %xmm1,0x48(%rsp)
  call   <sign@plt>
  mov    0x28(%rsp),%edi
  pxor   %xmm0,%xmm0
  cmp    %edi,0x14(%rsp)
  cvtsi2sd %eax,%xmm0
  movsd  0x48(%rsp),%xmm1
  mov    0x50(%rsp),%ecx
  movsd  0x58(%rsp),%xmm2
  movsd  0x60(%rsp),%xmm3
  movsd  0x70(%rsp),%xmm5
  je     L113
  movslq %r15d,%rax
  lea    0x0(%r13,%rax,8),%rax
  movsd  (%rax),%xmm4
  xorpd  D6(%rip),%xmm4
  movsd  %xmm4,(%rax)
  jmp    L113
  nopl   0x0(%rax,%rax,1)
L159:
  movsd  0xf0(%rsp),%xmm7
  mov    0x108(%rsp),%rax
  mov    0xac(%rsp),%edx
  mov    0x100(%rsp),%rcx
  addsd  %xmm6,%xmm7
  movsd  %xmm7,0xf0(%rsp)
  nopl   (%rax)
L513:
  movsd  (%rax),%xmm0
  add    $0x1,%edx
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rax)
  add    %rcx,%rax
  cmp    %r12d,%edx
  jle    L513
  mov    0xb0(%rsp),%rax
  movq   D123(%rip),%xmm0
  movsd  D198(%rip),%xmm7
  movsd  (%rax),%xmm4
  mov    0xf8(%rsp),%rax
  movsd  (%rax),%xmm6
  andpd  %xmm0,%xmm4
  andpd  %xmm6,%xmm0
  movsd  D58(%rip),%xmm6
  addsd  %xmm4,%xmm0
  mulsd  %xmm0,%xmm6
  mulsd  %xmm0,%xmm7
  movapd %xmm6,%xmm8
  mulsd  %xmm0,%xmm7
  jmp    L147
  nopl   0x0(%rax)
L1042:
  add    %ebx,%eax
  jmp    L903
L398:
  mov    0x44(%rsp),%ecx
  sub    0x40(%rsp),%ecx
  lea    -0x1(%r11,%r10,1),%rdx
  sub    %r11,%rsi
  add    %edi,%ecx
  lea    0x0(%r13,%rdx,8),%rdx
  mov    %ecx,%ecx
  add    %r9,%rcx
  lea    0x0(%r13,%rcx,8),%rcx
L240:
  movsd  (%rdx,%rsi,8),%xmm4
  movsd  (%rdx),%xmm1
  mulsd  %xmm0,%xmm1
  movapd %xmm4,%xmm6
  mulsd  %xmm7,%xmm6
  addsd  %xmm6,%xmm1
  movapd %xmm1,%xmm6
  mulsd  %xmm2,%xmm6
  subsd  %xmm6,%xmm4
  movsd  %xmm4,(%rdx,%rsi,8)
  movsd  (%rdx),%xmm4
  add    $0x8,%rdx
  subsd  %xmm1,%xmm4
  movsd  %xmm4,-0x8(%rdx)
  cmp    %rdx,%rcx
  jne    L240
  jmp    L903
L744:
  mov    0x44(%rsp),%ecx
  sub    0x40(%rsp),%ecx
  mov    0x38(%rsp),%rbx
  add    %edi,%ecx
  mov    0x48(%rsp),%rsi
  mov    0x50(%rsp),%rdi
  mov    %ecx,%ecx
  lea    -0x1(%rbx,%r10,1),%rdx
  add    %rbp,%rcx
  sub    %rbx,%rsi
  lea    0x0(%r13,%rdx,8),%rdx
  lea    0x0(%r13,%rcx,8),%rcx
  sub    %rbx,%rdi
  nopl   0x0(%rax,%rax,1)
L1035:
  movsd  (%rdx),%xmm8
  movsd  (%rdx,%rsi,8),%xmm1
  movsd  (%rdx,%rdi,8),%xmm4
  mulsd  %xmm7,%xmm1
  mulsd  %xmm0,%xmm8
  addsd  %xmm1,%xmm8
  movapd %xmm4,%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm8,%xmm1
  movapd %xmm1,%xmm8
  mulsd  %xmm3,%xmm8
  subsd  %xmm8,%xmm4
  movapd %xmm1,%xmm8
  mulsd  %xmm2,%xmm8
  movsd  %xmm4,(%rdx,%rdi,8)
  movsd  (%rdx,%rsi,8),%xmm4
  subsd  %xmm8,%xmm4
  movsd  %xmm4,(%rdx,%rsi,8)
  movsd  (%rdx),%xmm4
  add    $0x8,%rdx
  subsd  %xmm1,%xmm4
  movsd  %xmm4,-0x8(%rdx)
  cmp    %rdx,%rcx
  jne    L1035
  jmp    L903
L700:
  mov    0x48(%rsp),%rbx
  mov    0x44(%rsp),%ecx
  sub    0x40(%rsp),%ecx
  mov    0x60(%rsp),%rdi
  add    %r8d,%ecx
  mov    0x70(%rsp),%r8
  lea    -0x1(%r11,%rbx,1),%rdx
  mov    %ecx,%ecx
  add    0x58(%rsp),%rcx
  lea    0x0(%r13,%rdx,8),%rdx
  sub    %rbx,%rdi
  lea    0x0(%r13,%rcx,8),%rcx
  sub    %rbx,%r8
  nopl   0x0(%rax,%rax,1)
L1003:
  movsd  (%rdx),%xmm6
  movsd  (%rdx,%rdi,8),%xmm0
  movapd %xmm10,%xmm1
  mulsd  %xmm4,%xmm0
  mulsd  %xmm8,%xmm6
  addsd  %xmm0,%xmm6
  movsd  (%rdx,%r8,8),%xmm0
  mulsd  %xmm0,%xmm1
  addsd  %xmm6,%xmm1
  movapd %xmm3,%xmm6
  mulsd  %xmm1,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm2,%xmm6
  mulsd  %xmm1,%xmm6
  movsd  %xmm0,(%rdx,%r8,8)
  movsd  (%rdx,%rdi,8),%xmm0
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rdx,%rdi,8)
  movsd  (%rdx),%xmm0
  add    $0x8,%rdx
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rdx)
  cmp    %rdx,%rcx
  jne    L1003
  jmp    L974
L850:
  mov    0x44(%rsp),%ecx
  sub    0x40(%rsp),%ecx
  mov    0x48(%rsp),%rbx
  add    %edi,%ecx
  mov    %ecx,%ecx
  lea    -0x1(%r8,%rbx,1),%rdx
  add    %rbp,%rcx
  sub    %rbx,%rsi
  lea    0x0(%r13,%rdx,8),%rdx
  lea    0x0(%r13,%rcx,8),%rcx
  nopw   0x0(%rax,%rax,1)
L254:
  movsd  (%rdx,%rsi,8),%xmm0
  movsd  (%rdx),%xmm1
  movapd %xmm4,%xmm6
  mulsd  %xmm0,%xmm6
  mulsd  %xmm8,%xmm1
  addsd  %xmm6,%xmm1
  movapd %xmm2,%xmm6
  mulsd  %xmm1,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rdx,%rsi,8)
  movsd  (%rdx),%xmm0
  add    $0x8,%rdx
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rdx)
  cmp    %rcx,%rdx
  jne    L254
  jmp    L974
L982:
  movapd %xmm8,%xmm1
  mov    %r13,%r15
  subsd  %xmm6,%xmm1
  mulsd  D150(%rip),%xmm1
  movapd %xmm1,%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm7,%xmm2
  movapd %xmm2,%xmm0
  andpd  D123(%rip),%xmm0
  ucomisd %xmm0,%xmm5
  ja     L497
  sqrtsd %xmm0,%xmm0
L681:
  mov    0x118(%rsp),%eax
  mov    0x120(%rsp),%rdi
  addsd  0xf0(%rsp),%xmm6
  add    %eax,%eax
  movslq %eax,%rdx
  shl    $0x3,%rdx
  lea    (%rdi,%rdx,1),%rbp
  lea    0x10(%rdi,%rdx,1),%rbx
  lea    0x1(%rax),%edx
  add    $0x3,%eax
  comisd %xmm2,%xmm5
  movslq %edx,%rdx
  cltq
  lea    (%rdi,%rdx,8),%r13
  lea    (%rdi,%rax,8),%r12
  jbe    L898
  addsd  %xmm1,%xmm6
  mov    0x118(%rsp),%r12d
  movapd %xmm6,%xmm4
  unpcklpd %xmm0,%xmm4
  xorpd  D6(%rip),%xmm0
  movups %xmm4,0x0(%rbp)
  unpcklpd %xmm0,%xmm6
  movups %xmm6,(%rbx)
L539:
  cmp    0xac(%rsp),%r12d
  jge    L75
L945:
  add    $0x138,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1007:
  mov    0x8(%rsp),%r12d
  mov    0x120(%rsp),%rbx
  mov    %r13,%r15
  addsd  0xf0(%rsp),%xmm6
  lea    (%r12,%r12,1),%eax
  movslq %eax,%rdx
  add    $0x1,%eax
  cltq
  movsd  %xmm6,(%rbx,%rdx,8)
  movq   $0x0,(%rbx,%rax,8)
  jmp    L539
L561:
  mov    0x128(%rsp),%rax
  mov    %r12d,(%rax)
  jmp    L945
L898:
  mov    $0x2,%eax
  movsd  %xmm5,0x38(%rsp)
  movsd  %xmm3,0x30(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm6,0x20(%rsp)
  movsd  %xmm7,0x18(%rsp)
  movsd  %xmm1,0x8(%rsp)
  call   <sign@plt>
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  0x20(%rsp),%xmm6
  cvtsi2sd %eax,%xmm0
  movsd  0x38(%rsp),%xmm5
  movsd  0x18(%rsp),%xmm7
  movapd %xmm6,%xmm4
  movsd  0x28(%rsp),%xmm2
  movsd  0x30(%rsp),%xmm3
  addsd  %xmm1,%xmm0
  addsd  %xmm0,%xmm4
  ucomisd %xmm5,%xmm0
  movsd  %xmm4,0x0(%rbp)
  jp     L683
  jne    L683
  movsd  %xmm4,(%rbx)
L686:
  movq   $0x0,0x0(%r13)
  movq   $0x0,(%r12)
  mov    0x118(%rsp),%r12d
  jmp    L539
L683:
  divsd  %xmm0,%xmm7
  subsd  %xmm7,%xmm6
  movsd  %xmm6,(%rbx)
  jmp    L686
L151:
  mov    0x18(%rsp),%eax
  add    %ebx,%eax
  jmp    L974
  nopl   0x0(%rax)
L672:
  movsd  %xmm5,0x70(%rsp)
  movsd  %xmm3,0x60(%rsp)
  movsd  %xmm2,0x58(%rsp)
  movsd  %xmm1,0x50(%rsp)
  mov    %ebp,0x48(%rsp)
  call   <sqrt@plt>
  movsd  0x70(%rsp),%xmm5
  mov    0x48(%rsp),%ecx
  movsd  0x60(%rsp),%xmm3
  movsd  0x58(%rsp),%xmm2
  movsd  0x50(%rsp),%xmm1
  jmp    L756
L1079:
  movsd  %xmm5,0x48(%rsp)
  movsd  %xmm3,0x38(%rsp)
  movsd  %xmm2,0x30(%rsp)
  movsd  %xmm1,0x28(%rsp)
  call   <sqrt@plt>
  movsd  0x48(%rsp),%xmm5
  movsd  0x38(%rsp),%xmm3
  movsd  0x30(%rsp),%xmm2
  movsd  0x28(%rsp),%xmm1
  jmp    L73
L497:
  movsd  %xmm5,0x38(%rsp)
  movsd  %xmm3,0x30(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm1,0x20(%rsp)
  movsd  %xmm6,0x18(%rsp)
  movsd  %xmm7,0x8(%rsp)
  call   <sqrt@plt>
  movsd  0x38(%rsp),%xmm5
  movsd  0x30(%rsp),%xmm3
  movsd  0x28(%rsp),%xmm2
  movsd  0x20(%rsp),%xmm1
  movsd  0x18(%rsp),%xmm6
  movsd  0x8(%rsp),%xmm7
  jmp    L681
  cs nopw 0x0(%rax,%rax,1)
L177:
  mov    %ecx,0x58(%rsp)
  mov    %rdx,0x48(%rsp)
  movsd  %xmm5,0x80(%rsp)
  movsd  %xmm3,0x78(%rsp)
  movsd  %xmm2,0x70(%rsp)
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm4,0x50(%rsp)
  call   <sqrt@plt>
  movsd  0x78(%rsp),%xmm3
  movsd  0x70(%rsp),%xmm2
  movsd  0x80(%rsp),%xmm5
  movsd  0x60(%rsp),%xmm1
  mov    0x58(%rsp),%ecx
  movsd  0x50(%rsp),%xmm4
  mov    0x48(%rsp),%rdx
  jmp    L263
L571:
  movsd  %xmm5,0x50(%rsp)
  movsd  %xmm3,0x48(%rsp)
  movsd  %xmm2,0x38(%rsp)
  movsd  %xmm1,0x30(%rsp)
  movsd  %xmm4,0x28(%rsp)
  call   <sqrt@plt>
  movsd  0x50(%rsp),%xmm5
  movsd  0x48(%rsp),%xmm3
  movsd  0x38(%rsp),%xmm2
  movsd  0x30(%rsp),%xmm1
  movsd  0x28(%rsp),%xmm4
  jmp    L906
```

tool_calls: name: retrieve_data
arguments: data_label: D123
type_guessed: qword[2]
name: retrieve_data
arguments: data_label: D177
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D6
type_guessed: f32[4]
name: retrieve_data
arguments: data_label: D198
type_guessed: f32[2]
name: retrieve_data
arguments: data_label: D58
type_guessed: f64
name: retrieve_data
arguments: data_label: D150
type_guessed: f32[2]

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

tool: {"D177": [0xbb,0xbd,0xd7,0xd9,0xdf,0x7c,0xdb,0x3d]}

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

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

tool: D58: 0.75

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

assistant: ```c
void hqrx(n, low, igh, h, ev, ierr) int n, low, igh, *ierr;
double *h, *ev;
{
  int i, j, k, l = 0, m = 0, en, ll, mm, na, its, mp2, enm2;
  double p = 0.0, q = 0.0, r = 0.0, s, t, w, x, y, zz, norm, machep = 1.e-10;
  int notlas;
  *ierr = 0;
  norm = 0.0;
  k = 1;
  for (i = 1; i <= n; i++) {
    for (j = k; j <= n; j++)
      norm = norm + fabs(h[i - 1 + (j - 1) * n]);
    k = i;
    if ((i >= low) && (i <= igh))
      continue;
    ev[(i - 1) * 2] = h[i - 1 + (i - 1) * n];
    ev[1 + (i - 1) * 2] = 0.0;
  }
  en = igh;
  t = 0.0;
l60:
  if (en < low)
    return;
  its = 0;
  na = en - 1;
  enm2 = na - 1;
l70:
  for (ll = low; ll <= en; ll++) {
    l = en + low - ll;
    if (l == low)
      break;
    s = fabs(h[l - 2 + (l - 2) * n]) + fabs(h[l - 1 + (l - 1) * n]);
    if (s == 0.0)
      s = norm;
    if (fabs(h[l - 1 + (l - 2) * n]) <= machep * s)
      break;
  }
  x = h[en - 1 + (en - 1) * n];
  if (l == en)
    goto l270;
  y = h[na - 1 + (na - 1) * n];
  w = h[en - 1 + (na - 1) * n] * h[na - 1 + (en - 1) * n];
  if (l == na)
    goto l280;
  if (its == 30)
    goto l1000;
  if ((its != 10) && (its != 20))
    goto l130;
  t = t + x;
  for (i = low; i <= en; i++)
    h[i - 1 + (i - 1) * n] = h[i - 1 + (i - 1) * n] - x;
  s = fabs(h[en - 1 + (na - 1) * n]) + fabs(h[na - 1 + (enm2 - 1) * n]);
  x = 0.75 * s;
  y = x;
  w = -0.4375 * s * s;
l130:
  its++;
  for (mm = l; mm <= enm2; mm++) {
    m = enm2 + l - mm;
    zz = h[m - 1 + (m - 1) * n];
    r = x - zz;
    s = y - zz;
    p = (r * s - w) / h[m + (m - 1) * n] + h[m - 1 + m * n];
    q = h[m + m * n] - zz - r - s;
    r = h[m + 1 + m * n];
    s = fabs(p) + fabs(q) + fabs(r);
    p = p / s;
    q = q / s;
    r = r / s;
    if (m == l)
      break;
    if ((fabs(h[m - 1 + (m - 2) * n]) * (fabs(q) + fabs(r))) <= (machep * fabs(p) * (fabs(h[m - 2 + (m - 2) * n]) + fabs(zz) + fabs(h[m + m * n]))))
      break;
  }
  mp2 = m + 2;
  for (i = mp2; i <= en; i++) {
    h[i - 1 + (i - 3) * n] = 0.0;
    if (i == mp2)
      continue;
    h[i - 1 + (i - 4) * n] = 0.0;
  }
  for (k = m; k <= na; k++) {
    notlas = 0;
    if (k != na)
      notlas = 1;
    if (k == m)
      goto l170;
    p = h[k - 1 + (k - 2) * n];
    q = h[k + (k - 2) * n];
    r = 0.0;
    if (notlas)
      r = h[k + 1 + (k - 2) * n];
    x = fabs(p) + fabs(q) + fabs(r);
    if (x == 0.0)
      continue;
    p = p / x;
    q = q / x;
    r = r / x;
  l170:
    s = sign(sqrt(p * p + q * q + r * r), p);
    if (k != m)
      h[k - 1 + (k - 2) * n] = -s * x;
    else if (l != m)
      h[k - 1 + (k - 2) * n] = -h[k - 1 + (k - 2) * n];
    p = p + s;
    x = p / s;
    y = q / s;
    zz = r / s;
    q = q / p;
    r = r / p;
    for (j = k; j <= en; j++) {
      p = h[k - 1 + (j - 1) * n] + q * h[k + (j - 1) * n];
      if (notlas) {
        p = p + r * h[k + 1 + (j - 1) * n];
        h[k + 1 + (j - 1) * n] = h[k + 1 + (j - 1) * n] - p * zz;
      }
      h[k + (j - 1) * n] = h[k + (j - 1) * n] - p * y;
      h[k - 1 + (j - 1) * n] = h[k - 1 + (j - 1) * n] - p * x;
    }
    j = imin(en, k + 3);
    for (i = l; i <= j; i++) {
      p = x * h[i - 1 + (k - 1) * n] + y * h[i - 1 + k * n];
      if (notlas) {
        p = p + zz * h[i - 1 + (k + 1) * n];
        h[i - 1 + (k + 1) * n] = h[i - 1 + (k + 1) * n] - p * r;
      }
      h[i - 1 + k * n] = h[i - 1 + k * n] - p * q;
      h[i - 1 + (k - 1) * n] = h[i - 1 + (k - 1) * n] - p;
    }
  }
  goto l70;
l270:
  ev[(en - 1) * 2] = x + t;
  ev[1 + (en - 1) * 2] = 0.0;
  en = na;
  goto l60;
l280:
  p = (y - x) / 2.0;
  q = p * p + w;
  zz = sqrt(fabs(q));
  x = x + t;
  if (q < 0.0)
    goto l320;
  zz = p + sign(zz, p);
  ev[(na - 1) * 2] = x + zz;
  ev[(en - 1) * 2] = ev[(na - 1) * 2];
  if (zz != 0.0)
    ev[(en - 1) * 2] = x - w / zz;
  ev[1 + (na - 1) * 2] = 0.0;
  ev[1 + (en - 1) * 2] = 0.0;
  goto l330;
l320:
  ev[(na - 1) * 2] = x + p;
  ev[(en - 1) * 2] = x + p;
  ev[1 + (na - 1) * 2] = zz;
  ev[1 + (en - 1) * 2] = -zz;
l330:
  en = enm2;
  goto l60;
l1000:
  *ierr = en;
}
```