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

```asm
<Double_QR_Step>:
  endbr64
  mov    %ecx,%eax
  push   %r15
  movslq %ecx,%r10
  imul   %r9d,%eax
  push   %r14
  push   %r13
  push   %r12
  cltq
  push   %rbp
  push   %rbx
  lea    (%rdi,%rax,8),%r13
  lea    0x0(,%r10,8),%rbx
  lea    0x0(%r13,%rbx,1),%r15
  lea    (%rcx,%r9,1),%eax
  sub    $0x98,%rsp
  movsd  (%r15),%xmm3
  movq   D57(%rip),%xmm8
  mov    %esi,0x4c(%rsp)
  lea    -0x1(%rdx),%esi
  movapd %xmm3,%xmm6
  mov    %edx,0x24(%rsp)
  movslq %eax,%rdx
  add    %r9d,%eax
  subsd  %xmm0,%xmm6
  cltq
  mov    %rdi,0x28(%rsp)
  mov    %ecx,%edi
  mov    %ecx,0xc(%rsp)
  lea    (%r9,%r9,1),%ecx
  mov    %r8,0x18(%rsp)
  mulsd  %xmm3,%xmm6
  mov    %esi,0x8(%rsp)
  mov    %ecx,0x48(%rsp)
  addsd  %xmm1,%xmm6
  movsd  0x8(%r13,%rdx,8),%xmm1
  divsd  0x0(%r13,%rdx,8),%xmm6
  addsd  0x8(%r13,%rbx,1),%xmm6
  addsd  %xmm3,%xmm1
  movsd  0x8(%r13,%rax,8),%xmm3
  movapd %xmm6,%xmm4
  andpd  %xmm8,%xmm4
  subsd  %xmm0,%xmm1
  movapd %xmm1,%xmm5
  andpd  %xmm8,%xmm5
  addsd  %xmm5,%xmm4
  movapd %xmm3,%xmm5
  andpd  %xmm8,%xmm5
  addsd  %xmm5,%xmm4
  divsd  %xmm4,%xmm6
  divsd  %xmm4,%xmm1
  divsd  %xmm4,%xmm3
  cmp    %edi,%esi
  jl     L142
  movslq %r9d,%r11
  movapd %xmm6,%xmm10
  lea    0x10(%rbx),%r14
  mov    %r9d,%r12d
  lea    0x0(,%r11,8),%rbp
  sub    %edi,%r12d
  pxor   %xmm7,%xmm7
  movq   D13(%rip),%xmm13
  lea    0x8(%rbp),%rax
  mov    %rax,0x10(%rsp)
  lea    (%r11,%r11,1),%rax
  mov    %rax,0x50(%rsp)
  mov    %r11,%rax
  shl    $0x4,%rax
  mov    %rax,0x30(%rsp)
  lea    -0x1(%r9),%eax
  mov    %eax,0x58(%rsp)
  nopw   0x0(%rax,%rax,1)
L253:
  movapd %xmm1,%xmm4
  movapd %xmm10,%xmm0
  mov    %r10d,%r8d
  mov    %r10d,%edi
  mulsd  %xmm1,%xmm4
  mulsd  %xmm10,%xmm0
  addsd  %xmm4,%xmm0
  movapd %xmm3,%xmm4
  mulsd  %xmm3,%xmm4
  addsd  %xmm4,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L24
  sqrtsd %xmm0,%xmm0
L697:
  comisd %xmm10,%xmm7
  jbe    L464
  xorpd  %xmm13,%xmm0
L464:
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,0xc(%rsp)
  jge    L696
  movapd %xmm0,%xmm4
  xorpd  D13(%rip),%xmm4
  mulsd  %xmm2,%xmm4
  movsd  %xmm4,-0x8(%r15)
L21:
  addsd  %xmm0,%xmm10
  movapd %xmm1,%xmm4
  movapd %xmm3,%xmm5
  divsd  %xmm0,%xmm4
  movapd %xmm10,%xmm2
  divsd  %xmm0,%xmm2
  divsd  %xmm0,%xmm5
  divsd  %xmm10,%xmm1
  divsd  %xmm10,%xmm3
  cmp    %r10d,%r9d
  jle    L379
  cmp    %r10d,0x8(%rsp)
  je     L462
  mov    0x30(%rsp),%rax
  lea    0x0(%rbp,%rbx,1),%rcx
  lea    0x0(%rbp,%rcx,1),%rsi
  lea    (%r14,%rax,1),%rdx
  mov    %rdx,%rax
  sub    %rbp,%rax
  cmp    %rcx,%rdx
  setle  0x38(%rsp)
  cmp    %rsi,%rax
  mov    %rax,0x40(%rsp)
  setle  %al
  or     0x38(%rsp),%al
  cmp    %rbx,%rdx
  setle  %dl
  cmp    %r14,%rsi
  setge  %sil
  or     %esi,%edx
  and    %eax,%edx
  cmp    $0x1,%r12d
  setne  %al
  test   %al,%dl
  je     L522
  cmp    %rbx,0x40(%rsp)
  setle  %al
  cmp    %r14,%rcx
  setge  %dl
  or     %al,%dl
  je     L522
  mov    %r12d,%esi
  lea    0x0(%rbp,%r15,1),%rdx
  movapd %xmm1,%xmm12
  xor    %eax,%eax
  movapd %xmm3,%xmm11
  movapd %xmm5,%xmm9
  movapd %xmm4,%xmm6
  shr    %esi
  movapd %xmm2,%xmm0
  unpcklpd %xmm12,%xmm12
  lea    0x0(%rbp,%rdx,1),%rcx
  shl    $0x4,%rsi
  unpcklpd %xmm11,%xmm11
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm6,%xmm6
  unpcklpd %xmm0,%xmm0
  nopl   (%rax)
L354:
  movupd (%rdx,%rax,1),%xmm10
  movupd (%rcx,%rax,1),%xmm14
  movupd (%r15,%rax,1),%xmm15
  mulpd  %xmm12,%xmm10
  mulpd  %xmm11,%xmm14
  addpd  %xmm15,%xmm10
  addpd  %xmm14,%xmm10
  movupd (%rcx,%rax,1),%xmm14
  movapd %xmm10,%xmm15
  mulpd  %xmm9,%xmm15
  subpd  %xmm15,%xmm14
  movapd %xmm10,%xmm15
  mulpd  %xmm6,%xmm15
  movups %xmm14,(%rcx,%rax,1)
  movupd (%rdx,%rax,1),%xmm14
  subpd  %xmm15,%xmm14
  movapd %xmm10,%xmm15
  mulpd  %xmm0,%xmm15
  movups %xmm14,(%rdx,%rax,1)
  movupd (%r15,%rax,1),%xmm14
  subpd  %xmm15,%xmm14
  movups %xmm14,(%r15,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%rsi
  jne    L354
  mov    %r12d,%edx
  unpckhpd %xmm10,%xmm10
  and    $0xfffffffe,%edx
  lea    (%rdx,%rdi,1),%eax
  cmp    %edx,%r12d
  je     L379
  movslq %eax,%rdx
  add    %r9d,%eax
  movapd %xmm3,%xmm10
  movslq %eax,%rcx
  add    %r9d,%eax
  lea    0x0(%r13,%rdx,8),%rdx
  cltq
  lea    0x0(%r13,%rcx,8),%rcx
  lea    0x0(%r13,%rax,8),%rax
  movsd  (%rcx),%xmm6
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm6
  mulsd  %xmm0,%xmm10
  addsd  (%rdx),%xmm6
  addsd  %xmm6,%xmm10
  movapd %xmm5,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm4,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rax)
  movsd  (%rcx),%xmm0
  subsd  %xmm6,%xmm0
  movapd %xmm2,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rcx)
  movsd  (%rdx),%xmm0
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rdx)
L379:
  mov    0x24(%rsp),%edi
  lea    0x3(%r8),%eax
  lea    0x8(%rbx),%rdx
  cmp    %edi,%eax
  cmovg  %edi,%eax
  test   %eax,%eax
  js     L586
  mov    0x20(%rsp),%esi
  cmp    %esi,0x8(%rsp)
  je     L671
  mov    0x28(%rsp),%rcx
  add    $0x1,%eax
  xor    %esi,%esi
  nopl   0x0(%rax,%rax,1)
L491:
  movsd  (%rcx,%rbx,1),%xmm6
  movsd  (%rcx,%rdx,1),%xmm0
  add    $0x1,%esi
  mulsd  %xmm4,%xmm0
  mulsd  %xmm2,%xmm6
  addsd  %xmm0,%xmm6
  movsd  (%rcx,%r14,1),%xmm0
  movapd %xmm0,%xmm10
  mulsd  %xmm5,%xmm10
  addsd  %xmm6,%xmm10
  movapd %xmm3,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm1,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rcx,%r14,1)
  movsd  (%rcx,%rdx,1),%xmm0
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rcx,%rdx,1)
  movsd  (%rcx,%rbx,1),%xmm0
  subsd  %xmm10,%xmm0
  movsd  %xmm0,(%rcx,%rbx,1)
  add    %rbp,%rcx
  cmp    %esi,%eax
  jne    L491
L586:
  test   %r9d,%r9d
  jle    L303
  mov    0x18(%rsp),%rax
  mov    0x20(%rsp),%esi
  xor    %ecx,%ecx
  cmp    %esi,0x8(%rsp)
  je     L472
  nopl   0x0(%rax)
L660:
  movsd  (%rax,%rbx,1),%xmm6
  movsd  (%rax,%rdx,1),%xmm0
  add    $0x1,%ecx
  mulsd  %xmm4,%xmm0
  mulsd  %xmm2,%xmm6
  addsd  %xmm0,%xmm6
  movsd  (%rax,%r14,1),%xmm0
  movapd %xmm0,%xmm10
  mulsd  %xmm5,%xmm10
  addsd  %xmm6,%xmm10
  movapd %xmm3,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm1,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rax,%r14,1)
  movsd  (%rax,%rdx,1),%xmm0
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rax,%rdx,1)
  movsd  (%rax,%rbx,1),%xmm0
  subsd  %xmm10,%xmm0
  movsd  %xmm0,(%rax,%rbx,1)
  add    %rbp,%rax
  cmp    %ecx,%r9d
  jne    L660
L303:
  lea    0x1(%r8),%eax
  add    %rbp,%r13
  add    $0x1,%r10
  mov    %rdx,%rbx
  add    $0x8,%r14
  add    0x10(%rsp),%r15
  sub    $0x1,%r12d
  cmp    %r10d,0xc(%rsp)
  jge    L253
  cmp    0x8(%rsp),%eax
  jg     L142
  movq   D13(%rip),%xmm13
  movslq %eax,%r10
  mov    %r9d,%r8d
  lea    0x0(,%r10,8),%rbx
  sub    %eax,%r8d
  lea    0x0(%r13,%rbx,1),%r15
  lea    0x10(%rbx),%r14
  jmp    L184
  nopl   0x0(%rax)
L245:
  add    %rbp,%r13
  add    $0x1,%r10
  add    0x10(%rsp),%r15
  mov    %rax,%rbx
  add    $0x8,%r14
  sub    $0x1,%r8d
  cmp    %r10d,0x8(%rsp)
  jl     L142
L184:
  mov    %r10d,0x20(%rsp)
  mov    %r10d,%edi
  mov    %r10d,%r12d
  cmp    %r10d,0x8(%rsp)
  je     L205
  mov    0x48(%rsp),%eax
  add    %r10d,%eax
  cltq
  movsd  -0x8(%r13,%rax,8),%xmm2
  movapd %xmm2,%xmm0
  andpd  %xmm8,%xmm0
L537:
  movsd  -0x8(%r15),%xmm4
  movsd  -0x8(%r15,%r11,8),%xmm1
  movapd %xmm4,%xmm3
  movapd %xmm1,%xmm5
  andpd  %xmm8,%xmm3
  andpd  %xmm8,%xmm5
  addsd  %xmm5,%xmm3
  addsd  %xmm0,%xmm3
  ucomisd %xmm7,%xmm3
  jp     L450
  lea    0x8(%rbx),%rax
  je     L245
L450:
  divsd  %xmm3,%xmm1
  movapd %xmm4,%xmm6
  divsd  %xmm3,%xmm6
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  divsd  %xmm3,%xmm2
  movapd %xmm6,%xmm5
  mulsd  %xmm6,%xmm5
  addsd  %xmm5,%xmm0
  movapd %xmm2,%xmm5
  mulsd  %xmm2,%xmm5
  addsd  %xmm5,%xmm0
  ucomisd %xmm0,%xmm7
  ja     L528
  sqrtsd %xmm0,%xmm0
L232:
  comisd %xmm6,%xmm7
  jbe    L453
  xorpd  D13(%rip),%xmm0
L453:
  cmp    %r12d,0xc(%rsp)
  jge    L160
  movapd %xmm0,%xmm4
  xorpd  D13(%rip),%xmm4
  mulsd  %xmm3,%xmm4
  movsd  %xmm4,-0x8(%r15)
L99:
  addsd  %xmm0,%xmm6
  movapd %xmm1,%xmm3
  movapd %xmm2,%xmm5
  divsd  %xmm0,%xmm3
  movapd %xmm6,%xmm4
  divsd  %xmm0,%xmm4
  divsd  %xmm0,%xmm5
  divsd  %xmm6,%xmm1
  divsd  %xmm6,%xmm2
  cmp    %r12d,%r9d
  jle    L517
  cmp    %r12d,0x8(%rsp)
  je     L192
  mov    0x30(%rsp),%rax
  lea    0x0(%rbp,%rbx,1),%rcx
  lea    0x0(%rbp,%rcx,1),%rsi
  lea    (%r14,%rax,1),%rdx
  mov    %rdx,%rax
  sub    %rbp,%rax
  cmp    %rcx,%rdx
  setle  0x38(%rsp)
  cmp    %rsi,%rax
  mov    %rax,0x40(%rsp)
  setle  %al
  or     0x38(%rsp),%al
  cmp    %rdx,%rbx
  setge  %dl
  cmp    %rsi,%r14
  setle  %sil
  or     %esi,%edx
  and    %eax,%edx
  cmp    $0x1,%r8d
  setne  %al
  test   %al,%dl
  je     L98
  cmp    0x40(%rsp),%rbx
  setge  %al
  cmp    %rcx,%r14
  setle  %dl
  or     %al,%dl
  je     L98
  mov    %r8d,%esi
  lea    0x0(%rbp,%r15,1),%rdx
  movapd %xmm1,%xmm12
  xor    %eax,%eax
  movapd %xmm2,%xmm11
  movapd %xmm5,%xmm10
  movapd %xmm4,%xmm6
  shr    %esi
  movapd %xmm3,%xmm9
  unpcklpd %xmm12,%xmm12
  lea    0x0(%rbp,%rdx,1),%rcx
  shl    $0x4,%rsi
  unpcklpd %xmm11,%xmm11
  unpcklpd %xmm10,%xmm10
  unpcklpd %xmm9,%xmm9
  unpcklpd %xmm6,%xmm6
L276:
  movupd (%rdx,%rax,1),%xmm0
  movupd (%rcx,%rax,1),%xmm14
  movupd (%r15,%rax,1),%xmm15
  mulpd  %xmm12,%xmm0
  mulpd  %xmm11,%xmm14
  addpd  %xmm15,%xmm0
  addpd  %xmm14,%xmm0
  movupd (%rcx,%rax,1),%xmm14
  movapd %xmm0,%xmm15
  mulpd  %xmm10,%xmm15
  subpd  %xmm15,%xmm14
  movapd %xmm0,%xmm15
  mulpd  %xmm9,%xmm15
  mulpd  %xmm6,%xmm0
  movups %xmm14,(%rcx,%rax,1)
  movupd (%rdx,%rax,1),%xmm14
  subpd  %xmm15,%xmm14
  movups %xmm14,(%rdx,%rax,1)
  movupd (%r15,%rax,1),%xmm14
  subpd  %xmm0,%xmm14
  movups %xmm14,(%r15,%rax,1)
  add    $0x10,%rax
  cmp    %rsi,%rax
  jne    L276
  mov    0x20(%rsp),%eax
  mov    %r8d,%edx
  and    $0xfffffffe,%edx
  add    %edx,%eax
  cmp    %r8d,%edx
  je     L517
  movslq %eax,%rdx
  add    %r9d,%eax
  movapd %xmm2,%xmm0
  movslq %eax,%rcx
  add    %r9d,%eax
  lea    0x0(%r13,%rdx,8),%rdx
  cltq
  lea    0x0(%r13,%rcx,8),%rcx
  lea    0x0(%r13,%rax,8),%rax
  movsd  (%rcx),%xmm9
  movsd  (%rax),%xmm6
  mulsd  %xmm1,%xmm9
  mulsd  %xmm6,%xmm0
  addsd  (%rdx),%xmm9
  addsd  %xmm9,%xmm0
  movapd %xmm5,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm6
  movapd %xmm3,%xmm9
  mulsd  %xmm0,%xmm9
  mulsd  %xmm4,%xmm0
  movsd  %xmm6,(%rax)
  movsd  (%rcx),%xmm6
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rcx)
  movsd  (%rdx),%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,(%rdx)
L517:
  mov    0x24(%rsp),%eax
  lea    0x3(%rdi),%edx
  cmp    %eax,%edx
  cmovg  %eax,%edx
  lea    0x8(%rbx),%rax
  test   %edx,%edx
  js     L459
  cmp    %r12d,0x8(%rsp)
  je     L579
  mov    0x28(%rsp),%rcx
  add    $0x1,%edx
  xor    %esi,%esi
  nopl   0x0(%rax,%rax,1)
L347:
  movsd  (%rcx,%rbx,1),%xmm9
  movsd  (%rcx,%rax,1),%xmm0
  add    $0x1,%esi
  movsd  (%rcx,%r14,1),%xmm6
  mulsd  %xmm3,%xmm0
  mulsd  %xmm4,%xmm9
  addsd  %xmm0,%xmm9
  movapd %xmm5,%xmm0
  mulsd  %xmm6,%xmm0
  addsd  %xmm9,%xmm0
  movapd %xmm2,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm6
  movapd %xmm1,%xmm9
  mulsd  %xmm0,%xmm9
  movsd  %xmm6,(%rcx,%r14,1)
  movsd  (%rcx,%rax,1),%xmm6
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rcx,%rax,1)
  movsd  (%rcx,%rbx,1),%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,(%rcx,%rbx,1)
  add    %rbp,%rcx
  cmp    %edx,%esi
  jne    L347
L459:
  test   %r9d,%r9d
  jle    L245
  mov    0x18(%rsp),%rdx
  xor    %ecx,%ecx
  cmp    %r12d,0x8(%rsp)
  je     L601
  nopl   (%rax)
L297:
  movsd  (%rdx,%rbx,1),%xmm9
  movsd  (%rdx,%rax,1),%xmm0
  add    $0x1,%ecx
  movsd  (%rdx,%r14,1),%xmm6
  mulsd  %xmm3,%xmm0
  mulsd  %xmm4,%xmm9
  addsd  %xmm0,%xmm9
  movapd %xmm5,%xmm0
  mulsd  %xmm6,%xmm0
  addsd  %xmm9,%xmm0
  movapd %xmm2,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm6
  movapd %xmm1,%xmm9
  mulsd  %xmm0,%xmm9
  movsd  %xmm6,(%rdx,%r14,1)
  movsd  (%rdx,%rax,1),%xmm6
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rdx,%rax,1)
  movsd  (%rdx,%rbx,1),%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,(%rdx,%rbx,1)
  add    %rbp,%rdx
  cmp    %ecx,%r9d
  jne    L297
  jmp    L245
  nopl   0x0(%rax,%rax,1)
L205:
  movapd %xmm7,%xmm0
  movapd %xmm7,%xmm2
  jmp    L537
  nopl   (%rax)
L696:
  mov    0x4c(%rsp),%esi
  cmp    %esi,0xc(%rsp)
  je     L21
  movsd  -0x8(%r15),%xmm2
  xorpd  D13(%rip),%xmm2
  movsd  %xmm2,-0x8(%r15)
  jmp    L21
  nopw   0x0(%rax,%rax,1)
L160:
  mov    0x4c(%rsp),%esi
  cmp    %esi,0xc(%rsp)
  je     L99
  xorpd  %xmm13,%xmm4
  movsd  %xmm4,-0x8(%r15)
  jmp    L99
  xchg   %ax,%ax
L142:
  add    $0x98,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L601:
  lea    (%rdx,%rbx,1),%rdx
  xor    %ecx,%ecx
  xchg   %ax,%ax
L460:
  mov    %rdx,%rsi
  movsd  (%rdx),%xmm0
  movapd %xmm3,%xmm5
  add    $0x1,%ecx
  sub    %rbx,%rsi
  movsd  (%rsi,%rax,1),%xmm2
  mulsd  %xmm4,%xmm0
  mulsd  %xmm2,%xmm5
  addsd  %xmm5,%xmm0
  movapd %xmm1,%xmm5
  mulsd  %xmm0,%xmm5
  subsd  %xmm5,%xmm2
  movsd  %xmm2,(%rsi,%rax,1)
  movsd  (%rdx),%xmm2
  subsd  %xmm0,%xmm2
  movsd  %xmm2,(%rdx)
  add    %rbp,%rdx
  cmp    %ecx,%r9d
  jne    L460
  jmp    L245
  nopl   0x0(%rax)
L579:
  mov    0x28(%rsp),%rdi
  add    $0x1,%edx
  xor    %esi,%esi
  lea    (%rdi,%rbx,1),%rcx
  xchg   %ax,%ax
L100:
  mov    %rcx,%rdi
  movsd  (%rcx),%xmm0
  movapd %xmm3,%xmm9
  add    $0x1,%esi
  sub    %rbx,%rdi
  movsd  (%rdi,%rax,1),%xmm6
  mulsd  %xmm4,%xmm0
  mulsd  %xmm6,%xmm9
  addsd  %xmm9,%xmm0
  movapd %xmm1,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rdi,%rax,1)
  movsd  (%rcx),%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,(%rcx)
  add    %rbp,%rcx
  cmp    %edx,%esi
  jne    L100
  jmp    L459
  nopl   0x0(%rax)
L462:
  lea    0x0(%rbp,%r14,1),%rax
  cmp    %rbx,%rax
  lea    0x0(%rbp,%rbx,1),%rax
  setle  %dl
  cmp    %rax,%r14
  setle  %al
  or     %dl,%al
  je     L250
  cmp    $0x1,%r12d
  je     L250
  mov    %r12d,%eax
  movapd %xmm1,%xmm12
  movapd %xmm4,%xmm11
  shr    %eax
  movapd %xmm2,%xmm9
  lea    0x0(%rbp,%r15,1),%rdx
  sub    $0x1,%eax
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  shl    $0x4,%rax
  unpcklpd %xmm9,%xmm9
  lea    0x10(%r15,%rax,1),%rcx
  mov    %r15,%rax
  nopw   0x0(%rax,%rax,1)
L486:
  movupd (%rdx),%xmm0
  movupd (%rax),%xmm10
  add    $0x10,%rax
  add    $0x10,%rdx
  mulpd  %xmm12,%xmm0
  addpd  %xmm0,%xmm10
  movupd -0x10(%rdx),%xmm0
  movapd %xmm10,%xmm6
  mulpd  %xmm11,%xmm6
  subpd  %xmm6,%xmm0
  movapd %xmm10,%xmm6
  mulpd  %xmm9,%xmm6
  movups %xmm0,-0x10(%rdx)
  movupd -0x10(%rax),%xmm0
  subpd  %xmm6,%xmm0
  movups %xmm0,-0x10(%rax)
  cmp    %rcx,%rax
  jne    L486
  mov    %r12d,%eax
  unpckhpd %xmm10,%xmm10
  and    $0xfffffffe,%eax
  lea    (%rax,%rdi,1),%edx
  cmp    %eax,%r12d
  je     L379
  movslq %edx,%rax
  movapd %xmm1,%xmm10
  movapd %xmm4,%xmm6
  add    %r9d,%edx
  movslq %edx,%rdx
  lea    0x0(%r13,%rax,8),%rax
  lea    0x0(%r13,%rdx,8),%rdx
  movsd  (%rdx),%xmm0
  mulsd  %xmm0,%xmm10
  addsd  (%rax),%xmm10
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm2,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rdx)
  movsd  (%rax),%xmm0
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rax)
  jmp    L379
  cs nopw 0x0(%rax,%rax,1)
L192:
  lea    0x0(%rbp,%r14,1),%rax
  cmp    %rax,%rbx
  lea    0x0(%rbp,%rbx,1),%rax
  setge  %dl
  cmp    %rax,%r14
  setle  %al
  or     %dl,%al
  je     L607
  cmp    $0x1,%r8d
  je     L607
  mov    %r8d,%eax
  movapd %xmm1,%xmm12
  movapd %xmm3,%xmm11
  shr    %eax
  movapd %xmm4,%xmm10
  lea    0x0(%rbp,%r15,1),%rdx
  sub    $0x1,%eax
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  shl    $0x4,%rax
  unpcklpd %xmm10,%xmm10
  lea    0x10(%r15,%rax,1),%rcx
  mov    %r15,%rax
  nop
L471:
  movupd (%rdx),%xmm0
  movupd (%rax),%xmm6
  add    $0x10,%rax
  add    $0x10,%rdx
  mulpd  %xmm12,%xmm0
  addpd  %xmm6,%xmm0
  movupd -0x10(%rdx),%xmm6
  movapd %xmm0,%xmm9
  mulpd  %xmm11,%xmm9
  mulpd  %xmm10,%xmm0
  subpd  %xmm9,%xmm6
  movups %xmm6,-0x10(%rdx)
  movupd -0x10(%rax),%xmm6
  subpd  %xmm0,%xmm6
  movups %xmm6,-0x10(%rax)
  cmp    %rax,%rcx
  jne    L471
  mov    0x20(%rsp),%edx
  mov    %r8d,%eax
  and    $0xfffffffe,%eax
  add    %eax,%edx
  cmp    %r8d,%eax
  je     L517
  movslq %edx,%rax
  add    %r9d,%edx
  movslq %edx,%rdx
  lea    0x0(%r13,%rax,8),%rax
  lea    0x0(%r13,%rdx,8),%rdx
  movsd  (%rdx),%xmm6
  movapd %xmm6,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  (%rax),%xmm0
  movapd %xmm0,%xmm9
  mulsd  %xmm3,%xmm9
  mulsd  %xmm4,%xmm0
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rdx)
  movsd  (%rax),%xmm6
  subsd  %xmm0,%xmm6
  movsd  %xmm6,(%rax)
  jmp    L517
  nopl   0x0(%rax,%rax,1)
L671:
  mov    0x28(%rsp),%rdi
  add    $0x1,%eax
  xor    %esi,%esi
  lea    (%rdi,%rbx,1),%rcx
  xchg   %ax,%ax
L520:
  mov    %rcx,%rdi
  movsd  (%rcx),%xmm10
  movapd %xmm4,%xmm6
  add    $0x1,%esi
  sub    %rbx,%rdi
  movsd  (%rdi,%rdx,1),%xmm0
  mulsd  %xmm2,%xmm10
  mulsd  %xmm0,%xmm6
  addsd  %xmm6,%xmm10
  movapd %xmm1,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movsd  %xmm0,(%rdi,%rdx,1)
  movsd  (%rcx),%xmm0
  subsd  %xmm10,%xmm0
  movsd  %xmm0,(%rcx)
  add    %rbp,%rcx
  cmp    %esi,%eax
  jne    L520
  jmp    L586
L472:
  add    %rbx,%rax
  nopl   0x0(%rax,%rax,1)
L547:
  mov    %rax,%rsi
  movsd  (%rax),%xmm10
  movapd %xmm4,%xmm5
  add    $0x1,%ecx
  sub    %rbx,%rsi
  movsd  (%rsi,%rdx,1),%xmm0
  mulsd  %xmm2,%xmm10
  mulsd  %xmm0,%xmm5
  addsd  %xmm5,%xmm10
  movapd %xmm1,%xmm5
  mulsd  %xmm10,%xmm5
  subsd  %xmm5,%xmm0
  movsd  %xmm0,(%rsi,%rdx,1)
  movsd  (%rax),%xmm0
  subsd  %xmm10,%xmm0
  movsd  %xmm0,(%rax)
  add    %rbp,%rax
  cmp    %ecx,%r9d
  jne    L547
  jmp    L303
  nopl   0x0(%rax)
L522:
  mov    0x58(%rsp),%eax
  mov    0x50(%rsp),%rcx
  sub    %r8d,%eax
  add    %r10,%rax
  lea    0x8(%r13,%rax,8),%rdx
  mov    %r15,%rax
  nopw   0x0(%rax,%rax,1)
L548:
  movsd  (%rax,%rcx,8),%xmm0
  movsd  (%rax,%r11,8),%xmm6
  movapd %xmm3,%xmm10
  mulsd  %xmm0,%xmm10
  mulsd  %xmm1,%xmm6
  addsd  (%rax),%xmm6
  addsd  %xmm6,%xmm10
  movapd %xmm5,%xmm6
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm4,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rax,%rcx,8)
  movsd  (%rax,%r11,8),%xmm0
  subsd  %xmm6,%xmm0
  movapd %xmm2,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rax,%r11,8)
  movsd  (%rax),%xmm0
  add    $0x8,%rax
  subsd  %xmm6,%xmm0
  movsd  %xmm0,-0x8(%rax)
  cmp    %rdx,%rax
  jne    L548
  jmp    L379
  nopl   0x0(%rax)
L98:
  lea    -0x1(%r9),%eax
  mov    0x50(%rsp),%rcx
  sub    %edi,%eax
  add    %r10,%rax
  lea    0x8(%r13,%rax,8),%rdx
  mov    %r15,%rax
  xchg   %ax,%ax
L243:
  movsd  (%rax,%rcx,8),%xmm6
  movsd  (%rax,%r11,8),%xmm9
  movapd %xmm2,%xmm0
  mulsd  %xmm6,%xmm0
  mulsd  %xmm1,%xmm9
  addsd  (%rax),%xmm9
  addsd  %xmm9,%xmm0
  movapd %xmm5,%xmm9
  mulsd  %xmm0,%xmm9
  subsd  %xmm9,%xmm6
  movapd %xmm3,%xmm9
  mulsd  %xmm0,%xmm9
  mulsd  %xmm4,%xmm0
  movsd  %xmm6,(%rax,%rcx,8)
  movsd  (%rax,%r11,8),%xmm6
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rax,%r11,8)
  movsd  (%rax),%xmm6
  add    $0x8,%rax
  subsd  %xmm0,%xmm6
  movsd  %xmm6,-0x8(%rax)
  cmp    %rax,%rdx
  jne    L243
  jmp    L517
L250:
  mov    0x58(%rsp),%eax
  sub    %r8d,%eax
  add    %r10,%rax
  lea    0x8(%r13,%rax,8),%rdx
  mov    %r15,%rax
  nopw   0x0(%rax,%rax,1)
L47:
  movsd  (%rax,%r11,8),%xmm0
  movapd %xmm1,%xmm10
  movapd %xmm4,%xmm6
  mulsd  %xmm0,%xmm10
  addsd  (%rax),%xmm10
  mulsd  %xmm10,%xmm6
  subsd  %xmm6,%xmm0
  movapd %xmm2,%xmm6
  mulsd  %xmm10,%xmm6
  movsd  %xmm0,(%rax,%r11,8)
  movsd  (%rax),%xmm0
  add    $0x8,%rax
  subsd  %xmm6,%xmm0
  movsd  %xmm0,-0x8(%rax)
  cmp    %rdx,%rax
  jne    L47
  jmp    L379
L607:
  lea    -0x1(%r9),%eax
  sub    %edi,%eax
  add    %r10,%rax
  lea    0x8(%r13,%rax,8),%rdx
  mov    %r15,%rax
  nopl   (%rax)
L135:
  movsd  (%rax,%r11,8),%xmm6
  movapd %xmm1,%xmm0
  movapd %xmm3,%xmm9
  mulsd  %xmm6,%xmm0
  addsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm9
  mulsd  %xmm4,%xmm0
  subsd  %xmm9,%xmm6
  movsd  %xmm6,(%rax,%r11,8)
  movsd  (%rax),%xmm6
  add    $0x8,%rax
  subsd  %xmm0,%xmm6
  movsd  %xmm6,-0x8(%rax)
  cmp    %rax,%rdx
  jne    L135
  jmp    L517
L24:
  mov    %r9d,0x88(%rsp)
  mov    %r10,0x80(%rsp)
  mov    %r11,0x40(%rsp)
  mov    %r10d,0x38(%rsp)
  mov    %r10d,0x20(%rsp)
  movsd  %xmm10,0x78(%rsp)
  movsd  %xmm3,0x70(%rsp)
  movsd  %xmm1,0x68(%rsp)
  movsd  %xmm2,0x60(%rsp)
  call   <sqrt@plt>
  movsd  0x78(%rsp),%xmm10
  mov    0x40(%rsp),%r11
  pxor   %xmm7,%xmm7
  mov    0x88(%rsp),%r9d
  mov    0x80(%rsp),%r10
  movsd  0x70(%rsp),%xmm3
  movsd  0x68(%rsp),%xmm1
  movsd  0x60(%rsp),%xmm2
  mov    0x38(%rsp),%r8d
  movq   D13(%rip),%xmm13
  mov    0x20(%rsp),%edi
  movq   D57(%rip),%xmm8
  jmp    L697
L528:
  mov    %r9d,0x8c(%rsp)
  mov    %r8d,0x88(%rsp)
  mov    %r10,0x80(%rsp)
  mov    %r11,0x78(%rsp)
  mov    %edi,0x70(%rsp)
  movsd  %xmm2,0x68(%rsp)
  movsd  %xmm1,0x60(%rsp)
  movsd  %xmm6,0x58(%rsp)
  movsd  %xmm3,0x40(%rsp)
  movsd  %xmm4,0x38(%rsp)
  call   <sqrt@plt>
  mov    0x78(%rsp),%r11
  mov    0x70(%rsp),%edi
  pxor   %xmm7,%xmm7
  mov    0x8c(%rsp),%r9d
  movsd  0x68(%rsp),%xmm2
  mov    0x88(%rsp),%r8d
  movsd  0x60(%rsp),%xmm1
  mov    0x80(%rsp),%r10
  movsd  0x58(%rsp),%xmm6
  movq   D13(%rip),%xmm13
  movsd  0x40(%rsp),%xmm3
  movq   D57(%rip),%xmm8
  movsd  0x38(%rsp),%xmm4
  jmp    L232
```

