user: 请将以下的汇编代码转换成C语言代码：

```asm
<mod_chol>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0xb8,%rsp
  mov    %rdi,-0x98(%rbp)
  mov    %esi,-0x9c(%rbp)
  mov    %rdx,-0xa8(%rbp)
  mov    %rcx,-0xb0(%rbp)
  mov    %r8,-0xb8(%rbp)
  movl   $0x1,-0x88(%rbp)
  movsd  D57(%rip),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D180(%rip),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  D99(%rip),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  cmpl   $0x1,-0x9c(%rbp)
  jne    L447
  mov    -0x98(%rbp),%rax
  movsd  (%rax),%xmm0
  movq   D156(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mulsd  -0x38(%rbp),%xmm0
  mov    -0x98(%rbp),%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L139
  mov    -0xa8(%rbp),%rax
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L29
L139:
  mov    -0xa8(%rbp),%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
L29:
  mov    -0x98(%rbp),%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L409
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jne    L409
  mov    -0xa8(%rbp),%rax
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L409:
  mov    -0x98(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0xa8(%rbp),%rax
  movsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    -0x98(%rbp),%rdx
  mov    %rax,(%rdx)
  mov    -0xb0(%rbp),%rax
  movl   $0x0,(%rax)
  mov    -0xa8(%rbp),%rax
  movsd  (%rax),%xmm0
  jmp    L189
L447:
  movl   $0x0,-0x84(%rbp)
  jmp    L460
L110:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0xb0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x84(%rbp),%eax
  mov    %eax,(%rdx)
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x84(%rbp)
L460:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L110
  movl   $0x0,-0x84(%rbp)
  jmp    L389
L261:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D156(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  comisd -0x70(%rbp),%xmm0
  jbe    L87
  movsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
L87:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jbe    L126
  movl   $0x0,-0x88(%rbp)
L126:
  addl   $0x1,-0x84(%rbp)
L389:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L261
  movl   $0x0,-0x80(%rbp)
  jmp    L124
L498:
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x80(%rbp),%eax
  mov    %eax,-0x7c(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x84(%rbp)
  jmp    L195
L31:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x50(%rbp),%xmm0
  jbe    L38
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x84(%rbp),%eax
  mov    %eax,-0x7c(%rbp)
L38:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movsd  -0x48(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L122
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
L122:
  addl   $0x1,-0x84(%rbp)
L195:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L31
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  comisd -0x50(%rbp),%xmm0
  ja     L459
  movsd  -0x30(%rbp),%xmm0
  movq   D22(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  comisd -0x48(%rbp),%xmm0
  jbe    L57
L459:
  movl   $0x0,-0x88(%rbp)
  jmp    L9
L57:
  mov    -0x7c(%rbp),%eax
  cmp    -0x80(%rbp),%eax
  je     L108
  mov    -0x80(%rbp),%ecx
  mov    -0x7c(%rbp),%edx
  mov    -0x9c(%rbp),%esi
  mov    -0x98(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <switch_row_and_colMAT@plt>
  mov    -0x80(%rbp),%edx
  mov    -0x7c(%rbp),%ecx
  mov    -0xb0(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <switch_row_and_colVEC@plt>
L108:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x84(%rbp)
  jmp    L323
L233:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  divsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x48(%rbp),%xmm0
  comisd -0x68(%rbp),%xmm0
  jbe    L93
  movsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
L93:
  addl   $0x1,-0x84(%rbp)
L323:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L233
  movsd  -0x30(%rbp),%xmm0
  movq   D22(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mulsd  -0x70(%rbp),%xmm0
  comisd -0x48(%rbp),%xmm0
  jbe    L197
  movl   $0x0,-0x88(%rbp)
  jmp    L9
L197:
  mov    -0x80(%rbp),%edx
  mov    -0x9c(%rbp),%ecx
  mov    -0x98(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <jthIteration@plt>
  addl   $0x1,-0x80(%rbp)
L124:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jge    L9
  cmpl   $0x0,-0x88(%rbp)
  jne    L498
L9:
  cmpl   $0x0,-0x88(%rbp)
  jne    L345
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x80(%rbp)
  jne    L345
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm3
  mulsd  -0x70(%rbp),%xmm3
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm1
  movsd  D110(%rip),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movapd %xmm3,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  imul   -0x9c(%rbp),%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  sar    %edx
  mov    %edx,%ecx
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x98(%rbp),%rdx
  add    %rcx,%rdx
  movsd  (%rdx),%xmm1
  movq   %rax,%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%ecx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  imul   -0x9c(%rbp),%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  sar    %edx
  mov    %edx,%ecx
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x98(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,(%rbx)
  mov    -0x9c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
L345:
  cmpl   $0x0,-0x88(%rbp)
  jne    L173
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x80(%rbp)
  jge    L173
  mov    -0x80(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x74(%rbp)
  mov    -0x74(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x84(%rbp)
  jmp    L419
L362:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rax,%rdx
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xb8(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x74(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x80(%rbp)
  jmp    L28
L26:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movq   D156(%rip),%xmm2
  andpd  %xmm2,%xmm1
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L28:
  mov    -0x84(%rbp),%eax
  cmp    -0x80(%rbp),%eax
  jg     L26
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x80(%rbp)
  jmp    L226
L341:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x84(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movq   D156(%rip),%xmm2
  andpd  %xmm2,%xmm1
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x80(%rbp)
L226:
  mov    -0x80(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L341
  addl   $0x1,-0x84(%rbp)
L419:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L362
  mov    -0x74(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x80(%rbp)
  jmp    L291
L196:
  mov    -0x80(%rbp),%eax
  mov    %eax,-0x78(%rbp)
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x84(%rbp)
  jmp    L66
L452:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x68(%rbp),%xmm0
  jbe    L119
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x84(%rbp),%eax
  mov    %eax,-0x78(%rbp)
L119:
  addl   $0x1,-0x84(%rbp)
L66:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L452
  mov    -0x78(%rbp),%eax
  cmp    -0x80(%rbp),%eax
  je     L506
  mov    -0x80(%rbp),%ecx
  mov    -0x78(%rbp),%edx
  mov    -0x9c(%rbp),%esi
  mov    -0x98(%rbp),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <switch_row_and_colMAT@plt>
  mov    -0x80(%rbp),%edx
  mov    -0x78(%rbp),%ecx
  mov    -0xb0(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <switch_row_and_colVEC@plt>
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x78(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0xb8(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L506:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x84(%rbp)
  jmp    L45
L177:
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D156(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  -0x58(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  addl   $0x1,-0x84(%rbp)
L45:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L177
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x70(%rbp),%xmm0
  mov    -0x58(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    -0x80(%rbp),%edx
  add    $0x1,%edx
  imul   -0x80(%rbp),%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  sar    %edx
  mov    %edx,%ecx
  mov    -0x80(%rbp),%edx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x98(%rbp),%rdx
  add    %rcx,%rdx
  movsd  (%rdx),%xmm0
  movq   %rax,%xmm4
  subsd  %xmm0,%xmm4
  movq   %xmm4,%rax
  movsd  -0x60(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mov    D140(%rip),%rax
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L71
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%ecx
  mov    -0x80(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x80(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x80(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L71:
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd -0x58(%rbp),%xmm0
  jp     L81
  ucomisd -0x58(%rbp),%xmm0
  je     L490
L81:
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  imul   -0x80(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm0
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  D110(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x84(%rbp)
  jmp    L27
L84:
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x84(%rbp),%eax
  add    $0x1,%eax
  imul   -0x84(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D156(%rip),%xmm2
  andpd  %xmm2,%xmm0
  mulsd  -0x68(%rbp),%xmm0
  mov    -0x84(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xb8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x84(%rbp)
L27:
  mov    -0x84(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L84
L490:
  mov    -0x80(%rbp),%edx
  mov    -0x9c(%rbp),%ecx
  mov    -0x98(%rbp),%rax
  mov    %ecx,%esi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <jthIteration@plt>
  addl   $0x1,-0x80(%rbp)
L291:
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  cmp    %eax,-0x80(%rbp)
  jl     L196
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movsd  D181(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x68(%rbp),%xmm1
  movsd  D114(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x68(%rbp),%xmm1
  movsd  D114(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x70(%rbp),%xmm2
  movsd  -0x20(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  mulsd  -0x40(%rbp),%xmm0
  movsd  D110(%rip),%xmm1
  subsd  -0x40(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movapd %xmm2,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  subsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mov    D140(%rip),%rax
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  movsd  -0x60(%rbp),%xmm0
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L385
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%ecx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%ecx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x9c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x8(%rax),%rdx
  mov    -0xa8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L385:
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    -0x9c(%rbp),%edx
  lea    -0x2(%rdx),%ecx
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  imul   %ecx,%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  sar    %edx
  mov    %edx,%ecx
  mov    -0x9c(%rbp),%edx
  sub    $0x2,%edx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x98(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,(%rbx)
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%ecx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x2,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   -0x9c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x9c(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x9c(%rbp),%eax
  sub    $0x1,%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x98(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  imul   -0x9c(%rbp),%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  sar    %edx
  mov    %edx,%ecx
  mov    -0x9c(%rbp),%edx
  sub    $0x1,%edx
  add    %ecx,%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x98(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,(%rbx)
L173:
  movsd  -0x60(%rbp),%xmm0
L189:
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D57
type_infered: byte[8]
name: parse_data
arguments: label: D180
type_infered: byte[8]
name: parse_data
arguments: label: D99
type_infered: f64
name: parse_data
arguments: label: D156
type_infered: qword
name: parse_data
arguments: label: D22
type_infered: f32[2]
name: parse_data
arguments: label: D110
type_infered: f64
name: parse_data
arguments: label: D140
type_infered: f32[2]
name: parse_data
arguments: label: D181
type_infered: f64
name: parse_data
arguments: label: D114
type_infered: f64

tool: {"D57": [0x3e,0x6e,0x3d,0xa5,0xfe,0x65,0xd9,0x3e]}

tool: {"D180": [0x8d,0x72,0x8d,0xf9,0xa2,0x28,0xc4,0x3d]}

tool: D99: 0.1

tool: D156: 9223372036854775807

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

tool: D110: 1

tool: {"D140": [0.0,0.0]}

tool: D181: 4

tool: D114: 0.5

assistant: ```c
double mod_chol(double *A, int n, double *E, int *P, double *g) {
  int phaseone = 1;
  int i, j, k;
  double tau = pow(2.22044604925031e-16, 1. / 3.);
  double taubar = pow(2.22044604925031e-16, 2.0 / 3.0);
  double mu = 0.1;
  double gamma = 0.0;
  double tmp = 0.;
  double delta = 0.;
  double deltaprev = 0.;
  double normj;
  double lambda_hi;
  double lambda_lo;
  if (n == 1) {
    delta = (taubar * fabs(A[0])) - A[0];
    if (delta > 0.0)
      E[0] = delta;
    else
      E[0] = 0.;
    if (A[0] == 0.0)
      E[0] = taubar;
    A[0] = sqrt(A[0] + E[0]);
    P[0] = 0;
    return E[0];
  }
  for (i = 0; i < n; i++) {
    P[i] = i;
    E[i] = 0.0;
  }
  for (i = 0; i < n; i++) {
    tmp = fabs(A[(((i) * ((i) + 1)) / 2 + (i))]);
    if (tmp > gamma)
      gamma = tmp;
    if (A[(((i) * ((i) + 1)) / 2 + (i))] < 0.0)
      phaseone = 0;
  }
  j = 0;
  while ((j < n) && phaseone) {
    double tmp_max = A[(((j) * ((j) + 1)) / 2 + (j))];
    double tmp_min = A[(((j) * ((j) + 1)) / 2 + (j))];
    int id = j;
    for (i = j + 1; i < n; i++) {
      if (tmp_max < A[(((i) * ((i) + 1)) / 2 + (i))]) {
        tmp_max = A[(((i) * ((i) + 1)) / 2 + (i))];
        id = i;
      }
      if (tmp_min > A[(((i) * ((i) + 1)) / 2 + (i))])
        tmp_min = A[(((i) * ((i) + 1)) / 2 + (i))];
    }
    if (tmp_max < taubar * gamma || tmp_min < -mu * tmp_max) {
      phaseone = 0;
      break;
    } else {
      if (id != j) {
        switch_row_and_colMAT(A, n, id, j);
        switch_row_and_colVEC(P, id, j);
      }
      tmp_min = 0.0;
      for (i = j + 1; i < n; i++) {
        tmp = A[(((i) * ((i) + 1)) / 2 + (i))] - A[(((i) * ((i) + 1)) / 2 + (j))] * A[(((i) * ((i) + 1)) / 2 + (j))] / A[(((j) * ((j) + 1)) / 2 + (j))];
        if (tmp_min > tmp)
          tmp_min = tmp;
      }
      if (tmp_min < -mu * gamma) {
        phaseone = 0;
        break;
      } else {
        jthIteration(A, n, j);
        j++;
      }
    }
  }
  if (!phaseone && (j == (n - 1))) {
    delta = -A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] + fmax(tau * A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] / (tau - 1.), taubar * gamma);
    A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] += delta;
    A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] = sqrt(A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))]);
    E[n - 1] = delta;
    deltaprev = delta;
  }
  if (!phaseone && (j < (n - 1))) {
    k = j - 1;
    for (i = k + 1; i < n; i++) {
      g[i] = A[(((i) * ((i) + 1)) / 2 + (i))];
      for (j = k + 1; j <= i - 1; j++) {
        g[i] -= fabs(A[(((i) * ((i) + 1)) / 2 + (j))]);
      }
      for (j = i + 1; j < n; j++) {
        g[i] -= fabs(A[(((j) * ((j) + 1)) / 2 + (i))]);
      }
    }
    for (j = k + 1; j < n - 2; j++) {
      int id = j;
      tmp = g[id];
      for (i = j + 1; i < n; i++) {
        if (tmp < g[i]) {
          tmp = g[i];
          id = i;
        }
      }
      if (id != j) {
        switch_row_and_colMAT(A, n, id, j);
        switch_row_and_colVEC(P, id, j);
        tmp = g[id];
        g[id] = g[j];
        g[j] = tmp;
      }
      normj = 0.;
      for (i = j + 1; i < n; i++) {
        normj += fabs(A[(((i) * ((i) + 1)) / 2 + (j))]);
      }
      delta = fmax(0.0, fmax(fmax(normj, taubar * gamma) - A[(((j) * ((j) + 1)) / 2 + (j))], deltaprev));
      if (delta > 0) {
        A[(((j) * ((j) + 1)) / 2 + (j))] += delta;
        deltaprev = delta;
        E[j] = delta;
      }
      if (A[(((j) * ((j) + 1)) / 2 + (j))] != normj) {
        tmp = 1.0 - normj / A[(((j) * ((j) + 1)) / 2 + (j))];
        for (i = j + 1; i < n; i++) {
          g[i] += fabs(A[(((i) * ((i) + 1)) / 2 + (j))]) * tmp;
        }
      }
      jthIteration(A, n, j);
    }
    tmp = sqrt((A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))] - A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))]) * (A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))] - A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))]) + 4.0 * A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 1))] * A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 1))]);
    lambda_hi = ((A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))] + A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))]) + tmp) * 0.5;
    lambda_lo = ((A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))] + A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))]) - tmp) * 0.5;
    delta = fmax(fmax(0.0, -lambda_lo + fmax(tau * (lambda_hi - lambda_lo) / (1.0 - tau), taubar * gamma)), deltaprev);
    if (delta > 0) {
      A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))] += delta;
      A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] += delta;
      deltaprev = delta;
      E[n - 2] = delta;
      E[n - 1] = delta;
    }
    A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))] = sqrt(A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))]);
    A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 1))] /= A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 2))];
    A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] = sqrt(A[(((n - 1) * ((n - 1) + 1)) / 2 + (n - 1))] - A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 1))] * A[(((n - 2) * ((n - 2) + 1)) / 2 + (n - 1))]);
  }
  return deltaprev;
}
```