user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<dsvdinv>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x110,%rsp
  mov    %rdi,-0xf8(%rbp)
  mov    %rsi,-0x100(%rbp)
  mov    %edx,-0x104(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  D410(%rip),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0x104(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x68(%rbp)
  mov    -0x104(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x60(%rbp)
  mov    -0x104(%rbp),%eax
  imul   %eax,%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x58(%rbp)
  mov    -0x104(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x50(%rbp)
  movl   $0x0,-0xc8(%rbp)
  mov    -0xc8(%rbp),%eax
  mov    %eax,-0xcc(%rbp)
  movl   $0x0,-0xe0(%rbp)
  jmp    L1232
L1245:
  mov    -0xe0(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xcc(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L1004
L286:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xd0(%rbp)
L1004:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L286
  pxor   %xmm0,%xmm0
  ucomisd -0x88(%rbp),%xmm0
  jp     L564
  pxor   %xmm0,%xmm0
  ucomisd -0x88(%rbp),%xmm0
  je     L1225
L564:
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L338
L500:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  divsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L338:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L500
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jb     L205
  mov    -0xa8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   D145(%rip),%xmm0
  movq   %rax,%xmm3
  andpd  %xmm0,%xmm3
  movapd %xmm3,%xmm0
  movq   D259(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  jmp    L261
L205:
  mov    -0xa8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   D145(%rip),%xmm0
  movq   %rax,%xmm4
  andpd  %xmm0,%xmm4
  movapd %xmm4,%xmm0
L261:
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  subsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L1072
L636:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L1131
L306:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L1131:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L306
  movsd  -0xa8(%rbp),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L1248
L1305:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L1248:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1305
  addl   $0x1,-0xd8(%rbp)
L1072:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L636
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L223
L116:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L223:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L116
L1225:
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xcc(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  je     L0
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L64
L493:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xd0(%rbp)
L64:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L493
  pxor   %xmm0,%xmm0
  ucomisd -0x88(%rbp),%xmm0
  jp     L55
  pxor   %xmm0,%xmm0
  ucomisd -0x88(%rbp),%xmm0
  je     L0
L55:
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L495
L428:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  divsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L495:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L428
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xcc(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jb     L1181
  mov    -0xa8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   D145(%rip),%xmm0
  movq   %rax,%xmm5
  andpd  %xmm0,%xmm5
  movapd %xmm5,%xmm0
  movq   D259(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  jmp    L479
L1181:
  mov    -0xa8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   D145(%rip),%xmm0
  movq   %rax,%xmm6
  andpd  %xmm0,%xmm6
  movapd %xmm6,%xmm0
L479:
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  subsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xcc(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L1288
L712:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L1288:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L712
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L734
L1002:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L766
L313:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L766:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L313
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L906
L808:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L906:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L808
  addl   $0x1,-0xd8(%rbp)
L734:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1002
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L1028
L857:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L1028:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L857
L0:
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm0,%xmm1
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D145(%rip),%xmm2
  andpd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  comisd -0x8(%rbp),%xmm0
  jbe    L162
  movsd  -0x10(%rbp),%xmm0
  jmp    L705
L162:
  movsd  -0x8(%rbp),%xmm0
L705:
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  addl   $0x1,-0xe0(%rbp)
L1232:
  mov    -0xe0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1245
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L835
L22:
  mov    -0x104(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xe0(%rbp)
  jge    L1124
  pxor   %xmm0,%xmm0
  ucomisd -0x90(%rbp),%xmm0
  jp     L779
  pxor   %xmm0,%xmm0
  ucomisd -0x90(%rbp),%xmm0
  je     L943
L779:
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L336
L333:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xcc(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  divsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd8(%rbp)
L336:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L333
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L1084
L990:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L620
L739:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L620:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L739
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L485
L864:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L485:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L864
  addl   $0x1,-0xd8(%rbp)
L1084:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L990
L943:
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L368
L134:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe0(%rbp),%edx
  mov    %edx,%ecx
  imul   -0x104(%rbp),%ecx
  mov    -0xd8(%rbp),%edx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x58(%rbp),%rdx
  add    %rcx,%rdx
  movsd  (%rax),%xmm0
  movsd  %xmm0,(%rdx)
  addl   $0x1,-0xd8(%rbp)
L368:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L134
L1124:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  D6(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xcc(%rbp)
L835:
  mov    -0xe0(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,-0xe0(%rbp)
  test   %eax,%eax
  jne    L22
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L727
L1109:
  mov    -0xe0(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xcc(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L1249
L688:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd8(%rbp)
L1249:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L688
  pxor   %xmm0,%xmm0
  ucomisd -0x90(%rbp),%xmm0
  jp     L1079
  pxor   %xmm0,%xmm0
  ucomisd -0x90(%rbp),%xmm0
  je     L669
L1079:
  movsd  D6(%rip),%xmm0
  divsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L96
L1290:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L1165
L135:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L1165:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L135
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movsd  -0xa8(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  -0x90(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L818
L1061:
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  mov    -0xd0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd0(%rbp)
L818:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1061
  addl   $0x1,-0xd8(%rbp)
L96:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1290
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L797
L75:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd8(%rbp)
L797:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L75
  jmp    L665
L669:
  mov    -0xe0(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L883
L1076:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd8(%rbp)
L883:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1076
L665:
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L727:
  mov    -0xe0(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,-0xe0(%rbp)
  test   %eax,%eax
  jne    L1109
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  jmp    L60
L637:
  movl   $0x0,-0xdc(%rbp)
  jmp    L93
L1184:
  movl   $0x1,-0xe4(%rbp)
  mov    -0xd0(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xcc(%rbp)
  jmp    L165
L1361:
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xc8(%rbp)
  mov    -0xcc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x78(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jae    L91
  cmpl   $0x0,-0xcc(%rbp)
  jne    L297
L91:
  movl   $0x0,-0xe4(%rbp)
  jmp    L214
L297:
  mov    -0xc8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x78(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jae    L1208
L165:
  mov    -0xcc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,-0xcc(%rbp)
  test   %eax,%eax
  jne    L1361
  jmp    L214
L1208:
  nop
L214:
  cmpl   $0x0,-0xe4(%rbp)
  je     L366
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  D6(%rip),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L988
L1359:
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0xa8(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xb0(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm0,%xmm1
  movsd  -0x78(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jae    L1292
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x90(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x40(%rbp),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L663
  movsd  -0x38(%rbp),%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x40(%rbp),%xmm0
  jmp    L724
L663:
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  jp     L312
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  je     L174
L312:
  movsd  -0x40(%rbp),%xmm0
  divsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x38(%rbp),%xmm0
  jmp    L724
L174:
  pxor   %xmm0,%xmm0
L724:
  movsd  %xmm0,-0x28(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  D6(%rip),%xmm0
  divsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movq   D259(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  -0x28(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movl   $0x0,-0xd8(%rbp)
  jmp    L692
L1283:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xc8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xc8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  mulsd  -0xa8(%rbp),%xmm1
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd8(%rbp)
L692:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1283
  addl   $0x1,-0xe0(%rbp)
L988:
  mov    -0xe0(%rbp),%eax
  cmp    -0xd0(%rbp),%eax
  jle    L1359
  jmp    L366
L1292:
  nop
L366:
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0xcc(%rbp),%eax
  cmp    -0xd0(%rbp),%eax
  jne    L1093
  pxor   %xmm0,%xmm0
  comisd -0x18(%rbp),%xmm0
  jbe    L505
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x18(%rbp),%xmm0
  movq   D259(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x0,-0xd8(%rbp)
  jmp    L48
L1322:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movq   D259(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd8(%rbp)
L48:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1322
L505:
  jmp    L60
L1093:
  cmpl   $0x1d,-0xdc(%rbp)
  jne    L370
  mov    $0x0,%eax
  jmp    L159
L370:
  mov    -0xcc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0xd0(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xc8(%rbp)
  mov    -0xc8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0xc8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x18(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x90(%rbp),%xmm0
  movapd %xmm0,%xmm2
  subsd  -0x28(%rbp),%xmm2
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0x28(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x20(%rbp),%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D6(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x40(%rbp),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L535
  movsd  -0x38(%rbp),%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x40(%rbp),%xmm0
  jmp    L478
L535:
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  jp     L763
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  je     L279
L763:
  movsd  -0x40(%rbp),%xmm0
  divsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x38(%rbp),%xmm0
  jmp    L478
L279:
  pxor   %xmm0,%xmm0
L478:
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x18(%rbp),%xmm1
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0xb0(%rbp),%xmm0
  pxor   %xmm2,%xmm2
  comisd %xmm2,%xmm0
  jb     L1083
  movsd  -0x90(%rbp),%xmm0
  movq   D145(%rip),%xmm2
  andpd  %xmm2,%xmm0
  jmp    L1258
L1083:
  movsd  -0x90(%rbp),%xmm0
  movq   D145(%rip),%xmm2
  andpd  %xmm2,%xmm0
  movq   D259(%rip),%xmm2
  xorpd  %xmm2,%xmm0
L1258:
  movapd %xmm0,%xmm2
  addsd  -0xb0(%rbp),%xmm2
  movsd  -0x20(%rbp),%xmm0
  divsd  %xmm2,%xmm0
  subsd  -0x28(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  divsd  -0xa0(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  D6(%rip),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L746
L280:
  mov    -0xd8(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xe0(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xe0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x28(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x40(%rbp),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L852
  movsd  -0x38(%rbp),%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x40(%rbp),%xmm0
  jmp    L1172
L852:
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  jp     L989
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  je     L508
L989:
  movsd  -0x40(%rbp),%xmm0
  divsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x38(%rbp),%xmm0
  jmp    L1172
L508:
  pxor   %xmm0,%xmm0
L1172:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0xd8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xb0(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0x28(%rbp),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  -0xa0(%rbp),%xmm1
  mulsd  -0xa8(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movl   $0x0,-0xd4(%rbp)
  jmp    L578
L1033:
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  -0xa0(%rbp),%xmm1
  mulsd  -0xa8(%rbp),%xmm1
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd4(%rbp)
L578:
  mov    -0xd4(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1033
  movsd  -0xb0(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x28(%rbp),%xmm0
  movq   D145(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x40(%rbp),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L78
  movsd  -0x38(%rbp),%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x40(%rbp),%xmm0
  jmp    L549
L78:
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  jp     L481
  pxor   %xmm0,%xmm0
  ucomisd -0x38(%rbp),%xmm0
  je     L1160
L481:
  movsd  -0x40(%rbp),%xmm0
  divsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  D6(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x38(%rbp),%xmm0
  jmp    L549
L1160:
  pxor   %xmm0,%xmm0
L549:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0xd8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  jp     L909
  pxor   %xmm0,%xmm0
  ucomisd -0x18(%rbp),%xmm0
  je     L1327
L909:
  movsd  D6(%rip),%xmm0
  divsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
L1327:
  movsd  -0xb8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x90(%rbp),%xmm1
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  -0xa8(%rbp),%xmm1
  mulsd  -0x90(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movl   $0x0,-0xd4(%rbp)
  jmp    L274
L1143:
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x20(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  mulsd  -0xa8(%rbp),%xmm1
  mov    -0xd4(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xe0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xd4(%rbp)
L274:
  mov    -0xd4(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1143
  addl   $0x1,-0xd8(%rbp)
L746:
  mov    -0xd8(%rbp),%eax
  cmp    -0xc8(%rbp),%eax
  jle    L280
  mov    -0xcc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x68(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xa0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xdc(%rbp)
L93:
  cmpl   $0x1d,-0xdc(%rbp)
  jle    L1184
L60:
  mov    -0xd0(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,-0xd0(%rbp)
  test   %eax,%eax
  jne    L637
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0x50(%rbp),%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L186
L1096:
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd -0x80(%rbp),%xmm0
  jbe    L1286
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x80(%rbp)
L1286:
  addq   $0x8,-0xc0(%rbp)
L186:
  mov    -0xd8(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,-0xd8(%rbp)
  test   %eax,%eax
  jne    L1096
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movl   $0x0,-0xc4(%rbp)
  mov    -0x50(%rbp),%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xd8(%rbp)
  jmp    L281
L20:
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x48(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jb     L176
  mov    -0xc0(%rbp),%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  jmp    L713
L176:
  addl   $0x1,-0xc4(%rbp)
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D6(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0xc0(%rbp),%rax
  movsd  %xmm0,(%rax)
L713:
  addq   $0x8,-0xc0(%rbp)
L281:
  mov    -0xd8(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,-0xd8(%rbp)
  test   %eax,%eax
  jne    L20
  movl   $0x0,-0xd8(%rbp)
  jmp    L17
L147:
  movl   $0x0,-0xe0(%rbp)
  jmp    L117
L1212:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movl   $0x0,-0xd0(%rbp)
  jmp    L579
L1006:
  mov    -0xd8(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x58(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xf8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xd0(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xa8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  addl   $0x1,-0xd0(%rbp)
L579:
  mov    -0xd0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1006
  mov    -0xe0(%rbp),%eax
  imul   -0x104(%rbp),%eax
  mov    %eax,%edx
  mov    -0xd8(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x100(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xe0(%rbp)
L117:
  mov    -0xe0(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L1212
  addl   $0x1,-0xd8(%rbp)
L17:
  mov    -0xd8(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jl     L147
  mov    -0x60(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x68(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x58(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x50(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0xc4(%rbp),%eax
L159:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_tag: D410
type: byte[8]
name: read_data
arguments: data_tag: D145
type: qword
name: read_data
arguments: data_tag: D259
type: f32[2]
name: read_data
arguments: data_tag: D6
type: f64

tool: {"D410": [0x95,0xd6,0x26,0xe8,0x0b,0x2e,0x11,0x3e]}

tool: D145: 9223372036854775807

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

tool: D6: 1

assistant: ```c
int dsvdinv(double *a, double *b, int m) {
  int flag, i, its, j, jj, k, l, nm, rank;
  double *vmat, *wmat, *w, *rv1, *tmp, c, f, h, s, x, y, z, anorm, g, scale, at, bt, ct, maxarg1, maxarg2, thresh, wmax, tol, tanorm;
  anorm = g = scale = 0.0;
  tanorm = tol = sizeof(anorm) > 4 ? 1.0e-9 : 1.0e-6;
  rv1 = (double *)malloc(m * sizeof(double));
  tmp = (double *)malloc(m * sizeof(double));
  vmat = (double *)malloc(m * m * sizeof(double));
  wmat = (double *)malloc(m * sizeof(double));
  l = nm = 0;
  for (i = 0; i < m; i++) {
    l = i + 1;
    rv1[i] = scale * g;
    g = s = scale = 0.0;
    for (k = i; k < m; k++)
      scale += fabs(a[k * m + i]);
    if (scale) {
      for (k = i; k < m; k++) {
        a[k * m + i] /= scale;
        s += a[k * m + i] * a[k * m + i];
      }
      f = a[i * m + i];
      g = -((f) >= 0.0 ? fabs(sqrt(s)) : -fabs(sqrt(s)));
      h = f * g - s;
      a[i * m + i] = f - g;
      for (j = l; j < m; j++) {
        s = 0.0;
        for (k = i; k < m; k++)
          s += a[k * m + i] * a[k * m + j];
        f = s / h;
        for (k = i; k < m; k++)
          a[k * m + j] += f * a[k * m + i];
      }
      for (k = i; k < m; k++)
        a[k * m + i] *= scale;
    }
    wmat[i] = scale * g;
    g = s = scale = 0.0;
    if (l != m) {
      for (k = l; k < m; k++)
        scale += fabs(a[i * m + k]);
      if (scale) {
        for (k = l; k < m; k++) {
          a[i * m + k] /= scale;
          s += a[i * m + k] * a[i * m + k];
        }
        f = a[i * m + l];
        g = -((f) >= 0.0 ? fabs(sqrt(s)) : -fabs(sqrt(s)));
        h = f * g - s;
        a[i * m + l] = f - g;
        for (k = l; k < m; k++)
          rv1[k] = a[i * m + k] / h;
        for (j = l; j < m; j++) {
          s = 0.0;
          for (k = l; k < m; k++)
            s += a[j * m + k] * a[i * m + k];
          for (k = l; k < m; k++)
            a[j * m + k] += s * rv1[k];
        }
        for (k = l; k < m; k++)
          a[i * m + k] *= scale;
      }
    }
    anorm = (maxarg1 = (anorm), maxarg2 = ((fabs(wmat[i]) + fabs(rv1[i]))), (maxarg1) > (maxarg2) ? (maxarg1) : (maxarg2));
    tanorm = tol * anorm;
  }
  for (i = m; i--;) {
    if (i < m - 1) {
      if (g) {
        for (j = l; j < m; j++)
          vmat[j * m + i] = (a[i * m + j] / a[i * m + l]) / g;
        for (j = l; j < m; j++) {
          s = 0.0;
          for (k = l; k < m; k++)
            s += a[i * m + k] * vmat[k * m + j];
          for (k = l; k < m; k++)
            vmat[k * m + j] += s * vmat[k * m + i];
        }
      }
      for (j = l; j < m; j++)
        vmat[i * m + j] = vmat[j * m + i] = 0.0;
    }
    vmat[i * m + i] = 1.0;
    g = rv1[i];
    l = i;
  }
  for (i = m; i--;) {
    l = i + 1;
    g = wmat[i];
    for (j = l; j < m; j++)
      a[i * m + j] = 0.0;
    if (g) {
      g = 1.0 / g;
      for (j = l; j < m; j++) {
        s = 0.0;
        for (k = l; k < m; k++)
          s += a[k * m + i] * a[k * m + j];
        f = (s / a[i * m + i]) * g;
        for (k = i; k < m; k++)
          a[k * m + j] += f * a[k * m + i];
      }
      for (j = i; j < m; j++)
        a[j * m + i] *= g;
    } else
      for (j = i; j < m; j++)
        a[j * m + i] = 0.0;
    ++a[i * m + i];
  }
  for (k = m; k--;) {
    for (its = 0; its < 30; its++) {
      flag = 1;
      for (l = k + 1; l--;) {
        nm = l - 1;
        if (fabs(rv1[l]) <= tanorm || !l) {
          flag = 0;
          break;
        }
        if (fabs(wmat[nm]) <= tanorm)
          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 (fabs(f) <= tanorm)
            break;
          g = wmat[i];
          h = ((at = fabs(f)) > (bt = fabs(g)) ? (ct = bt / at, at * sqrt(1.0 + ct * ct)) : (bt ? (ct = at / bt, bt * sqrt(1.0 + ct * ct)) : 0.0));
          wmat[i] = h;
          h = 1.0 / h;
          c = g * h;
          s = -f * h;
          for (j = 0; j < m; j++) {
            y = a[j * m + nm];
            z = a[j * m + i];
            a[j * m + nm] = y * c + z * s;
            a[j * m + i] = z * c - y * s;
          }
        }
      }
      z = wmat[k];
      if (l == k) {
        if (z < 0.0) {
          wmat[k] = -z;
          for (j = 0; j < m; j++)
            vmat[j * m + k] = -vmat[j * m + k];
        }
        break;
      }
      if (its == 29)
        return 0;
      x = wmat[l];
      nm = k - 1;
      y = wmat[nm];
      g = rv1[nm];
      h = rv1[k];
      f = ((y - z) * (y + z) + (g - h) * (g + h)) / (2.0 * h * y);
      g = ((at = fabs(f)) > (bt = fabs(1.0)) ? (ct = bt / at, at * sqrt(1.0 + ct * ct)) : (bt ? (ct = at / bt, bt * sqrt(1.0 + ct * ct)) : 0.0));
      f = ((x - z) * (x + z) + h * ((y / (f + ((f) >= 0.0 ? fabs(g) : -fabs(g)))) - h)) / x;
      c = s = 1.0;
      for (j = l; j <= nm; j++) {
        i = j + 1;
        g = rv1[i];
        y = wmat[i];
        h = s * g;
        g = c * g;
        z = ((at = fabs(f)) > (bt = fabs(h)) ? (ct = bt / at, at * sqrt(1.0 + ct * ct)) : (bt ? (ct = at / bt, bt * sqrt(1.0 + ct * ct)) : 0.0));
        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 < m; jj++) {
          x = vmat[jj * m + j];
          z = vmat[jj * m + i];
          vmat[jj * m + j] = x * c + z * s;
          vmat[jj * m + i] = z * c - x * s;
        }
        z = ((at = fabs(f)) > (bt = fabs(h)) ? (ct = bt / at, at * sqrt(1.0 + ct * ct)) : (bt ? (ct = at / bt, bt * sqrt(1.0 + ct * ct)) : 0.0));
        wmat[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 * m + j];
          z = a[jj * m + i];
          a[jj * m + j] = y * c + z * s;
          a[jj * m + i] = z * c - y * s;
        }
      }
      rv1[l] = 0.0;
      rv1[k] = f;
      wmat[k] = x;
    }
  }
  wmax = 0.0;
  w = wmat;
  for (j = m; j--; w++)
    if (*w > wmax)
      wmax = *w;
  thresh = tol * wmax;
  rank = 0;
  w = wmat;
  for (j = m; j--; w++)
    if (*w <= thresh)
      *w = 0.0;
    else {
      rank++;
      *w = 1.0 / *w;
    }
  for (j = 0; j < m; j++)
    for (i = 0; i < m; i++) {
      s = 0.0;
      for (k = 0; k < m; k++)
        s += vmat[k + j * m] * a[k + i * m] * wmat[k];
      b[j + i * m] = s;
    }
  free(tmp);
  free(rv1);
  free(vmat);
  free(wmat);
  return rank;
}
```