tool_calls: name: disassemble_data
arguments: data_tag: D57
datatype: qword
name: disassemble_data
arguments: data_tag: D13
datatype: f32[4]

tool: D57: 9223372036854775807

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

assistant: ```c
void Double_QR_Step(double *H, int min_row, int max_row, int min_col, double trace, double det, double *S, int n) {
  double s, x, y, z;
  double a, b, c;
  double *pH;
  double *tH;
  double *pS;
  int i, j, k;
  int last_test_row_col = max_row - 1;
  k = min_col;
  pH = H + min_col * n;
  a = (pH[k] * (pH[k] - trace) + det) / pH[n + k] + pH[k + 1];
  b = pH[k] + pH[n + k + 1] - trace;
  c = pH[n + n + k + 1];
  s = fabs(a) + fabs(b) + fabs(c);
  a /= s;
  b /= s;
  c /= s;
  for (; k <= last_test_row_col; k++, pH += n) {
    if (k > min_col) {
      c = (k == last_test_row_col) ? 0.0 : pH[n + n + k - 1];
      x = fabs(pH[k - 1]) + fabs(pH[n + k - 1]) + fabs(c);
      if (x == 0.0)
        continue;
      a = pH[k - 1] / x;
      b = pH[n + k - 1] / x;
      c /= x;
    }
    s = sqrt(a * a + b * b + c * c);
    if (a < 0.0)
      s = -s;
    if (k > min_col)
      pH[k - 1] = -s * x;
    else if (min_row != min_col)
      pH[k - 1] = -pH[k - 1];
    a += s;
    x = a / s;
    y = b / s;
    z = c / s;
    b /= a;
    c /= a;
    for (j = k; j < n; j++) {
      a = pH[j] + b * pH[n + j];
      if (k != last_test_row_col) {
        a += c * pH[n + n + j];
        pH[n + n + j] -= a * z;
      }
      pH[n + j] -= a * y;
      pH[j] -= a * x;
    }
    j = k + 3;
    if (j > max_row)
      j = max_row;
    for (i = 0, tH = H; i <= j; i++, tH += n) {
      a = x * tH[k] + y * tH[k + 1];
      if (k != last_test_row_col) {
        a += z * tH[k + 2];
        tH[k + 2] -= a * c;
      }
      tH[k + 1] -= a * b;
      tH[k] -= a;
    }
    for (i = 0, pS = S; i < n; pS += n, i++) {
      a = x * pS[k] + y * pS[k + 1];
      if (k != last_test_row_col) {
        a += z * pS[k + 2];
        pS[k + 2] -= a * c;
      }
      pS[k + 1] -= a * b;
      pS[k] -= a;
    }
  };
}
```