user: 下面的汇编指令对应的C源代码是什么:

```asm
<dsvdcmp0>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xb8,%rsp
  mov    %rdi,0x50(%rsp)
  mov    %esi,0x4c(%rsp)
  mov    %edx,0x5c(%rsp)
  mov    %rcx,0x28(%rsp)
  mov    %r8,0x60(%rsp)
  lea    0x0(,%rdx,8),%edi
  call   <malloc@plt>
  mov    %rax,0x70(%rsp)
  test   %rax,%rax
  je     L716
L44:
  mov    0x5c(%rsp),%eax
  test   %eax,%eax
  jle    L1022
  sub    $0x2,%eax
  mov    %eax,0x38(%rsp)
  mov    0x28(%rsp),%rax
  mov    %rax,0x40(%rsp)
  mov    0x4c(%rsp),%eax
  sub    $0x1,%eax
  mov    %eax,0x58(%rsp)
  mov    0x50(%rsp),%r12
  mov    $0x8,%r15d
  mov    $0x1,%r13d
  movq   $0x0,0x10(%rsp)
  pxor   %xmm4,%xmm4
  movsd  %xmm4,(%rsp)
  movapd %xmm4,%xmm0
  movsd  %xmm4,0x18(%rsp)
  jmp    L475
L716:
  call   <svd_errm@plt>
  jmp    L44
L16:
  mov    0x58(%rsp),%eax
  add    0x10(%rsp),%rax
  mov    0x50(%rsp),%rsi
  lea    0x8(%rsi,%rax,8),%rbp
  mov    %r12,%rax
  pxor   %xmm1,%xmm1
L240:
  mov    (%rax),%rdx
  movsd  (%rdx,%rbx,1),%xmm0
  andpd  D5(%rip),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x8,%rax
  cmp    %rbp,%rax
  jne    L240
  movsd  %xmm1,0x8(%rsp)
  ucomisd D348(%rip),%xmm1
  jp     L730
  pxor   %xmm2,%xmm2
  jne    L730
L574:
  mov    0x40(%rsp),%rax
  mov    %rax,0x20(%rsp)
  mulsd  0x8(%rsp),%xmm2
  movsd  %xmm2,(%rax)
  mov    0x5c(%rsp),%eax
  sub    $0x1,%eax
  cmp    0x68(%rsp),%eax
  je     L692
  mov    %r13d,0x78(%rsp)
  cmp    %r13d,0x5c(%rsp)
  jle    L176
  mov    %r12,%rbp
  mov    (%r12),%rdx
  mov    %r13,%rax
  pxor   %xmm1,%xmm1
L601:
  movsd  (%rdx,%rax,8),%xmm0
  andpd  D5(%rip),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %eax,0x5c(%rsp)
  jg     L601
  movsd  %xmm1,(%rsp)
  ucomisd D348(%rip),%xmm1
  jp     L1149
  jne    L1149
  mov    0x30(%rsp),%rax
  movsd  (%rax),%xmm1
  movq   D5(%rip),%xmm2
  andpd  %xmm2,%xmm1
  mov    0x20(%rsp),%rax
  movsd  (%rax),%xmm0
  andpd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  movsd  0x18(%rsp),%xmm7
  comisd %xmm1,%xmm7
  ja     L1196
L793:
  movsd  %xmm1,0x18(%rsp)
L518:
  cmp    %r13d,0x5c(%rsp)
  jle    L757
  pxor   %xmm0,%xmm0
L1196:
  addq   $0x1,0x10(%rsp)
  add    $0x1,%r13
  add    $0x8,%r15
  add    $0x8,%r12
  subl   $0x1,0x38(%rsp)
  addq   $0x8,0x40(%rsp)
  subl   $0x1,0x58(%rsp)
L475:
  lea    -0x8(%r15),%rbx
  mov    0x70(%rsp),%rax
  lea    -0x8(%rax,%r15,1),%rax
  mov    %rax,0x30(%rsp)
  mulsd  (%rsp),%xmm0
  movsd  %xmm0,(%rax)
  mov    0x10(%rsp),%rax
  mov    %eax,0x68(%rsp)
  cmp    %eax,0x4c(%rsp)
  jg     L16
  mov    0x40(%rsp),%rax
  mov    %rax,0x20(%rsp)
  movq   $0x0,(%rax)
L692:
  mov    0x20(%rsp),%rax
  movsd  (%rax),%xmm1
  andpd  D5(%rip),%xmm1
  mov    0x30(%rsp),%rax
  movsd  (%rax),%xmm0
  andpd  D5(%rip),%xmm0
  addsd  %xmm0,%xmm1
  pxor   %xmm4,%xmm4
  movsd  %xmm4,(%rsp)
  movsd  0x18(%rsp),%xmm7
  comisd %xmm1,%xmm7
  ja     L518
  jmp    L793
L730:
  mov    %r12,%rax
  pxor   %xmm4,%xmm4
  movsd  %xmm4,(%rsp)
L905:
  mov    %rbx,%rdx
  add    (%rax),%rdx
  movsd  (%rdx),%xmm0
  divsd  0x8(%rsp),%xmm0
  movsd  %xmm0,(%rdx)
  mov    (%rax),%rdx
  movsd  (%rdx,%rbx,1),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  (%rsp),%xmm0
  movsd  %xmm0,(%rsp)
  add    $0x8,%rax
  cmp    %rbp,%rax
  jne    L905
  mov    %rbx,%r14
  add    (%r12),%r14
  movsd  (%r14),%xmm6
  movsd  %xmm6,0x20(%rsp)
  comisd D348(%rip),%xmm6
  jbe    L420
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm7
  ucomisd %xmm7,%xmm0
  ja     L95
  sqrtsd %xmm7,%xmm7
  movapd %xmm7,%xmm2
L978:
  orpd   D214(%rip),%xmm2
L655:
  movsd  0x20(%rsp),%xmm7
  movapd %xmm7,%xmm3
  mulsd  %xmm2,%xmm3
  subsd  (%rsp),%xmm3
  subsd  %xmm2,%xmm7
  movsd  %xmm7,(%r14)
  cmp    %r13d,0x5c(%rsp)
  jle    L478
  mov    0x38(%rsp),%eax
  mov    0x10(%rsp),%rsi
  lea    0x2(%rsi,%rax,1),%rdi
  shl    $0x3,%rdi
  mov    %r15,%rsi
L828:
  mov    %r12,%rax
  pxor   %xmm1,%xmm1
L456:
  mov    (%rax),%rdx
  movsd  (%rdx,%rbx,1),%xmm0
  mulsd  (%rdx,%rsi,1),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x8,%rax
  cmp    %rbp,%rax
  jne    L456
  divsd  %xmm3,%xmm1
  mov    %r12,%rax
L266:
  mov    (%rax),%rcx
  lea    (%rcx,%rsi,1),%rdx
  movapd %xmm1,%xmm0
  mulsd  (%rcx,%rbx,1),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x8,%rax
  cmp    %rbp,%rax
  jne    L266
  add    $0x8,%rsi
  cmp    %rdi,%rsi
  jne    L828
L478:
  mov    %r12,%rax
L302:
  mov    %rbx,%rdx
  add    (%rax),%rdx
  movsd  0x8(%rsp),%xmm0
  mulsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x8,%rax
  cmp    %rbp,%rax
  jne    L302
  jmp    L574
L95:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm2
  jmp    L978
L420:
  pxor   %xmm0,%xmm0
  movsd  (%rsp),%xmm4
  ucomisd %xmm4,%xmm0
  ja     L1115
  sqrtsd %xmm4,%xmm4
  movapd %xmm4,%xmm2
L954:
  andpd  D5(%rip),%xmm2
  jmp    L655
L1115:
  movsd  (%rsp),%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm2
  jmp    L954
L1149:
  mov    0x38(%rsp),%eax
  mov    0x10(%rsp),%rdi
  lea    0x2(%rdi,%rax,1),%rbx
  shl    $0x3,%rbx
  mov    %r15,%rax
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0x8(%rsp)
L802:
  mov    %rax,%rdx
  add    0x0(%rbp),%rdx
  movsd  (%rdx),%xmm0
  divsd  (%rsp),%xmm0
  movsd  %xmm0,(%rdx)
  mov    0x0(%rbp),%r14
  movsd  (%r14,%rax,1),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  add    $0x8,%rax
  cmp    %rbx,%rax
  jne    L802
  add    %r15,%r14
  movsd  (%r14),%xmm4
  movsd  %xmm4,0x68(%rsp)
  comisd D348(%rip),%xmm4
  jbe    L1088
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm7
  ucomisd %xmm7,%xmm0
  ja     L1162
  sqrtsd %xmm7,%xmm7
  movapd %xmm7,%xmm0
L246:
  orpd   D214(%rip),%xmm0
L390:
  movsd  0x68(%rsp),%xmm4
  movapd %xmm4,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  0x8(%rsp),%xmm2
  subsd  %xmm0,%xmm4
  movsd  %xmm4,(%r14)
  mov    %r15,%rax
L497:
  mov    0x0(%rbp),%rdx
  movsd  (%rdx,%rax,1),%xmm1
  divsd  %xmm2,%xmm1
  mov    0x70(%rsp),%rsi
  movsd  %xmm1,(%rax,%rsi,1)
  add    $0x8,%rax
  cmp    %rbx,%rax
  jne    L497
  mov    0x78(%rsp),%edi
  cmp    %edi,0x4c(%rsp)
  jle    L1213
  mov    0x50(%rsp),%rsi
  lea    (%rsi,%r15,1),%rdx
  mov    0x58(%rsp),%eax
  lea    -0x1(%rax),%eax
  add    0x10(%rsp),%rax
  lea    0x10(%rsi,%rax,8),%rsi
  mov    0x70(%rsp),%rdi
  mov    0x5c(%rsp),%r8d
  jmp    L1019
L1162:
  movsd  0x8(%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L246
L1088:
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm6
  ucomisd %xmm6,%xmm0
  ja     L192
  sqrtsd %xmm6,%xmm6
  movapd %xmm6,%xmm0
L1065:
  andpd  D5(%rip),%xmm0
  jmp    L390
L192:
  movsd  0x8(%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L1065
L736:
  add    $0x8,%rdx
  cmp    %rsi,%rdx
  je     L1213
L1019:
  mov    %rdx,%rcx
  mov    (%rdx),%r10
  mov    0x0(%rbp),%r9
  mov    %r13,%rax
  pxor   %xmm2,%xmm2
L1216:
  movsd  (%r10,%rax,8),%xmm1
  mulsd  (%r9,%rax,8),%xmm1
  addsd  %xmm1,%xmm2
  add    $0x1,%rax
  cmp    %eax,%r8d
  jg     L1216
  mov    %r15,%rax
L998:
  mov    %rax,%r9
  add    (%rcx),%r9
  movapd %xmm2,%xmm1
  mulsd  (%rax,%rdi,1),%xmm1
  addsd  (%r9),%xmm1
  movsd  %xmm1,(%r9)
  add    $0x8,%rax
  cmp    %rbx,%rax
  jne    L998
  jmp    L736
L1213:
  mov    %r15,%rax
L457:
  mov    %rax,%rdx
  add    0x0(%rbp),%rdx
  movsd  (%rsp),%xmm1
  mulsd  (%rdx),%xmm1
  movsd  %xmm1,(%rdx)
  add    $0x8,%rax
  cmp    %rbx,%rax
  jne    L457
  mov    0x30(%rsp),%rax
  movsd  (%rax),%xmm1
  movq   D5(%rip),%xmm3
  andpd  %xmm3,%xmm1
  mov    0x20(%rsp),%rax
  movsd  (%rax),%xmm2
  andpd  %xmm3,%xmm2
  addsd  %xmm2,%xmm1
  movsd  0x18(%rsp),%xmm7
  maxsd  %xmm1,%xmm7
  movsd  %xmm7,0x18(%rsp)
  jmp    L1196
L1022:
  mov    0x5c(%rsp),%eax
  lea    -0x1(%rax),%r13d
  cmp    0x4c(%rsp),%eax
  jg     L449
L1035:
  mov    0x70(%rsp),%rdi
  call   <free@plt>
  add    $0xb8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1084:
  cmp    %ebp,%r8d
  jle    L543
  movslq %ebp,%r10
  lea    0x0(,%r10,8),%rsi
  mov    %r12d,%ecx
  sub    %ebp,%ecx
  lea    0x1(%r10,%rcx,1),%r11
  shl    $0x3,%r11
  mov    %rsi,%rax
  mov    0x50(%rsp),%rbx
L443:
  mov    (%rbx,%rdx,1),%r15
  mov    (%rdi,%rax,1),%r9
  movsd  (%r15,%rax,1),%xmm0
  divsd  (%r15,%rsi,1),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%r9,%rdx,1)
  add    $0x8,%rax
  cmp    %r11,%rax
  jne    L443
  lea    (%rdi,%rsi,1),%rbx
  add    %r10,%rcx
  lea    (%r14,%rcx,8),%r9
L471:
  mov    0x50(%rsp),%rax
  mov    (%rax,%rdx,1),%rcx
  mov    %r10,%rax
  pxor   %xmm1,%xmm1
L693:
  mov    (%rdi,%rax,8),%r15
  movsd  (%r15,%rsi,1),%xmm0
  mulsd  (%rcx,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %eax,%r8d
  jg     L693
  mov    %rbx,%rax
L27:
  mov    (%rax),%r15
  lea    (%r15,%rsi,1),%rcx
  movapd %xmm1,%xmm0
  mulsd  (%r15,%rdx,1),%xmm0
  addsd  (%rcx),%xmm0
  movsd  %xmm0,(%rcx)
  add    $0x8,%rax
  cmp    %r9,%rax
  jne    L27
  add    $0x8,%rsi
  cmp    %r11,%rsi
  jne    L471
L604:
  movslq %ebp,%rbp
L885:
  mov    (%rdi,%rbp,8),%rax
  movq   $0x0,(%rax,%rdx,1)
  mov    (%rdi,%rdx,1),%rax
  movq   $0x0,(%rax,%rbp,8)
  add    $0x1,%rbp
  cmp    %ebp,%r8d
  jg     L885
L543:
  mov    (%rsp),%ebp
L40:
  mov    (%rdi,%rdx,1),%rax
  movsd  %xmm2,(%rax,%rdx,1)
  mov    0x70(%rsp),%rax
  movsd  (%rax,%rdx,1),%xmm1
  sub    $0x8,%rdx
  mov    %ebp,%eax
  sub    $0x1,%eax
  mov    %eax,(%rsp)
  js     L1068
  cmp    %ebp,%r8d
  jle    L543
  ucomisd D348(%rip),%xmm1
  jp     L1084
  jne    L1084
  cmp    %ebp,%r8d
  jg     L604
  jmp    L543
L449:
  pxor   %xmm6,%xmm6
  movsd  %xmm6,0x18(%rsp)
L763:
  mov    0x4c(%rsp),%eax
  sub    $0x1,%eax
  js     L260
  mov    %r13d,0x10(%rsp)
  mov    %eax,%r13d
L320:
  movslq %r13d,%r12
  lea    0x1(%r13),%r14d
  mov    0x50(%rsp),%rdi
  lea    (%rdi,%r12,8),%rbp
  mov    0x5c(%rsp),%eax
  sub    $0x2,%eax
  sub    %r13d,%eax
  mov    %eax,0x20(%rsp)
  mov    0x4c(%rsp),%r8d
  lea    -0x1(%r8),%eax
  sub    %r13d,%eax
  movsd  D300(%rip),%xmm5
  lea    0x8(%rdi),%r13
  movapd %xmm5,%xmm4
  movapd %xmm5,%xmm3
  mov    %eax,0x8(%rsp)
  mov    %rdi,%r10
  jmp    L376
L541:
  add    $0x8,%rdi
  cmp    %r11,%rdi
  je     L235
L909:
  mov    %rbx,%rax
  pxor   %xmm1,%xmm1
  cmp    (%rsp),%r8d
  jle    L1227
L607:
  mov    (%r10,%rax,8),%rdx
  movsd  (%rdx,%rsi,1),%xmm0
  mulsd  (%rdx,%rdi,1),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %eax,%r8d
  jg     L607
L1227:
  mov    (%r15),%rax
  divsd  (%rax,%rsi,1),%xmm1
  mulsd  %xmm2,%xmm1
  cmp    %r12d,%r8d
  jle    L541
  mov    %rbp,%rax
L30:
  mov    (%rax),%rcx
  lea    (%rcx,%rdi,1),%rdx
  movapd %xmm1,%xmm0
  mulsd  (%rcx,%rsi,1),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x8,%rax
  cmp    %r9,%rax
  jne    L30
  jmp    L541
L260:
  mov    %r13d,0x10(%rsp)
L294:
  mov    0x10(%rsp),%eax
  test   %eax,%eax
  js     L1035
  lea    -0x1(%rax),%edi
  mov    %edi,0xac(%rsp)
  cltq
  shl    $0x3,%rax
  mov    %rax,0x78(%rsp)
  mov    0x4c(%rsp),%eax
  lea    -0x1(%rax),%eax
  mov    0x50(%rsp),%rsi
  lea    0x8(%rsi,%rax,8),%r15
  mov    0x5c(%rsp),%eax
  lea    -0x1(%rax),%eax
  mov    0x60(%rsp),%rdi
  lea    0x8(%rdi,%rax,8),%r14
  mov    %r15,%rbx
  mov    %r14,%r15
  jmp    L1150
L35:
  mov    %r15d,%ebp
L343:
  test   %ebp,%ebp
  jle    L479
  lea    -0x1(%rbp),%r15d
  movsd  (%rax),%xmm0
  andpd  D5(%rip),%xmm0
  movsd  0x18(%rsp),%xmm7
  addsd  %xmm7,%xmm0
  ucomisd %xmm7,%xmm0
  jp     L1005
  je     L369
L1005:
  movsd  -0x8(%rdx,%rax,1),%xmm0
  andpd  D5(%rip),%xmm0
  movsd  0x18(%rsp),%xmm5
  addsd  %xmm5,%xmm0
  sub    $0x8,%rax
  ucomisd %xmm5,%xmm0
  jp     L35
  jne    L35
L479:
  cmp    %ebp,0x68(%rsp)
  jl     L136
  movslq %r15d,%rax
  shl    $0x3,%rax
  movslq %ebp,%r14
  mov    0x70(%rsp),%rsi
  lea    (%rsi,%r14,8),%rsi
  movsd  D300(%rip),%xmm4
  pxor   %xmm3,%xmm3
  mov    %ebp,0x10(%rsp)
  mov    %rax,%rbp
  mov    %r15d,0x20(%rsp)
  mov    %rsi,%r15
  mov    %r13,0x30(%rsp)
  mov    0x28(%rsp),%r12
  jmp    L379
L807:
  add    $0x1,%r14
  add    $0x8,%r15
  cmp    %r14d,0x68(%rsp)
  jl     L447
L379:
  lea    0x0(,%r14,8),%r13
  movsd  (%r15),%xmm0
  movapd %xmm4,%xmm6
  mulsd  %xmm0,%xmm6
  movsd  %xmm6,(%rsp)
  mulsd  %xmm3,%xmm0
  movsd  %xmm0,(%r15)
  andpd  D5(%rip),%xmm6
  movapd %xmm6,%xmm0
  movsd  0x18(%rsp),%xmm6
  addsd  %xmm6,%xmm0
  ucomisd %xmm6,%xmm0
  jp     L244
  je     L1178
L244:
  movsd  (%r12,%r14,8),%xmm4
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm4,%xmm1
  movsd  (%rsp),%xmm0
  call   <pythag@plt>
  movsd  %xmm0,(%r12,%r14,8)
  movsd  D300(%rip),%xmm1
  divsd  %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm3
  mulsd  %xmm1,%xmm3
  movsd  (%rsp),%xmm4
  xorpd  D214(%rip),%xmm4
  mulsd  %xmm1,%xmm4
  cmpl   $0x0,0x4c(%rsp)
  jle    L807
  mov    0x50(%rsp),%rax
L584:
  mov    (%rax),%rcx
  lea    (%rcx,%rbp,1),%rdx
  movsd  (%rdx),%xmm1
  movsd  (%rcx,%r13,1),%xmm0
  movapd %xmm3,%xmm2
  mulsd  %xmm1,%xmm2
  movapd %xmm4,%xmm5
  mulsd  %xmm0,%xmm5
  addsd  %xmm5,%xmm2
  movsd  %xmm2,(%rdx)
  mov    (%rax),%rdx
  mulsd  %xmm3,%xmm0
  mulsd  %xmm4,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx,%r13,1)
  add    $0x8,%rax
  cmp    %rax,%rbx
  jne    L584
  jmp    L807
L447:
  mov    0x10(%rsp),%ebp
  mov    0x20(%rsp),%r15d
  mov    0x30(%rsp),%r13
  jmp    L369
L1178:
  mov    0x10(%rsp),%ebp
  mov    0x20(%rsp),%r15d
  mov    0x30(%rsp),%r13
L369:
  mov    0x28(%rsp),%rax
  mov    0x78(%rsp),%rsi
  movsd  (%rax,%rsi,1),%xmm7
  movsd  %xmm7,(%rsp)
  cmp    %ebp,0x68(%rsp)
  je     L308
L279:
  movslq %ebp,%r14
  lea    0x0(,%r14,8),%rax
  mov    %rax,0x80(%rsp)
  mov    0x28(%rsp),%rax
  movsd  (%rax,%r14,8),%xmm4
  movsd  %xmm4,0x20(%rsp)
  mov    0x90(%rsp),%rax
  mov    (%rax),%r12
  mov    0x98(%rsp),%rax
  movsd  (%rax),%xmm1
  mov    0x70(%rsp),%rax
  add    0x78(%rsp),%rax
  mov    %rax,0x88(%rsp)
  movsd  (%rax),%xmm6
  movsd  %xmm6,0x10(%rsp)
  movq   %r12,%xmm0
  movsd  (%rsp),%xmm7
  subsd  %xmm7,%xmm0
  movq   %r12,%xmm2
  addsd  %xmm7,%xmm2
  mulsd  %xmm2,%xmm0
  movapd %xmm1,%xmm2
  subsd  %xmm6,%xmm2
  addsd  %xmm6,%xmm1
  mulsd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
  movapd %xmm6,%xmm1
  addsd  %xmm6,%xmm1
  movq   %r12,%xmm6
  mulsd  %xmm6,%xmm1
  divsd  %xmm1,%xmm0
  movsd  D300(%rip),%xmm1
  movsd  %xmm0,0x8(%rsp)
  call   <pythag@plt>
  movapd %xmm0,%xmm1
  movsd  0x20(%rsp),%xmm4
  movapd %xmm4,%xmm2
  movsd  (%rsp),%xmm7
  subsd  %xmm7,%xmm2
  addsd  %xmm4,%xmm7
  mulsd  %xmm7,%xmm2
  movapd %xmm0,%xmm6
  andpd  D5(%rip),%xmm6
  movapd %xmm6,%xmm0
  movsd  0x8(%rsp),%xmm7
  comisd D348(%rip),%xmm7
  jbe    L425
L1147:
  movsd  0x8(%rsp),%xmm1
  addsd  %xmm0,%xmm1
  movq   %r12,%xmm0
  divsd  %xmm1,%xmm0
  movsd  0x10(%rsp),%xmm7
  subsd  %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  addsd  %xmm2,%xmm0
  divsd  0x20(%rsp),%xmm0
  movsd  %xmm0,0x10(%rsp)
  cmp    0x58(%rsp),%ebp
  jg     L146
  mov    0x80(%rsp),%r15
  add    0x70(%rsp),%r15
  movsd  D300(%rip),%xmm6
  movsd  %xmm6,0x8(%rsp)
  movsd  %xmm6,(%rsp)
  mov    %r14,%rbp
  jmp    L527
L308:
  mov    %r15d,0x80(%rsp)
  mov    %r13,%r15
  pxor   %xmm0,%xmm0
  comisd %xmm7,%xmm0
  ja     L1030
L533:
  subl   $0x1,0xac(%rsp)
  mov    0xac(%rsp),%eax
  subq   $0x8,0x78(%rsp)
  cmp    $0xfffffffe,%eax
  je     L1035
L1150:
  mov    0xac(%rsp),%eax
  lea    0x1(%rax),%edi
  mov    %edi,0x68(%rsp)
  mov    0x28(%rsp),%rsi
  mov    %rsi,%rdi
  add    0x78(%rsp),%rdi
  mov    %rdi,0xa0(%rsp)
  mov    %eax,0x58(%rsp)
  cltq
  shl    $0x3,%rax
  add    %rax,%rsi
  mov    %rsi,0x90(%rsp)
  add    0x70(%rsp),%rax
  mov    %rax,0x98(%rsp)
  movl   $0x1e,0xa8(%rsp)
  mov    %r15,%r13
  mov    0x80(%rsp),%r15d
  jmp    L652
L1030:
  movapd %xmm7,%xmm0
  xorpd  D214(%rip),%xmm0
  movsd  %xmm0,(%rax,%rsi,1)
  cmpl   $0x0,0x5c(%rsp)
  jle    L533
  mov    0x60(%rsp),%rax
  movq   D214(%rip),%xmm1
L193:
  mov    0x78(%rsp),%rdx
  add    (%rax),%rdx
  movsd  (%rdx),%xmm0
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x8,%rax
  cmp    %rax,%r15
  jne    L193
  jmp    L533
L425:
  orpd   D214(%rip),%xmm1
  movapd %xmm1,%xmm0
  jmp    L1147
L408:
  movsd  D300(%rip),%xmm1
  divsd  %xmm0,%xmm1
  movsd  0x10(%rsp),%xmm6
  mulsd  %xmm1,%xmm6
  movsd  %xmm6,(%rsp)
  mulsd  0x20(%rsp),%xmm1
  movsd  %xmm1,0x8(%rsp)
L1152:
  movsd  (%rsp),%xmm6
  movapd %xmm6,%xmm1
  movsd  0x30(%rsp),%xmm4
  mulsd  %xmm4,%xmm1
  movsd  0x8(%rsp),%xmm7
  movapd %xmm7,%xmm0
  movsd  0x38(%rsp),%xmm5
  mulsd  %xmm5,%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,0x10(%rsp)
  mulsd  %xmm6,%xmm5
  movapd %xmm5,%xmm1
  mulsd  %xmm7,%xmm4
  subsd  %xmm4,%xmm1
  movsd  %xmm1,0x20(%rsp)
  cmpl   $0x0,0x4c(%rsp)
  jle    L572
  mov    0x50(%rsp),%rax
L798:
  mov    (%rax),%rcx
  lea    (%rcx,%r14,1),%rdx
  movsd  (%rdx),%xmm1
  movsd  (%rcx,%r12,1),%xmm0
  movsd  (%rsp),%xmm5
  movapd %xmm5,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  0x8(%rsp),%xmm4
  movapd %xmm4,%xmm3
  mulsd  %xmm0,%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,(%rdx)
  mov    (%rax),%rdx
  mulsd  %xmm5,%xmm0
  mulsd  %xmm4,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx,%r12,1)
  add    $0x8,%rax
  cmp    %rbx,%rax
  jne    L798
L572:
  add    $0x1,%rbp
  cmp    %ebp,0x58(%rsp)
  jl     L146
L527:
  lea    0x8(,%rbp,8),%r12
  mov    %r15,0x30(%rsp)
  add    $0x8,%r15
  movsd  (%r15),%xmm0
  mov    0x28(%rsp),%rax
  movsd  0x8(%rax,%rbp,8),%xmm7
  movsd  %xmm7,0x38(%rsp)
  movsd  0x8(%rsp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x8(%rsp)
  mulsd  (%rsp),%xmm0
  movsd  %xmm0,0x40(%rsp)
  movsd  0x10(%rsp),%xmm0
  call   <pythag@plt>
  lea    -0x8(%r12),%r14
  mov    0x30(%rsp),%rax
  movsd  %xmm0,(%rax)
  movsd  0x10(%rsp),%xmm6
  divsd  %xmm0,%xmm6
  movsd  %xmm6,(%rsp)
  movsd  0x8(%rsp),%xmm4
  divsd  %xmm0,%xmm4
  movsd  %xmm4,0x8(%rsp)
  movapd %xmm6,%xmm1
  movsd  0x20(%rsp),%xmm5
  mulsd  %xmm5,%xmm1
  movsd  0x40(%rsp),%xmm7
  movapd %xmm7,%xmm0
  mulsd  %xmm4,%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,0x10(%rsp)
  mulsd  %xmm6,%xmm7
  movapd %xmm7,%xmm0
  mulsd  %xmm4,%xmm5
  subsd  %xmm5,%xmm0
  movsd  %xmm0,0x30(%rsp)
  movsd  0x38(%rsp),%xmm7
  movapd %xmm7,%xmm5
  mulsd  %xmm4,%xmm5
  movsd  %xmm5,0x20(%rsp)
  mulsd  %xmm6,%xmm7
  movsd  %xmm7,0x38(%rsp)
  cmpl   $0x0,0x5c(%rsp)
  jle    L1207
  mov    0x60(%rsp),%rax
L525:
  mov    (%rax),%rcx
  lea    (%rcx,%r14,1),%rdx
  movsd  (%rdx),%xmm1
  movsd  (%rcx,%r12,1),%xmm0
  movsd  (%rsp),%xmm6
  movapd %xmm6,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  0x8(%rsp),%xmm7
  movapd %xmm7,%xmm3
  mulsd  %xmm0,%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,(%rdx)
  mov    (%rax),%rdx
  mulsd  %xmm6,%xmm0
  mulsd  %xmm7,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx,%r12,1)
  add    $0x8,%rax
  cmp    %r13,%rax
  jne    L525
L1207:
  movsd  0x20(%rsp),%xmm1
  movsd  0x10(%rsp),%xmm0
  call   <pythag@plt>
  mov    0x28(%rsp),%rax
  movsd  %xmm0,(%rax,%rbp,8)
  pxor   %xmm6,%xmm6
  ucomisd %xmm6,%xmm0
  jp     L408
  je     L1152
  jmp    L408
L146:
  mov    0x70(%rsp),%rax
  mov    0x80(%rsp),%rdi
  movq   $0x0,(%rax,%rdi,1)
  mov    0x88(%rsp),%rax
  movsd  0x10(%rsp),%xmm7
  movsd  %xmm7,(%rax)
  mov    0xa0(%rsp),%rax
  movsd  0x20(%rsp),%xmm4
  movsd  %xmm4,(%rax)
  subl   $0x1,0xa8(%rsp)
  je     L1130
  mov    0x58(%rsp),%r15d
L652:
  mov    0x78(%rsp),%rax
  mov    0x70(%rsp),%rdi
  add    %rdi,%rax
  mov    0x68(%rsp),%ebp
  mov    0x28(%rsp),%rdx
  sub    %rdi,%rdx
  jmp    L343
L1130:
  mov    %r13,%r15
  mov    0x58(%rsp),%eax
  mov    %eax,0x80(%rsp)
  jmp    L533
L136:
  mov    0x28(%rsp),%rax
  mov    0x78(%rsp),%rdi
  movsd  (%rax,%rdi,1),%xmm4
  movsd  %xmm4,(%rsp)
  jmp    L279
L946:
  ucomisd D348(%rip),%xmm0
  jp     L170
  je     L360
L170:
  movapd %xmm5,%xmm2
  divsd  %xmm0,%xmm2
L235:
  cmp    %r12d,%r8d
  jle    L288
  mov    0x8(%rsp),%eax
  add    %r12,%rax
  lea    0x0(%r13,%rax,8),%rcx
  mov    %rbp,%rax
L977:
  mov    %rsi,%rdx
  add    (%rax),%rdx
  movapd %xmm2,%xmm0
  mulsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x8,%rax
  cmp    %rax,%rcx
  jne    L977
L288:
  add    0x0(%rbp),%rsi
  movapd %xmm3,%xmm0
  addsd  (%rsi),%xmm0
  movsd  %xmm0,(%rsi)
  sub    $0x1,%r12
  sub    $0x1,%r14d
  sub    $0x8,%rbp
  addl   $0x1,0x20(%rsp)
  addl   $0x1,0x8(%rsp)
  test   %r12d,%r12d
  js     L294
L376:
  mov    %r14d,(%rsp)
  lea    0x0(,%r12,8),%rsi
  mov    0x28(%rsp),%rax
  movsd  (%rax,%r12,8),%xmm0
  cmp    %r14d,0x5c(%rsp)
  jle    L946
  movslq %r14d,%rbx
  lea    0x0(,%rbx,8),%rdi
  mov    0x20(%rsp),%eax
  lea    0x2(%r12,%rax,1),%r11
  shl    $0x3,%r11
  mov    %rdi,%rax
  mov    %rbp,%r15
L416:
  mov    0x0(%rbp),%rdx
  movq   $0x0,(%rdx,%rax,1)
  add    $0x8,%rax
  cmp    %r11,%rax
  jne    L416
  ucomisd D348(%rip),%xmm0
  jp     L1113
  jne    L1113
L360:
  cmp    %r12d,%r8d
  jle    L288
  mov    0x8(%rsp),%eax
  add    %r12,%rax
  lea    0x0(%r13,%rax,8),%rcx
  mov    %rbp,%rax
L1101:
  mov    (%rax),%rdx
  movq   $0x0,(%rdx,%rsi,1)
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L1101
  jmp    L288
L1113:
  movapd %xmm4,%xmm2
  divsd  %xmm0,%xmm2
  mov    0x8(%rsp),%eax
  add    %r12,%rax
  lea    0x0(%r13,%rax,8),%r9
  jmp    L909
L1068:
  mov    0x4c(%rsp),%esi
  cmp    %esi,0x5c(%rsp)
  jg     L763
  mov    %r13d,0x10(%rsp)
  jmp    L320
L757:
  mov    0x5c(%rsp),%r8d
  lea    -0x1(%r8),%r13d
  movslq %r13d,%rdx
  shl    $0x3,%rdx
  mov    %r13d,%ebp
  movsd  D300(%rip),%xmm2
  mov    %r13d,%r12d
  mov    0x60(%rsp),%rdi
  lea    0x8(%rdi),%r14
  jmp    L40
L176:
  mov    0x20(%rsp),%rax
  movsd  (%rax),%xmm1
  andpd  D5(%rip),%xmm1
  mov    0x30(%rsp),%rax
  movsd  (%rax),%xmm0
  andpd  D5(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movsd  0x18(%rsp),%xmm4
  comisd %xmm1,%xmm4
  ja     L757
  pxor   %xmm6,%xmm6
  movsd  %xmm6,(%rsp)
  jmp    L793
```

