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

```asm
<lm_lmdif>:
  endbr64
  push   %r15
  mov    %edi,%r11d
  mov    %rcx,%r15
  push   %r14
  mov    %esi,%r14d
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1a8,%rsp
  mov    0x1e8(%rsp),%rax
  mov    0x1f0(%rsp),%rdi
  mov    %rdx,0x50(%rsp)
  mov    %r8d,0xa8(%rsp)
  mov    0x1f8(%rsp),%r13
  mov    %rax,0x8(%rsp)
  mov    0x200(%rsp),%rax
  mov    %r9,0x68(%rsp)
  mov    0x210(%rsp),%rbp
  mov    %rax,0x70(%rsp)
  mov    0x208(%rsp),%rax
  mov    %rdi,0x20(%rsp)
  mov    0x220(%rsp),%rbx
  mov    %rax,0x58(%rsp)
  mov    0x218(%rsp),%rax
  mov    0x228(%rsp),%r12
  movsd  %xmm0,0x38(%rsp)
  mov    %rax,0x98(%rsp)
  mov    0x230(%rsp),%rax
  movsd  %xmm1,0x48(%rsp)
  mov    %rax,0x40(%rsp)
  mov    0x238(%rsp),%rax
  movsd  %xmm2,0x78(%rsp)
  mov    %rax,0x28(%rsp)
  movsd  %xmm4,0x80(%rsp)
  mov    0x248(%rsp),%rax
  mov    %rax,0x18(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x198(%rsp)
  xor    %eax,%eax
  comisd D13(%rip),%xmm3
  movl   $0x0,(%rdi)
  movq   $0x0,0x190(%rsp)
  jb     L523
  pxor   %xmm5,%xmm5
  ucomisd %xmm3,%xmm5
  ja     L279
L1283:
  sqrtsd %xmm3,%xmm3
  movsd  %xmm3,0x60(%rsp)
L419:
  test   %r14d,%r14d
  jle    L682
  cmp    %r11d,%r14d
  jg     L682
  pxor   %xmm6,%xmm6
  comisd 0x38(%rsp),%xmm6
  ja     L682
  comisd 0x48(%rsp),%xmm6
  ja     L682
  comisd 0x78(%rsp),%xmm6
  ja     L682
  mov    0xa8(%rsp),%r9d
  test   %r9d,%r9d
  jle    L682
  comisd 0x80(%rsp),%xmm6
  jae    L682
  cmpl   $0x2,0x1e0(%rsp)
  je     L1481
L1518:
  mov    0x8(%rsp),%rax
  mov    %r11d,0x30(%rsp)
  mov    %r11d,%esi
  mov    %r15,%rcx
  mov    0x18(%rsp),%rdx
  mov    0x50(%rsp),%rdi
  movl   $0x0,(%rax)
  mov    %rax,%r8
  mov    0x40(%rsp),%rax
  call   *%rax
  mov    0x20(%rsp),%r9
  mov    0x28(%rsp),%r10
  mov    0x30(%rsp),%r11d
  mov    (%r9),%eax
  mov    %eax,0x10(%rsp)
  add    $0x1,%eax
  test   %r10,%r10
  mov    %eax,(%r9)
  je     L489
  sub    $0x8,%rsp
  mov    %r11d,%edx
  mov    %r15,%r8
  mov    %r14d,%edi
  push   %rax
  push   $0x0
  push   $0x0
  mov    0x260(%rsp),%r9d
  mov    0x38(%rsp),%rcx
  mov    0x70(%rsp),%rsi
  mov    %r11d,0x30(%rsp)
  call   *%r10
  mov    0x30(%rsp),%r11d
  add    $0x20,%rsp
L489:
  mov    0x8(%rsp),%rax
  mov    (%rax),%r8d
  test   %r8d,%r8d
  js     L15
  mov    %r11d,%edi
  xor    %eax,%eax
  mov    %r15,%rsi
  mov    %r11d,0x10(%rsp)
  call   <lm_enorm@plt>
  mov    0x10(%rsp),%r11d
  test   %eax,%eax
  jle    L1539
  mov    $0x1,%esi
  test   %r11d,%r11d
  movslq %r11d,%rcx
  mov    0x68(%rsp),%r9
  mov    %esi,%edi
  pxor   %xmm6,%xmm6
  mov    0x98(%rsp),%r10
  movsd  0x60(%rsp),%xmm5
  cmovg  %r11d,%edi
  cvtsi2sd %eax,%xmm6
  lea    0x0(,%rcx,8),%rax
  mov    %rax,0xe8(%rsp)
  mov    %edi,%eax
  mov    %edi,0x124(%rsp)
  and    $0xfffffffe,%edi
  shr    %eax
  mov    %edi,0x164(%rsp)
  movsd  %xmm6,0xe0(%rsp)
  sub    $0x1,%eax
  movapd %xmm5,%xmm6
  mulsd  %xmm5,%xmm6
  add    $0x1,%rax
  shl    $0x4,%rax
  mov    %rax,0x118(%rsp)
  mov    %edi,%eax
  shl    $0x3,%rax
  cmp    $0x2,%r14d
  lea    (%r12,%rax,1),%rdi
  setg   %dl
  mov    %rdi,0x128(%rsp)
  lea    (%r15,%rax,1),%rdi
  mov    %edx,%r8d
  lea    0x8(%r10),%rax
  cmp    %rax,%r9
  mov    %rdi,0x10(%rsp)
  movsd  %xmm6,0xf8(%rsp)
  setne  %dil
  and    %edi,%r8d
  test   %r14d,%r14d
  cmovg  %r14d,%esi
  mov    %r8b,0x187(%rsp)
  mov    0x50(%rsp),%r8
  mov    %esi,%eax
  mov    %esi,0x148(%rsp)
  and    $0xfffffffe,%esi
  shr    %eax
  mov    %esi,0x14c(%rsp)
  sub    $0x1,%eax
  add    $0x1,%rax
  shl    $0x4,%rax
  mov    %rax,0x140(%rsp)
  mov    %esi,%eax
  shl    $0x3,%rax
  cmp    $0x3,%r14d
  lea    (%r9,%rax,1),%rsi
  mov    %rsi,0x130(%rsp)
  lea    (%r10,%rax,1),%rsi
  mov    %rsi,0x88(%rsp)
  setg   %sil
  add    $0x8,%r8
  and    %edi,%esi
  lea    0x8(%r9),%rdi
  cmp    %rdi,%rbx
  mov    %sil,0x186(%rsp)
  setne  %sil
  cmp    %r8,%rbx
  setne  %r9b
  and    %r9d,%esi
  lea    0x8(%r15),%r9
  and    %edx,%esi
  mov    %r9,0x108(%rsp)
  mov    %sil,0x185(%rsp)
  mov    0x50(%rsp),%rsi
  add    %rax,%rsi
  cmp    $0x3,%r11d
  mov    %rsi,0x90(%rsp)
  lea    (%rbx,%rax,1),%rsi
  mov    %rsi,0x168(%rsp)
  setg   %sil
  cmp    %r9,%r12
  setne  %r9b
  add    $0x1,%rcx
  and    %esi,%r9d
  shl    $0x4,%rcx
  mov    %r9b,0x184(%rsp)
  mov    0xe8(%rsp),%r9
  mov    %rcx,0x178(%rsp)
  lea    0x8(%rbp),%rcx
  add    $0x8,%r9
  cmp    %rcx,%r10
  setne  %cl
  cmp    %r8,%r10
  mov    %r9,0x138(%rsp)
  mov    0x68(%rsp),%r9
  setne  %r8b
  add    %rbp,%rax
  and    %r8d,%ecx
  mov    0x50(%rsp),%r8
  mov    %rax,0xf0(%rsp)
  and    %edx,%ecx
  lea    0xf(%r8),%rax
  mov    %cl,0x163(%rsp)
  sub    %r10,%rax
  cmp    $0x1e,%rax
  seta   %al
  cmp    %rdi,%r10
  mov    %r15,%r10
  setne  %cl
  and    %ecx,%eax
  lea    0xf(%r9),%rcx
  sub    %r8,%rcx
  cmp    $0x1e,%rcx
  seta   %cl
  and    %ecx,%eax
  and    %edx,%eax
  mov    %al,0x182(%rsp)
  lea    0x8(%r12),%rax
  cmp    %rax,%r15
  mov    %rax,0x100(%rsp)
  setne  %al
  movq   $0x0,0x110(%rsp)
  and    %esi,%eax
  mov    %r14d,0xac(%rsp)
  mov    %r11d,%r14d
  mov    %al,0x183(%rsp)
  movq   $0x0,0xa0(%rsp)
  movl   $0x0,0x120(%rsp)
L344:
  xor    %eax,%eax
  xor    %r11d,%r11d
  mov    %r13,0x30(%rsp)
  mov    %r13,%r15
  mov    %rbp,0x150(%rsp)
  mov    %r11,%r13
  mov    %eax,%ebp
  mov    0x128(%rsp),%r11
  mov    %rbx,0x158(%rsp)
  mov    0x164(%rsp),%eax
  mov    %r10,%rbx
  mov    0x50(%rsp),%r10
  cs nopw 0x0(%rax,%rax,1)
L882:
  mov    %eax,0xd8(%rsp)
  mov    %r14d,%esi
  mov    %r10,%rdi
  mov    %r12,%rcx
  movsd  (%r10,%r13,8),%xmm3
  mov    0x8(%rsp),%rax
  mov    %r11,0xd0(%rsp)
  movsd  0xf8(%rsp),%xmm5
  mov    %r10,0xb8(%rsp)
  movapd %xmm3,%xmm1
  andpd  D107(%rip),%xmm1
  mov    0x18(%rsp),%rdx
  mov    %rax,%r8
  movsd  %xmm3,0xc0(%rsp)
  mulsd  0x60(%rsp),%xmm1
  movapd %xmm1,%xmm0
  cmpnlesd %xmm5,%xmm0
  andpd  %xmm0,%xmm1
  andnpd %xmm5,%xmm0
  orpd   %xmm0,%xmm1
  movsd  %xmm1,0xc8(%rsp)
  movapd %xmm1,%xmm0
  addsd  %xmm3,%xmm0
  movsd  %xmm0,(%r10,%r13,8)
  movl   $0x0,(%rax)
  mov    0x40(%rsp),%rax
  call   *%rax
  mov    0x20(%rsp),%rax
  cmpq   $0x0,0x28(%rsp)
  mov    0xb8(%rsp),%r10
  mov    0xd0(%rsp),%r11
  movsd  0xc0(%rsp),%xmm3
  mov    (%rax),%esi
  movsd  0xc8(%rsp),%xmm1
  lea    0x1(%rsi),%edx
  mov    %esi,0xb0(%rsp)
  mov    %edx,(%rax)
  mov    0xd8(%rsp),%eax
  je     L1237
  mov    %eax,0xd0(%rsp)
  sub    $0x8,%rsp
  mov    %r10,%rsi
  mov    %r12,%r8
  mov    %r11,0xd0(%rsp)
  movsd  %xmm1,0xc0(%rsp)
  push   %rdx
  mov    0x130(%rsp),%edi
  mov    %r14d,%edx
  push   %rdi
  push   $0x1
  mov    0x260(%rsp),%r9d
  mov    0x38(%rsp),%rcx
  mov    0xcc(%rsp),%edi
  mov    0x48(%rsp),%rax
  mov    %r10,0xd0(%rsp)
  call   *%rax
  mov    0xf0(%rsp),%eax
  mov    0xe8(%rsp),%r11
  add    $0x20,%rsp
  movsd  0xc0(%rsp),%xmm3
  mov    0xb0(%rsp),%r10
  movsd  0xb8(%rsp),%xmm1
L1237:
  mov    0x8(%rsp),%rsi
  mov    (%rsi),%edi
  test   %edi,%edi
  js     L15
  cmp    %r15,0x108(%rsp)
  setne  %cl
  cmp    %r15,0x100(%rsp)
  setne  %dl
  test   %dl,%cl
  je     L544
  cmp    $0x1,%r14d
  jle    L544
  movapd %xmm1,%xmm2
  mov    0x118(%rsp),%rcx
  xor    %edx,%edx
  unpcklpd %xmm2,%xmm2
  nopl   0x0(%rax)
L385:
  movupd (%r12,%rdx,1),%xmm0
  movupd (%rbx,%rdx,1),%xmm7
  subpd  %xmm7,%xmm0
  divpd  %xmm2,%xmm0
  movups %xmm0,(%r15,%rdx,1)
  add    $0x10,%rdx
  cmp    %rcx,%rdx
  jne    L385
  cmp    %eax,0x124(%rsp)
  je     L1374
  mov    0x10(%rsp),%rdi
  movsd  (%r11),%xmm0
  lea    0x0(%rbp,%rax,1),%edx
  movslq %edx,%rdx
  subsd  (%rdi),%xmm0
  mov    0x30(%rsp),%rdi
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdi,%rdx,8)
L1374:
  movsd  %xmm3,(%r10,%r13,8)
  add    %r14d,%ebp
  add    $0x1,%r13
  add    0xe8(%rsp),%r15
  cmp    %r13d,0xac(%rsp)
  jg     L882
  mov    0x30(%rsp),%r13
  mov    $0x1,%ecx
  xor    %eax,%eax
  mov    %r14d,%edi
  mov    %rbx,0xb0(%rsp)
  mov    0x158(%rsp),%rbx
  mov    0x150(%rsp),%rbp
  mov    %r13,%rdx
  push   %rbx
  push   0xa0(%rsp)
  mov    0xbc(%rsp),%esi
  mov    %rbp,%r9
  mov    0x80(%rsp),%r8
  call   <lm_qrfac@plt>
  pop    %rdx
  pop    %rcx
  mov    0x120(%rsp),%esi
  mov    0xb0(%rsp),%r10
  test   %esi,%esi
  je     L1529
  cmpl   $0x2,0x1e0(%rsp)
  jne    L318
L670:
  xor    %eax,%eax
  cmpb   $0x0,0x184(%rsp)
  je     L916
  mov    0x118(%rsp),%rdx
L1011:
  movupd (%r10,%rax,1),%xmm6
  movups %xmm6,(%r12,%rax,1)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L1011
  mov    0x164(%rsp),%edi
  cmp    %edi,0x124(%rsp)
  je     L440
  mov    0x10(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    0x128(%rsp),%rax
  movsd  %xmm0,(%rax)
L440:
  mov    0xac(%rsp),%eax
  mov    %r12,%rcx
  mov    %r13,%r11
  mov    %r13,%rdi
  mov    %r10,0xb8(%rsp)
  mov    %r14d,%r10d
  cmp    %r14d,%eax
  mov    %rbx,0xc0(%rsp)
  cmovg  %r14d,%eax
  xor    %r9d,%r9d
  xor    %edx,%edx
  mov    %eax,0x30(%rsp)
  jmp    L263
  xchg   %ax,%ax
L1453:
  mov    0x58(%rsp),%rax
  add    $0x1,%r8d
  add    $0x8,%rcx
  add    %r14d,%r9d
  movsd  0x0(%rbp,%rdx,8),%xmm0
  add    0xe8(%rsp),%r11
  sub    $0x1,%r10d
  movsd  %xmm0,(%rdi)
  movsd  -0x8(%rcx),%xmm0
  add    0x138(%rsp),%rdi
  movsd  %xmm0,(%rax,%rdx,8)
  add    $0x1,%rdx
  cmp    %edx,0x30(%rsp)
  jle    L924
L263:
  movsd  (%rdi),%xmm3
  pxor   %xmm6,%xmm6
  mov    %edx,%r8d
  mov    %edx,%eax
  ucomisd %xmm6,%xmm3
  jp     L1146
  je     L1453
L1146:
  cmp    %eax,%r14d
  mov    $0x1,%ebx
  mov    %edx,0xb0(%rsp)
  cmovg  %r10d,%ebx
  cmp    %edx,%r14d
  jle    L727
  cmp    $0x1,%r10d
  je     L727
  mov    %ebx,%r15d
  xor    %esi,%esi
  pxor   %xmm0,%xmm0
  shr    %r15d
  shl    $0x4,%r15
  nopl   0x0(%rax)
L274:
  movupd (%rdi,%rsi,1),%xmm1
  movupd (%rcx,%rsi,1),%xmm7
  add    $0x10,%rsi
  mulpd  %xmm7,%xmm1
  addsd  %xmm1,%xmm0
  unpckhpd %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  cmp    %r15,%rsi
  jne    L274
  mov    %ebx,%r15d
  and    $0xfffffffe,%r15d
  lea    (%r15,%rax,1),%esi
  cmp    %r15d,%ebx
  je     L394
L1157:
  lea    (%r9,%rsi,1),%r15d
  movslq %esi,%rsi
  movslq %r15d,%r15
  movsd  0x0(%r13,%r15,8),%xmm1
  mulsd  (%r12,%rsi,8),%xmm1
  addsd  %xmm1,%xmm0
L394:
  cmp    0xb0(%rsp),%r14d
  xorpd  D14(%rip),%xmm0
  setg   %r15b
  cmp    $0x1,%r10d
  divsd  %xmm3,%xmm0
  setne  %sil
  test   %sil,%r15b
  je     L756
  lea    0x8(%rdi),%rsi
  cmp    %rsi,%rcx
  je     L756
  mov    %ebx,%r15d
  movapd %xmm0,%xmm2
  xor    %esi,%esi
  shr    %r15d
  unpcklpd %xmm2,%xmm2
  shl    $0x4,%r15
L805:
  movupd (%rdi,%rsi,1),%xmm1
  movupd (%rcx,%rsi,1),%xmm7
  mulpd  %xmm2,%xmm1
  addpd  %xmm7,%xmm1
  movups %xmm1,(%rcx,%rsi,1)
  add    $0x10,%rsi
  cmp    %r15,%rsi
  jne    L805
  mov    %ebx,%esi
  and    $0xfffffffe,%esi
  add    %esi,%eax
  cmp    %ebx,%esi
  je     L1453
  movslq %eax,%rsi
  add    %r9d,%eax
  cltq
  lea    (%r12,%rsi,8),%rsi
  mulsd  0x0(%r13,%rax,8),%xmm0
  addsd  (%rsi),%xmm0
  movsd  %xmm0,(%rsi)
  jmp    L1453
L1481:
  mov    0x68(%rsp),%rdx
  xor    %eax,%eax
  jmp    L1315
  nopw   0x0(%rax,%rax,1)
L656:
  add    $0x1,%rax
  cmp    %eax,%r14d
  jle    L1518
L1315:
  pxor   %xmm6,%xmm6
  comisd (%rdx,%rax,8),%xmm6
  jb     L656
  nopl   0x0(%rax,%rax,1)
L682:
  mov    0x8(%rsp),%rax
  movl   $0xa,(%rax)
L15:
  mov    0x198(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L112
  add    $0x1a8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L523:
  mov    D13(%rip),%rax
  movq   %rax,%xmm3
  jmp    L1283
L544:
  xor    %edx,%edx
  nopl   0x0(%rax,%rax,1)
L1153:
  movsd  (%r12,%rdx,8),%xmm0
  subsd  (%rbx,%rdx,8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15,%rdx,8)
  add    $0x1,%rdx
  cmp    %edx,%r14d
  jg     L1153
  jmp    L1374
L916:
  movsd  (%r10,%rax,8),%xmm0
  movsd  %xmm0,(%r12,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r14d
  jg     L916
  jmp    L440
L924:
  mov    0xb8(%rsp),%r10
  mov    0xc0(%rsp),%rbx
  cmp    %r8d,0xac(%rsp)
  jle    L1082
  mov    0xac(%rsp),%r11d
  movslq %r8d,%rax
  mov    0x138(%rsp),%r9
  xor    %edi,%edi
  lea    0x0(,%rax,8),%rdx
  sub    %r8d,%r11d
  mov    %r11d,%ecx
  sub    $0x1,%rcx
  lea    (%rdx,%rcx,8),%rsi
  mov    %rsi,0x30(%rsp)
  mov    %r14d,%esi
  imul   %r9,%rcx
  imul   %r8d,%esi
  movslq %esi,%rsi
  add    %rax,%rsi
  test   %r9,%r9
  lea    0x0(,%rsi,8),%r15
  mov    %rdi,%rsi
  cmovs  %rcx,%rsi
  add    %r15,%rsi
  add    %r13,%rsi
  test   %r9,%r9
  cmovs  %rdi,%rcx
  mov    %rsi,0xb0(%rsp)
  lea    0x0(%rbp,%rdx,1),%rsi
  add    %r15,%rcx
  lea    0x0(%r13,%rcx,1),%rdi
  mov    0x58(%rsp),%rcx
  mov    %rdi,0xb8(%rsp)
  lea    (%r12,%rdx,1),%rdi
  add    %rdx,%rcx
  add    $0x8,%rdx
  mov    %rdx,0xc0(%rsp)
  lea    -0x1(%r11),%edx
  cmp    $0x7,%edx
  mov    0xc0(%rsp),%rdx
  seta   %r9b
  add    %rbp,%rdx
  cmp    %rdx,%rcx
  setne  %dl
  and    %edx,%r9d
  mov    0xc0(%rsp),%rdx
  add    %r12,%rdx
  cmp    %rdx,%rcx
  setne  %dl
  and    %edx,%r9d
  mov    0x30(%rsp),%rdx
  add    %rbp,%rdx
  cmp    %rdx,0xb0(%rsp)
  seta   %dl
  cmp    %rsi,0xb8(%rsp)
  setb   0xc0(%rsp)
  or     0xc0(%rsp),%dl
  and    %edx,%r9d
  mov    0x58(%rsp),%rdx
  add    0x30(%rsp),%rdx
  cmp    %rdx,0xb0(%rsp)
  mov    %r9b,0xc0(%rsp)
  seta   %dl
  cmp    %rcx,0xb8(%rsp)
  setb   %r9b
  or     %r9d,%edx
  test   %dl,0xc0(%rsp)
  je     L241
  mov    0x30(%rsp),%rdx
  add    %r12,%rdx
  cmp    %rdx,0xb0(%rsp)
  seta   %r9b
  cmp    %rdi,0xb8(%rsp)
  setb   %dl
  or     %r9b,%dl
  je     L241
  mov    %r11d,%eax
  mov    %r11d,0x30(%rsp)
  lea    0x0(%r13,%r15,1),%rdx
  mov    0x138(%rsp),%r11
  shr    %eax
  mov    0x178(%rsp),%r15
  mov    %eax,%r9d
  xor    %eax,%eax
  shl    $0x4,%r9
L1430:
  movupd (%rsi,%rax,1),%xmm0
  movlpd %xmm0,(%rdx)
  movhpd %xmm0,(%rdx,%r11,1)
  movupd (%rdi,%rax,1),%xmm6
  add    %r15,%rdx
  movups %xmm6,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r9,%rax
  jne    L1430
  mov    0x30(%rsp),%r11d
  mov    %r11d,%eax
  and    $0xfffffffe,%eax
  add    %eax,%r8d
  cmp    %eax,%r11d
  je     L1082
  mov    %r14d,%eax
  movslq %r8d,%rdx
  imul   %r8d,%eax
  movsd  0x0(%rbp,%rdx,8),%xmm0
  add    %r8d,%eax
  cltq
  movsd  %xmm0,0x0(%r13,%rax,8)
  mov    0x58(%rsp),%rax
  movsd  (%r12,%rdx,8),%xmm0
  movsd  %xmm0,(%rax,%rdx,8)
L1082:
  mov    %rbp,0xb0(%rsp)
  xor    %edx,%edx
  pxor   %xmm4,%xmm4
  xor    %esi,%esi
  mov    %r10,0x30(%rsp)
  mov    0x58(%rsp),%rdi
  mov    $0x1,%ecx
  movsd  0xe0(%rsp),%xmm5
  mov    0xac(%rsp),%r11d
  mov    0x70(%rsp),%rbp
  mov    0x98(%rsp),%r15
  jmp    L1025
  nopl   0x0(%rax,%rax,1)
L607:
  add    $0x1,%esi
  add    $0x1,%rcx
  add    %r14d,%edx
  cmp    %esi,%r11d
  jle    L1402
L1025:
  movslq -0x4(%rbp,%rcx,4),%rax
  pxor   %xmm6,%xmm6
  movsd  (%r15,%rax,8),%xmm3
  ucomisd %xmm6,%xmm3
  jp     L782
  je     L607
L782:
  mov    %ecx,%r10d
  test   %esi,%esi
  je     L1365
  mov    %ecx,%r8d
  movslq %edx,%rax
  pxor   %xmm0,%xmm0
  shr    %r8d
  lea    0x0(%r13,%rax,8),%r9
  xor    %eax,%eax
  shl    $0x4,%r8
  nopl   (%rax)
L1257:
  movupd (%r9,%rax,1),%xmm1
  movupd (%rdi,%rax,1),%xmm6
  add    $0x10,%rax
  mulpd  %xmm6,%xmm1
  addsd  %xmm1,%xmm0
  unpckhpd %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  cmp    %r8,%rax
  jne    L1257
  mov    %r10d,%eax
  and    $0xfffffffe,%eax
  and    $0x1,%r10d
  je     L1545
L565:
  lea    (%rdx,%rax,1),%r8d
  cltq
  movslq %r8d,%r8
  movsd  0x0(%r13,%r8,8),%xmm1
  mulsd  (%rdi,%rax,8),%xmm1
  addsd  %xmm1,%xmm0
L1545:
  divsd  %xmm3,%xmm0
  divsd  %xmm5,%xmm0
  andpd  D107(%rip),%xmm0
  movapd %xmm0,%xmm1
  cmplesd %xmm4,%xmm1
  andpd  %xmm1,%xmm4
  andnpd %xmm0,%xmm1
  orpd   %xmm1,%xmm4
  jmp    L607
L1402:
  movsd  0x78(%rsp),%xmm5
  mov    0x30(%rsp),%r10
  movsd  %xmm4,0x158(%rsp)
  mov    0xb0(%rsp),%rbp
  comisd %xmm4,%xmm5
  jae    L1313
  mov    0xac(%rsp),%eax
  lea    0x190(%rsp),%rsi
  mov    %r12,0x30(%rsp)
  mov    %rsi,0xd8(%rsp)
  lea    0x1(%rax),%r15d
  mov    %r10,0x170(%rsp)
  mov    %eax,%r12d
  mov    %r15d,0x150(%rsp)
  mov    0x98(%rsp),%r15
  nopl   0x0(%rax)
L1155:
  sub    $0x8,%rsp
  mov    %r14d,%edx
  mov    %r13,%rsi
  mov    %r12d,%edi
  push   %rbx
  mov    $0x1,%eax
  push   0x40(%rsp)
  push   %r15
  push   %rbp
  push   0x100(%rsp)
  mov    0x88(%rsp),%r9
  movsd  0xd0(%rsp),%xmm0
  mov    0x98(%rsp),%r8
  mov    0xa0(%rsp),%rcx
  call   <lm_lmpar@plt>
  add    $0x30,%rsp
  xor    %eax,%eax
  cmpb   $0x0,0x163(%rsp)
  je     L278
  mov    0x140(%rsp),%rdx
  mov    0x50(%rsp),%r10
L638:
  movupd (%r10,%rax,1),%xmm0
  movupd 0x0(%rbp,%rax,1),%xmm6
  subpd  %xmm6,%xmm0
  movups %xmm0,(%r15,%rax,1)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L638
  mov    0x14c(%rsp),%esi
  cmp    %esi,0x148(%rsp)
  je     L414
  mov    0x90(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    0xf0(%rsp),%rax
  subsd  (%rax),%xmm0
  mov    0x88(%rsp),%rax
  movsd  %xmm0,(%rax)
L414:
  mov    %r12d,%edi
  mov    %rbx,%rsi
  xor    %eax,%eax
  call   <lm_enorm@plt>
  pxor   %xmm6,%xmm6
  mov    0x150(%rsp),%edi
  cvtsi2sd %eax,%xmm6
  mov    0x20(%rsp),%rax
  movsd  %xmm6,0xb0(%rsp)
  cmp    %edi,(%rax)
  jg     L920
  movsd  0xa0(%rsp),%xmm5
  movapd %xmm5,%xmm0
  cmplesd %xmm6,%xmm0
  andpd  %xmm0,%xmm5
  andnpd %xmm6,%xmm0
  orpd   %xmm5,%xmm0
  movsd  %xmm0,0xa0(%rsp)
L920:
  mov    0x8(%rsp),%rax
  mov    %r14d,%esi
  mov    0x30(%rsp),%rcx
  mov    %r15,%rdi
  mov    0x18(%rsp),%rdx
  movl   $0x0,(%rax)
  mov    %rax,%r8
  mov    0x40(%rsp),%rax
  call   *%rax
  mov    0x20(%rsp),%rsi
  mov    0x28(%rsp),%r11
  mov    (%rsi),%eax
  mov    %eax,0xb8(%rsp)
  add    $0x1,%eax
  mov    %eax,(%rsi)
  test   %r11,%r11
  je     L366
  sub    $0x8,%rsp
  mov    %r14d,%edx
  mov    %r15,%rsi
  mov    %r12d,%edi
  push   %rax
  mov    0x130(%rsp),%eax
  push   %rax
  push   $0x2
  mov    0x260(%rsp),%r9d
  mov    0x50(%rsp),%r8
  mov    0x38(%rsp),%rcx
  call   *%r11
  add    $0x20,%rsp
L366:
  mov    0x8(%rsp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  js     L15
  mov    0x30(%rsp),%rsi
  xor    %eax,%eax
  mov    %r14d,%edi
  call   <lm_enorm@plt>
  pxor   %xmm5,%xmm5
  movsd  D202(%rip),%xmm4
  movsd  0xe0(%rsp),%xmm7
  cvtsi2sd %eax,%xmm5
  movsd  %xmm5,0xd0(%rsp)
  mulsd  %xmm5,%xmm4
  comisd %xmm4,%xmm7
  jbe    L179
  divsd  %xmm7,%xmm5
  movsd  D98(%rip),%xmm3
  movapd %xmm5,%xmm0
  mulsd  %xmm5,%xmm0
  subsd  %xmm0,%xmm3
L731:
  lea    0x8(%rbx),%r9
  mov    %r13,%rdx
  xor    %edi,%edi
  mov    $0x1,%r8d
  mov    %r15,0xb8(%rsp)
  mov    0xe8(%rsp),%r11
  mov    0x70(%rsp),%r15
  nopl   0x0(%rax)
L113:
  movslq -0x4(%r15,%r8,4),%rax
  movq   $0x0,-0x8(%r9)
  mov    %r8d,%r10d
  shl    $0x3,%rax
  lea    0x0(%rbp,%rax,1),%rsi
  lea    0x8(%rbp,%rax,1),%rax
  cmp    %rax,%rbx
  setae  %cl
  cmp    %r9,%rsi
  setae  %al
  or     %cl,%al
  je     L581
  lea    0x8(%rdx),%rax
  cmp    %rax,%rbx
  setne  %cl
  cmp    $0x1,%r8d
  setne  %al
  test   %al,%cl
  je     L581
  movsd  (%rsi),%xmm2
  mov    %r8d,%ecx
  xor    %eax,%eax
  shr    %ecx
  unpcklpd %xmm2,%xmm2
  shl    $0x4,%rcx
  cs nopw 0x0(%rax,%rax,1)
L1187:
  movupd (%rdx,%rax,1),%xmm1
  movupd (%rbx,%rax,1),%xmm0
  mulpd  %xmm2,%xmm1
  subpd  %xmm1,%xmm0
  movups %xmm0,(%rbx,%rax,1)
  add    $0x10,%rax
  cmp    %rcx,%rax
  jne    L1187
  mov    %r10d,%eax
  and    $0xfffffffe,%eax
  and    $0x1,%r10d
  je     L1355
  mov    %eax,%ecx
  add    %edi,%eax
  cltq
  lea    (%rbx,%rcx,8),%rcx
  movsd  0x0(%r13,%rax,8),%xmm1
  mulsd  (%rsi),%xmm1
  movsd  (%rcx),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx)
L1355:
  add    $0x1,%r8
  add    %r11,%rdx
  add    $0x8,%r9
  add    %r14d,%edi
  lea    -0x1(%r8),%eax
  cmp    %eax,%r12d
  jg     L113
  xor    %eax,%eax
  mov    %rbx,%rsi
  mov    %r12d,%edi
  mov    0xb8(%rsp),%r15
  movsd  %xmm4,0xc8(%rsp)
  movsd  %xmm3,0xc0(%rsp)
  call   <lm_enorm@plt>
  pxor   %xmm7,%xmm7
  pxor   %xmm2,%xmm2
  movsd  0x190(%rsp),%xmm5
  movsd  0xc0(%rsp),%xmm3
  cvtsi2sd %eax,%xmm2
  movsd  0xc8(%rsp),%xmm4
  divsd  0xe0(%rsp),%xmm2
  ucomisd %xmm5,%xmm7
  ja     L1422
  movapd %xmm5,%xmm0
  movapd %xmm7,%xmm6
  sqrtsd %xmm0,%xmm0
L1500:
  mulsd  0xb0(%rsp),%xmm0
  divsd  0xe0(%rsp),%xmm0
  movapd %xmm0,%xmm1
  addsd  %xmm0,%xmm1
  mulsd  %xmm2,%xmm2
  mulsd  %xmm0,%xmm1
  addsd  %xmm2,%xmm1
  ucomisd %xmm6,%xmm1
  jp     L1184
  pxor   %xmm6,%xmm6
  je     L1398
L1184:
  movapd %xmm3,%xmm6
  movsd  D67(%rip),%xmm7
  divsd  %xmm1,%xmm6
  comisd %xmm6,%xmm7
  jae    L1398
  pxor   %xmm4,%xmm4
  ucomisd %xmm4,%xmm5
  jp     L648
  je     L870
L648:
  comisd D47(%rip),%xmm6
  jb     L223
L870:
  mulsd  D22(%rip),%xmm5
  movsd  0xb0(%rsp),%xmm7
  addsd  %xmm7,%xmm7
  movsd  %xmm5,0x190(%rsp)
  movsd  %xmm7,0xa0(%rsp)
L223:
  movsd  D309(%rip),%xmm2
  comisd %xmm2,%xmm6
  jae    L94
L206:
  movsd  D210(%rip),%xmm0
  comisd 0xe0(%rsp),%xmm0
  jae    L1539
  andpd  D107(%rip),%xmm3
  movsd  0x38(%rsp),%xmm5
  movsd  0x110(%rsp),%xmm0
  mov    0x8(%rsp),%rsi
  mulsd  0x48(%rsp),%xmm0
  comisd %xmm3,%xmm5
  movl   $0x0,(%rsi)
  jb     L1556
  comisd %xmm1,%xmm5
  jb     L1556
  movsd  D22(%rip),%xmm4
  movsd  D98(%rip),%xmm5
  mulsd  %xmm6,%xmm4
  comisd %xmm4,%xmm5
  jae    L1045
  nopl   0x0(%rax)
L1556:
  comisd 0xa0(%rsp),%xmm0
  jae    L791
  mov    0x20(%rsp),%rax
  mov    0xa8(%rsp),%edi
  cmp    %edi,(%rax)
  jge    L854
  movsd  D13(%rip),%xmm7
  comisd %xmm3,%xmm7
  jb     L1559
  comisd %xmm1,%xmm7
  jb     L1559
  movsd  D22(%rip),%xmm0
  movsd  D98(%rip),%xmm1
  mulsd  %xmm6,%xmm0
  comisd %xmm0,%xmm1
  jae    L619
L1559:
  movsd  D13(%rip),%xmm0
  mulsd  0x110(%rsp),%xmm0
  comisd 0xa0(%rsp),%xmm0
  jae    L1092
  movsd  D13(%rip),%xmm5
  comisd 0x158(%rsp),%xmm5
  jae    L1425
  comisd %xmm6,%xmm2
  ja     L1155
  mov    0x170(%rsp),%r10
  mov    0x30(%rsp),%r12
  jmp    L344
  nopl   0x0(%rax,%rax,1)
L581:
  lea    0x0(,%r8,8),%rcx
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L932:
  movsd  (%rsi),%xmm1
  mulsd  (%rdx,%rax,1),%xmm1
  movsd  (%rbx,%rax,1),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rbx,%rax,1)
  add    $0x8,%rax
  cmp    %rax,%rcx
  jne    L932
  jmp    L1355
L1398:
  pxor   %xmm7,%xmm7
  mov    D202(%rip),%rax
  comisd %xmm7,%xmm3
  movq   %rax,%xmm7
  jb     L1214
  comisd 0xe0(%rsp),%xmm4
  jae    L1176
  movsd  D22(%rip),%xmm7
L1176:
  movsd  0xa0(%rsp),%xmm4
  divsd  %xmm7,%xmm5
  movsd  0xb0(%rsp),%xmm2
  divsd  D202(%rip),%xmm2
  movapd %xmm4,%xmm0
  cmplesd %xmm2,%xmm0
  andpd  %xmm0,%xmm4
  andnpd %xmm2,%xmm0
  orpd   %xmm4,%xmm0
  mulsd  %xmm7,%xmm0
  movsd  %xmm0,0xa0(%rsp)
  movsd  %xmm5,0x190(%rsp)
  jmp    L223
L179:
  mov    D115(%rip),%rax
  movq   %rax,%xmm3
  jmp    L731
L791:
  mov    0x8(%rsp),%rax
  movl   $0x2,(%rax)
  jmp    L15
L94:
  xor    %eax,%eax
  cmpb   $0x0,0x182(%rsp)
  je     L1301
  mov    0x140(%rsp),%rdx
  mov    0x50(%rsp),%r10
  mov    0x68(%rsp),%rcx
  nopl   0x0(%rax,%rax,1)
L736:
  movupd (%r15,%rax,1),%xmm0
  movups %xmm0,(%r10,%rax,1)
  movupd (%rcx,%rax,1),%xmm7
  mulpd  %xmm7,%xmm0
  movups %xmm0,(%r15,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%rdx
  jne    L736
  mov    0x14c(%rsp),%edi
  cmp    %edi,0x148(%rsp)
  je     L450
  mov    0x88(%rsp),%rax
  mov    0x90(%rsp),%rdi
  movsd  (%rax),%xmm0
  movsd  %xmm0,(%rdi)
  mov    0x130(%rsp),%rdi
  mulsd  (%rdi),%xmm0
  movsd  %xmm0,(%rax)
L450:
  xor    %eax,%eax
  cmpb   $0x0,0x183(%rsp)
  je     L1076
  mov    0x118(%rsp),%rdx
  mov    0x170(%rsp),%rcx
  mov    0x30(%rsp),%rsi
  nopw   0x0(%rax,%rax,1)
L2:
  movupd (%rsi,%rax,1),%xmm7
  movups %xmm7,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%rdx
  jne    L2
  mov    0x164(%rsp),%edi
  cmp    %edi,0x124(%rsp)
  je     L132
  mov    0x128(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    0x10(%rsp),%rax
  movsd  %xmm0,(%rax)
L132:
  mov    %r15,%rsi
  mov    %r12d,%edi
  xor    %eax,%eax
  movsd  %xmm6,0xc0(%rsp)
  movsd  %xmm1,0xb8(%rsp)
  movsd  %xmm3,0xb0(%rsp)
  call   <lm_enorm@plt>
  pxor   %xmm6,%xmm6
  addl   $0x1,0x120(%rsp)
  movsd  0xb8(%rsp),%xmm1
  movsd  0xb0(%rsp),%xmm3
  cvtsi2sd %eax,%xmm6
  mov    D309(%rip),%rax
  movq   %rax,%xmm2
  movsd  %xmm6,0x110(%rsp)
  movsd  0xd0(%rsp),%xmm6
  movsd  %xmm6,0xe0(%rsp)
  movsd  0xc0(%rsp),%xmm6
  jmp    L206
L1214:
  comisd 0xe0(%rsp),%xmm4
  jae    L1176
  mulsd  %xmm0,%xmm0
  movq   %rax,%xmm4
  addsd  %xmm2,%xmm0
  movsd  D101(%rip),%xmm2
  mulsd  %xmm3,%xmm2
  movapd %xmm0,%xmm7
  xorpd  D14(%rip),%xmm7
  mulsd  D22(%rip),%xmm7
  subsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm7
  maxsd  %xmm7,%xmm4
  movapd %xmm4,%xmm7
  jmp    L1176
L278:
  mov    0x50(%rsp),%r10
  nopl   0x0(%rax)
L1128:
  movsd  (%r10,%rax,8),%xmm0
  subsd  0x0(%rbp,%rax,8),%xmm0
  movsd  %xmm0,(%r15,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r12d
  jg     L1128
  jmp    L414
L1539:
  mov    0x8(%rsp),%rax
  movl   $0x0,(%rax)
  jmp    L15
L1045:
  ucomisd 0xa0(%rsp),%xmm0
  sbb    %eax,%eax
  and    $0xfffffffe,%eax
  add    $0x3,%eax
  mov    %eax,(%rsi)
  jmp    L15
L756:
  mov    %rdx,%rax
L1010:
  movsd  (%r11,%rax,8),%xmm1
  mulsd  %xmm0,%xmm1
  addsd  (%r12,%rax,8),%xmm1
  movsd  %xmm1,(%r12,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r14d
  jg     L1010
  jmp    L1453
L1076:
  mov    0x170(%rsp),%rdx
  mov    0x30(%rsp),%rcx
L1226:
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r14d
  jg     L1226
  jmp    L132
L1301:
  mov    0x50(%rsp),%r10
  mov    0x68(%rsp),%rdx
L904:
  movsd  (%r15,%rax,8),%xmm0
  movsd  %xmm0,(%r10,%rax,8)
  mulsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,(%r15,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%r12d
  jg     L904
  jmp    L450
L1365:
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  jmp    L565
L318:
  xor    %eax,%eax
  cmpb   $0x0,0x187(%rsp)
  je     L564
  mov    0x140(%rsp),%rcx
  mov    0x68(%rsp),%rdx
  mov    0x98(%rsp),%rsi
L246:
  movupd (%rdx,%rax,1),%xmm6
  movupd (%rsi,%rax,1),%xmm0
  cmplepd %xmm6,%xmm0
  movapd %xmm6,%xmm1
  movupd (%rsi,%rax,1),%xmm6
  andpd  %xmm0,%xmm1
  andnpd %xmm6,%xmm0
  orpd   %xmm1,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rcx,%rax
  jne    L246
  mov    0x14c(%rsp),%edi
  cmp    %edi,0x148(%rsp)
  je     L670
  mov    0x88(%rsp),%rdi
  mov    0x130(%rsp),%rax
  movsd  (%rdi),%xmm2
  movsd  (%rax),%xmm0
  movapd %xmm2,%xmm1
  cmplesd %xmm0,%xmm1
  andpd  %xmm1,%xmm0
  andnpd %xmm2,%xmm1
  orpd   %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  jmp    L670
L1529:
  cmpl   $0x2,0x1e0(%rsp)
  jne    L63
L331:
  xor    %eax,%eax
  cmpb   $0x0,0x185(%rsp)
  mov    0x68(%rsp),%rdx
  je     L696
  mov    0x50(%rsp),%rdx
  mov    0x68(%rsp),%rcx
L375:
  movupd (%rcx,%rax,1),%xmm0
  movupd (%rdx,%rax,1),%xmm6
  mulpd  %xmm6,%xmm0
  movups %xmm0,(%rbx,%rax,1)
  add    $0x10,%rax
  cmp    0x140(%rsp),%rax
  jne    L375
  mov    0x14c(%rsp),%edi
  cmp    %edi,0x148(%rsp)
  je     L749
  mov    0x130(%rsp),%rax
  movsd  (%rax),%xmm0
  mov    0x90(%rsp),%rax
  mulsd  (%rax),%xmm0
  mov    0x168(%rsp),%rax
  movsd  %xmm0,(%rax)
L749:
  mov    0xac(%rsp),%edi
  xor    %eax,%eax
  mov    %rbx,%rsi
  mov    %r10,0x30(%rsp)
  call   <lm_enorm@plt>
  pxor   %xmm5,%xmm5
  pxor   %xmm7,%xmm7
  movsd  0x80(%rsp),%xmm6
  cvtsi2sd %eax,%xmm5
  mov    0x30(%rsp),%r10
  movsd  %xmm5,0x110(%rsp)
  movapd %xmm5,%xmm4
  movapd %xmm6,%xmm5
  mulsd  %xmm4,%xmm5
  movsd  %xmm5,0xa0(%rsp)
  ucomisd %xmm7,%xmm5
  jp     L670
  movq   %xmm5,%rax
  movq   %xmm6,%rdi
  cmove  %rdi,%rax
  mov    %rax,0xa0(%rsp)
  jmp    L670
L696:
  mov    0x50(%rsp),%rdi
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  (%rdi,%rax,8),%xmm0
  movsd  %xmm0,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,0xac(%rsp)
  jg     L696
  jmp    L749
L241:
  mov    0x138(%rsp),%rdx
  mov    0xac(%rsp),%ecx
  add    %r13,%r15
  mov    0x58(%rsp),%rsi
L1345:
  movsd  0x0(%rbp,%rax,8),%xmm0
  movsd  %xmm0,(%r15)
  movsd  (%r12,%rax,8),%xmm0
  add    %rdx,%r15
  movsd  %xmm0,(%rsi,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jg     L1345
  jmp    L1082
L727:
  mov    %eax,%esi
  pxor   %xmm0,%xmm0
  jmp    L1157
L854:
  mov    0x8(%rsp),%rax
  movl   $0x5,(%rax)
  jmp    L15
L1092:
  mov    0x8(%rsp),%rax
  movl   $0x7,(%rax)
  jmp    L15
L1425:
  mov    0x8(%rsp),%rax
  movl   $0x8,(%rax)
  jmp    L15
L63:
  xor    %eax,%eax
  cmpb   $0x0,0x186(%rsp)
  je     L376
  mov    0x98(%rsp),%rdx
  pxor   %xmm2,%xmm2
L312:
  movupd (%rdx,%rax,1),%xmm0
  movupd (%rdx,%rax,1),%xmm1
  mov    0x68(%rsp),%rdi
  cmpneqpd %xmm2,%xmm0
  andpd  %xmm0,%xmm1
  andnpd D98(%rip),%xmm0
  orpd   %xmm1,%xmm0
  movups %xmm0,(%rdi,%rax,1)
  add    $0x10,%rax
  cmp    0x140(%rsp),%rax
  jne    L312
  mov    0x14c(%rsp),%edi
  cmp    %edi,0x148(%rsp)
  je     L331
  mov    0x88(%rsp),%rax
  pxor   %xmm5,%xmm5
  mov    (%rax),%rax
  movq   %rax,%xmm6
  ucomisd %xmm5,%xmm6
  jp     L238
  cmove  D98(%rip),%rax
L238:
  mov    0x130(%rsp),%rdi
  mov    %rax,(%rdi)
  jmp    L331
L619:
  mov    0x8(%rsp),%rax
  movl   $0x6,(%rax)
  jmp    L15
L564:
  mov    0x68(%rsp),%rdx
  mov    0x98(%rsp),%rcx
L852:
  movsd  (%rcx,%rax,8),%xmm2
  movsd  (%rdx,%rax,8),%xmm0
  movapd %xmm2,%xmm1
  cmplesd %xmm0,%xmm1
  andpd  %xmm1,%xmm0
  andnpd %xmm2,%xmm1
  orpd   %xmm1,%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,0xac(%rsp)
  jg     L852
  jmp    L670
L376:
  movsd  D98(%rip),%xmm1
  mov    0x68(%rsp),%rdx
L467:
  mov    0x98(%rsp),%rdi
  pxor   %xmm6,%xmm6
  movsd  (%rdi,%rax,8),%xmm0
  ucomisd %xmm6,%xmm0
  jp     L1280
  jne    L1280
  movsd  %xmm1,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,0xac(%rsp)
  jg     L467
  jmp    L331
L1280:
  movsd  %xmm0,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,0xac(%rsp)
  jg     L467
  jmp    L331
L1422:
  movsd  %xmm2,0x188(%rsp)
  movapd %xmm5,%xmm0
  movsd  %xmm3,0xc8(%rsp)
  movsd  %xmm4,0xc0(%rsp)
  movsd  %xmm5,0xb8(%rsp)
  call   <sqrt@plt>
  pxor   %xmm6,%xmm6
  movsd  0x188(%rsp),%xmm2
  movsd  0xc8(%rsp),%xmm3
  movsd  0xc0(%rsp),%xmm4
  movsd  0xb8(%rsp),%xmm5
  jmp    L1500
L1313:
  mov    0x8(%rsp),%rax
  movl   $0x4,(%rax)
  jmp    L15
L279:
  movapd %xmm3,%xmm0
  mov    %r11d,0x10(%rsp)
  call   <sqrt@plt>
  mov    0x10(%rsp),%r11d
  movsd  %xmm0,0x60(%rsp)
  jmp    L419
L112:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D13
datatype: byte[16]
name: retrieve_data
arguments: data_tag: D107
datatype: qword[2]
name: retrieve_data
arguments: data_tag: D14
datatype: f32[4]
name: retrieve_data
arguments: data_tag: D202
datatype: f64
name: retrieve_data
arguments: data_tag: D98
datatype: f64[2]
name: retrieve_data
arguments: data_tag: D67
datatype: f64
name: retrieve_data
arguments: data_tag: D47
datatype: f64[2]
name: retrieve_data
arguments: data_tag: D22
datatype: f64
name: retrieve_data
arguments: data_tag: D309
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D210
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D115
datatype: f32[2]
name: retrieve_data
arguments: data_tag: D101
datatype: f64

tool: {"D13": [0x71,0x1f,0xb5,0xf4,0x37,0x4b,0xa1,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

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

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

tool: D202: 0.1

tool: {"D98": [1.0,1.0]}

tool: D67: 0.25

tool: {"D47": [0.75,0.0001]}

tool: D22: 0.5

tool: {"D309": [0x2d,0x43,0x1c,0xeb,0xe2,0x36,0x1a,0x3f]}

tool: {"D210": [0xe4,0x78,0xaa,0x9d,0xfb,0x38,0x0b,0x38]}

tool: {"D115": [0.0,-1.875]}

tool: D101: 0.55

assistant: ```c
void lm_lmdif(int m, int n, double *x, double *fvec, double ftol, double xtol, double gtol, int maxfev, double epsfcn, double *diag, int mode, double factor, int *info, int *nfev, double *fjac, int *ipvt, double *qtf, double *wa1, double *wa2, double *wa3, double *wa4, void (*evaluate)(const double *par, int m_dat, const void *data, double *fvec, int *info), void (*printout)(int n_par, const double *par, int m_dat, const void *data, const double *fvec, int printflags, int iflag, int iter, int nfev), int printflags, const void *data) {
  int i, iter, j;
  double actred, delta, dirder, eps, fnorm, fnorm1, gnorm, par, pnorm, prered, ratio, step, sum, temp, temp1, temp2, temp3, xnorm;
  static double p1 = 0.1;
  static double p0001 = 1.0e-4;
  *nfev = 0;
  iter = 0;
  par = 0;
  delta = 0;
  xnorm = 0;
  temp = (((epsfcn) >= (1.2e-16)) ? (epsfcn) : (1.2e-16));
  eps = sqrt(temp);
  if ((n <= 0) || (m < n) || (ftol < 0.) || (xtol < 0.) || (gtol < 0.) || (maxfev <= 0) || (factor <= 0.)) {
    *info = 10;
    return;
  }
  if (mode == 2) {
    for (j = 0; j < n; j++) {
      if (diag[j] <= 0.0) {
        *info = 10;
        return;
      }
    }
  }
  *info = 0;
  (*evaluate)(x, m, data, fvec, info);
  ++(*nfev);
  if (printout)
    (*printout)(n, x, m, data, fvec, printflags, 0, 0, *nfev);
  if (*info < 0)
    return;
  fnorm = lm_enorm(m, fvec);
  if (fnorm <= 1.0e-38) {
    *info = 0;
    return;
  }
  do {
    for (j = 0; j < n; j++) {
      temp = x[j];
      step = (((eps * eps) >= (eps * fabs(temp))) ? (eps * eps) : (eps * fabs(temp)));
      x[j] = temp + step;
      *info = 0;
      (*evaluate)(x, m, data, wa4, info);
      ++(*nfev);
      if (printout)
        (*printout)(n, x, m, data, wa4, printflags, 1, iter, *nfev);
      if (*info < 0)
        return;
      for (i = 0; i < m; i++)
        fjac[j * m + i] = (wa4[i] - fvec[i]) / step;
      x[j] = temp;
    }
    lm_qrfac(m, n, fjac, 1, ipvt, wa1, wa2, wa3);
    if (!iter) {
      if (mode != 2) {
        for (j = 0; j < n; j++) {
          diag[j] = wa2[j];
          if (wa2[j] == 0.)
            diag[j] = 1.;
        }
      }
      for (j = 0; j < n; j++)
        wa3[j] = diag[j] * x[j];
      xnorm = lm_enorm(n, wa3);
      delta = factor * xnorm;
      if (delta == 0.)
        delta = factor;
    } else {
      if (mode != 2) {
        for (j = 0; j < n; j++)
          diag[j] = (((diag[j]) >= (wa2[j])) ? (diag[j]) : (wa2[j]));
      }
    }
    for (i = 0; i < m; i++)
      wa4[i] = fvec[i];
    for (j = 0; j < n; j++) {
      temp3 = fjac[j * m + j];
      if (temp3 != 0.) {
        sum = 0;
        for (i = j; i < m; i++)
          sum += fjac[j * m + i] * wa4[i];
        temp = -sum / temp3;
        for (i = j; i < m; i++)
          wa4[i] += fjac[j * m + i] * temp;
      }
      fjac[j * m + j] = wa1[j];
      qtf[j] = wa4[j];
    }
    gnorm = 0;
    for (j = 0; j < n; j++) {
      if (wa2[ipvt[j]] == 0)
        continue;
      sum = 0.;
      for (i = 0; i <= j; i++)
        sum += fjac[j * m + i] * qtf[i];
      gnorm = (((gnorm) >= (fabs(sum / wa2[ipvt[j]] / fnorm))) ? (gnorm) : (fabs(sum / wa2[ipvt[j]] / fnorm)));
    }
    if (gnorm <= gtol) {
      *info = 4;
      return;
    }
    do {
      lm_lmpar(n, fjac, m, ipvt, diag, qtf, delta, &par, wa1, wa2, wa4, wa3);
      for (j = 0; j < n; j++)
        wa2[j] = x[j] - wa1[j];
      pnorm = lm_enorm(n, wa3);
      if (*nfev <= 1 + n)
        delta = (((delta) <= (pnorm)) ? (delta) : (pnorm));
      *info = 0;
      (*evaluate)(wa2, m, data, wa4, info);
      ++(*nfev);
      if (printout)
        (*printout)(n, wa2, m, data, wa4, printflags, 2, iter, *nfev);
      if (*info < 0)
        return;
      fnorm1 = lm_enorm(m, wa4);
      if (p1 * fnorm1 < fnorm)
        actred = 1 - (fnorm1 / fnorm) * (fnorm1 / fnorm);
      else
        actred = -1;
      for (j = 0; j < n; j++) {
        wa3[j] = 0;
        for (i = 0; i <= j; i++)
          wa3[i] -= fjac[j * m + i] * wa1[ipvt[j]];
      }
      temp1 = lm_enorm(n, wa3) / fnorm;
      temp2 = sqrt(par) * pnorm / fnorm;
      prered = (temp1) * (temp1) + 2 * (temp2) * (temp2);
      dirder = -((temp1) * (temp1) + (temp2) * (temp2));
      ratio = prered != 0 ? actred / prered : 0;
      if (ratio <= 0.25) {
        if (actred >= 0.)
          temp = 0.5;
        else
          temp = 0.5 * dirder / (dirder + 0.55 * actred);
        if (p1 * fnorm1 >= fnorm || temp < p1)
          temp = p1;
        delta = temp * (((delta) <= (pnorm / p1)) ? (delta) : (pnorm / p1));
        par /= temp;
      } else if (par == 0. || ratio >= 0.75) {
        delta = pnorm / 0.5;
        par *= 0.5;
      }
      if (ratio >= p0001) {
        for (j = 0; j < n; j++) {
          x[j] = wa2[j];
          wa2[j] = diag[j] * x[j];
        }
        for (i = 0; i < m; i++)
          fvec[i] = wa4[i];
        xnorm = lm_enorm(n, wa2);
        fnorm = fnorm1;
        iter++;
      }
      if (fnorm <= 1.0e-38) {
        *info = 0;
        return;
      }
      *info = 0;
      if (fabs(actred) <= ftol && prered <= ftol && 0.5 * ratio <= 1)
        *info = 1;
      if (delta <= xtol * xnorm)
        *info += 2;
      if (*info != 0)
        return;
      if (*nfev >= maxfev) {
        *info = 5;
        return;
      }
      if (fabs(actred) <= 1.2e-16 && prered <= 1.2e-16 && 0.5 * ratio <= 1) {
        *info = 6;
        return;
      }
      if (delta <= 1.2e-16 * xnorm) {
        *info = 7;
        return;
      }
      if (gnorm <= 1.2e-16) {
        *info = 8;
        return;
      }
    } while (ratio < p0001);
  } while (1);
}
```