tool_calls: name: parse_data
arguments: label: D5
type: qword[2]
name: parse_data
arguments: label: D348
type: f64[2]
name: parse_data
arguments: label: D214
type: byte[16]
name: parse_data
arguments: label: D300
type: f64

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

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

tool: {"D214": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: D300: 1

assistant: ```c
void dsvdcmp0(double **a, int m, int n, double *w, double **v) {
  int flag, i, its, j, jj, k, l, nm;
  double anorm, c, f, g, h, s, scale, x, y, z, *rv1;
  if (!(rv1 = (double *)malloc(n * sizeof(double))))
    svd_errm();
  g = scale = anorm = 0.0;
  for (i = 0; i < n; i++) {
    l = i + 1;
    rv1[i] = scale * g;
    g = s = scale = 0.0;
    if (i < m) {
      for (k = i; k < m; k++)
        scale += fabs(a[k][i]);
      if (scale) {
        for (k = i; k < m; k++) {
          a[k][i] /= scale;
          s += a[k][i] * a[k][i];
        }
        f = a[i][i];
        g = -((f) > 0 ? fabs(sqrt(s)) : -fabs(sqrt(s)));
        h = f * g - s;
        a[i][i] = f - g;
        for (j = l; j < n; j++) {
          for (s = 0.0, k = i; k < m; k++)
            s += a[k][i] * a[k][j];
          f = s / h;
          for (k = i; k < m; k++)
            a[k][j] += f * a[k][i];
        }
        for (k = i; k < m; k++)
          a[k][i] *= scale;
      }
    }
    w[i] = scale * g;
    g = s = scale = 0.0;
    if (i < m && i != n - 1) {
      for (k = l; k < n; k++)
        scale += fabs(a[i][k]);
      if (scale) {
        for (k = l; k < n; k++) {
          a[i][k] /= scale;
          s += a[i][k] * a[i][k];
        }
        f = a[i][l];
        g = -((f) > 0 ? fabs(sqrt(s)) : -fabs(sqrt(s)));
        h = f * g - s;
        a[i][l] = f - g;
        for (k = l; k < n; k++)
          rv1[k] = a[i][k] / h;
        for (j = l; j < m; j++) {
          for (s = 0.0, k = l; k < n; k++)
            s += a[j][k] * a[i][k];
          for (k = l; k < n; k++)
            a[j][k] += s * rv1[k];
        }
        for (k = l; k < n; k++)
          a[i][k] *= scale;
      }
    }
    anorm = ((anorm) > ((fabs(w[i]) + fabs(rv1[i]))) ? (anorm) : ((fabs(w[i]) + fabs(rv1[i]))));
  }
  for (i = n - 1; i >= 0; i--) {
    if (i < n - 1) {
      if (g) {
        for (j = l; j < n; j++)
          v[j][i] = (a[i][j] / a[i][l]) / g;
        for (j = l; j < n; j++) {
          for (s = 0.0, k = l; k < n; k++)
            s += a[i][k] * v[k][j];
          for (k = l; k < n; k++)
            v[k][j] += s * v[k][i];
        }
      }
      for (j = l; j < n; j++)
        v[i][j] = v[j][i] = 0.0;
    }
    v[i][i] = 1.0;
    g = rv1[i];
    l = i;
  }
  for (i = ((m - 1) < (n - 1) ? (m - 1) : (n - 1)); i >= 0; i--) {
    l = i + 1;
    g = w[i];
    for (j = l; j < n; j++)
      a[i][j] = 0.0;
    if (g) {
      g = 1.0 / g;
      for (j = l; j < n; j++) {
        for (s = 0.0, k = l; k < m; k++)
          s += a[k][i] * a[k][j];
        f = (s / a[i][i]) * g;
        for (k = i; k < m; k++)
          a[k][j] += f * a[k][i];
      }
      for (j = i; j < m; j++)
        a[j][i] *= g;
    } else
      for (j = i; j < m; j++)
        a[j][i] = 0.0;
    a[i][i] += 1.0;
  }
  for (k = n - 1; k >= 0; k--) {
    for (its = 0; its < 30; its++) {
      flag = 1;
      for (l = k; l > 0; l--) {
        nm = l - 1;
        if ((double)(fabs(rv1[l]) + anorm) == anorm) {
          flag = 0;
          break;
        }
        if ((double)(fabs(w[nm]) + anorm) == anorm)
          break;
      }
      if (flag) {
        c = 0.0;
        s = 1.0;
        for (i = l; i <= k; i++) {
          f = s * rv1[i];
          rv1[i] = c * rv1[i];
          if ((double)(fabs(f) + anorm) == anorm)
            break;
          g = w[i];
          h = pythag(f, g);
          w[i] = h;
          h = 1.0 / h;
          c = g * h;
          s = -f * h;
          for (j = 0; j < m; j++) {
            y = a[j][nm];
            z = a[j][i];
            a[j][nm] = y * c + z * s;
            a[j][i] = z * c - y * s;
          }
        }
      }
      z = w[k];
      if (l == k) {
        if (z < 0.0) {
          w[k] = -z;
          for (j = 0; j < n; j++)
            v[j][k] = -v[j][k];
        }
        break;
      }
      if (its >= 30) {
        printf("dsvdcmp0: no convergence in 30 iterations\n");
      }
      x = w[l];
      nm = k - 1;
      y = w[nm];
      g = rv1[nm];
      h = rv1[k];
      f = ((y - z) * (y + z) + (g - h) * (g + h)) / (2.0 * h * y);
      g = pythag(f, 1.0);
      f = ((x - z) * (x + z) + h * ((y / (f + ((f) > 0 ? fabs(g) : -fabs(g)))) - h)) / x;
      c = s = 1.0;
      for (j = l; j <= nm; j++) {
        i = j + 1;
        g = rv1[i];
        y = w[i];
        h = s * g;
        g = c * g;
        z = pythag(f, h);
        rv1[j] = z;
        c = f / z;
        s = h / z;
        f = x * c + g * s;
        g = g * c - x * s;
        h = y * s;
        y *= c;
        for (jj = 0; jj < n; jj++) {
          x = v[jj][j];
          z = v[jj][i];
          v[jj][j] = x * c + z * s;
          v[jj][i] = z * c - x * s;
        }
        z = pythag(f, h);
        w[j] = z;
        if (z) {
          z = 1.0 / z;
          c = f * z;
          s = h * z;
        }
        f = c * g + s * y;
        x = c * y - s * g;
        for (jj = 0; jj < m; jj++) {
          y = a[jj][j];
          z = a[jj][i];
          a[jj][j] = y * c + z * s;
          a[jj][i] = z * c - y * s;
        }
      }
      rv1[l] = 0.0;
      rv1[k] = f;
      w[k] = x;
    }
  }
  free(rv1);
}
```