user: 这段汇编代码用C语言表示是什么样的：

```asm
<jacobi_decompose>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xa0,%rsp
  mov    %rdi,-0x78(%rbp)
  mov    %rsi,-0x80(%rbp)
  mov    %rdx,-0x88(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x3,-0x54(%rbp)
  movl   $0x0,-0x64(%rbp)
  movl   $0x0,-0x58(%rbp)
  movl   $0x0,-0x60(%rbp)
  jmp    L178
L285:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x60(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x60(%rbp),%eax
  cltq
  mov    %edx,-0x20(%rbp,%rax,4)
  mov    -0x60(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x5c(%rbp)
  jmp    L568
L68:
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x5c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd -0x50(%rbp),%xmm0
  jbe    L460
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x5c(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x5c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
L460:
  addl   $0x1,-0x5c(%rbp)
L568:
  mov    -0x5c(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L68
  addl   $0x1,-0x60(%rbp)
L178:
  mov    -0x60(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L285
  movl   $0x0,-0x60(%rbp)
  jmp    L411
L457:
  movl   $0x0,-0x5c(%rbp)
  jmp    L114
L265:
  mov    -0x60(%rbp),%eax
  cmp    -0x5c(%rbp),%eax
  jne    L409
  movsd  D181(%rip),%xmm0
  jmp    L312
L409:
  pxor   %xmm0,%xmm0
L312:
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0x5c(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  addl   $0x1,-0x5c(%rbp)
L114:
  mov    -0x5c(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L265
  addl   $0x1,-0x60(%rbp)
L411:
  mov    -0x60(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L457
  movl   $0x0,-0x60(%rbp)
  jmp    L153
L453:
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x60(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,(%rdx)
  mov    -0x60(%rbp),%eax
  cltq
  movl   $0x1,-0x14(%rbp,%rax,4)
  movl   $0x0,-0x5c(%rbp)
  jmp    L309
L116:
  mov    -0x5c(%rbp),%eax
  cmp    -0x60(%rbp),%eax
  je     L461
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x5c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L439
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm0
  je     L461
  jmp    L439
L461:
  addl   $0x1,-0x5c(%rbp)
L309:
  mov    -0x5c(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L116
  jmp    L49
L439:
  nop
L49:
  mov    -0x5c(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jne    L378
  subl   $0x1,-0x64(%rbp)
  mov    -0x60(%rbp),%eax
  cltq
  movl   $0x0,-0x14(%rbp,%rax,4)
L378:
  addl   $0x1,-0x60(%rbp)
L153:
  mov    -0x60(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L453
  mov    -0x54(%rbp),%eax
  add    %eax,-0x64(%rbp)
  jmp    L480
L434:
  addl   $0x1,-0x58(%rbp)
  mov    -0x20(%rbp),%edx
  mov    -0x78(%rbp),%rax
  movslq %edx,%rdx
  movsd  (%rax,%rdx,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movl   $0x0,-0x68(%rbp)
  movl   $0x1,-0x60(%rbp)
  jmp    L280
L301:
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  comisd -0x50(%rbp),%xmm0
  jbe    L110
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x60(%rbp),%eax
  mov    %eax,-0x68(%rbp)
L110:
  addl   $0x1,-0x60(%rbp)
L280:
  mov    -0x54(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x60(%rbp)
  jl     L301
  mov    -0x68(%rbp),%eax
  mov    %eax,-0x70(%rbp)
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  mov    %eax,-0x6c(%rbp)
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x50(%rbp),%xmm0
  jp     L62
  pxor   %xmm0,%xmm0
  ucomisd -0x50(%rbp),%xmm0
  je     L169
L62:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x70(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  D57(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  fldl   -0xa0(%rbp)
  fstpt  -0xa0(%rbp)
  movsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x38(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,-0x90(%rbp)
  fldl   -0x90(%rbp)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fldt   -0xa0(%rbp)
  faddp  %st,%st(1)
  fstpl  -0x40(%rbp)
  movsd  -0x50(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x40(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,-0xa0(%rbp)
  fldl   -0xa0(%rbp)
  lea    -0x10(%rsp),%rsp
  fstpt  (%rsp)
  call   <sqrtl@plt>
  add    $0x10,%rsp
  fstpl  -0x48(%rbp)
  movsd  -0x40(%rbp),%xmm0
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x50(%rbp),%xmm0
  divsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  divsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  pxor   %xmm0,%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L215
  movsd  -0x48(%rbp),%xmm0
  movq   D5(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x40(%rbp),%xmm0
  movq   D5(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
L215:
  mov    -0x70(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x70(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x70(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x14(%rbp,%rax,4),%eax
  test   %eax,%eax
  je     L92
  movsd  -0x40(%rbp),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm0,%xmm1
  mov    -0x70(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D298(%rip),%xmm2
  andpd  %xmm0,%xmm2
  movsd  D335(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  comisd %xmm1,%xmm0
  jbe    L92
  mov    -0x70(%rbp),%eax
  cltq
  movl   $0x0,-0x14(%rbp,%rax,4)
  subl   $0x1,-0x64(%rbp)
  jmp    L588
L92:
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x14(%rbp,%rax,4),%eax
  test   %eax,%eax
  jne    L588
  movsd  -0x40(%rbp),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x70(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm1,%xmm2
  movsd  D335(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L588
  mov    -0x70(%rbp),%eax
  cltq
  movl   $0x1,-0x14(%rbp,%rax,4)
  addl   $0x1,-0x64(%rbp)
L588:
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x6c(%rbp),%eax
  cltq
  mov    -0x14(%rbp,%rax,4),%eax
  test   %eax,%eax
  je     L129
  movsd  -0x40(%rbp),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm0,%xmm1
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D298(%rip),%xmm2
  andpd  %xmm0,%xmm2
  movsd  D335(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  comisd %xmm1,%xmm0
  jbe    L129
  mov    -0x6c(%rbp),%eax
  cltq
  movl   $0x0,-0x14(%rbp,%rax,4)
  subl   $0x1,-0x64(%rbp)
  jmp    L46
L129:
  mov    -0x6c(%rbp),%eax
  cltq
  mov    -0x14(%rbp,%rax,4),%eax
  test   %eax,%eax
  jne    L46
  movsd  -0x40(%rbp),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x6c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm1,%xmm2
  movsd  D335(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L46
  mov    -0x6c(%rbp),%eax
  cltq
  movl   $0x1,-0x14(%rbp,%rax,4)
  addl   $0x1,-0x64(%rbp)
L46:
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  movl   $0x0,-0x60(%rbp)
  jmp    L308
L141:
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  mulsd  -0x28(%rbp),%xmm1
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  subsd  %xmm1,%xmm0
  mov    -0x70(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  -0x48(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  addsd  %xmm1,%xmm0
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L566
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x70(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
L566:
  cmpl   $0x2,-0x60(%rbp)
  jg     L182
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L182
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x6c(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
L182:
  addl   $0x1,-0x60(%rbp)
L308:
  mov    -0x60(%rbp),%eax
  cmp    -0x70(%rbp),%eax
  jl     L141
  mov    -0x70(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x60(%rbp)
  jmp    L605
L550:
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  mulsd  -0x28(%rbp),%xmm1
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  subsd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  -0x48(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  addsd  %xmm1,%xmm0
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L183
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x60(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
L183:
  cmpl   $0x2,-0x60(%rbp)
  jg     L172
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L172
  mov    -0x60(%rbp),%eax
  cltq
  mov    -0x6c(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
L172:
  addl   $0x1,-0x60(%rbp)
L605:
  mov    -0x60(%rbp),%eax
  cmp    -0x6c(%rbp),%eax
  jl     L550
  mov    -0x6c(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x60(%rbp)
  jmp    L10
L528:
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  mulsd  -0x28(%rbp),%xmm1
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  subsd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  -0x48(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  addsd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L251
  mov    -0x70(%rbp),%eax
  cltq
  mov    -0x60(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
L251:
  cmpl   $0x2,-0x6c(%rbp)
  jg     L25
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movq   D298(%rip),%xmm1
  andpd  %xmm1,%xmm0
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x6c(%rbp),%eax
  cltq
  mov    -0x20(%rbp,%rax,4),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movq   D298(%rip),%xmm2
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm0
  jbe    L25
  mov    -0x6c(%rbp),%eax
  cltq
  mov    -0x60(%rbp),%edx
  mov    %edx,-0x20(%rbp,%rax,4)
L25:
  addl   $0x1,-0x60(%rbp)
L10:
  mov    -0x60(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L528
  movl   $0x0,-0x60(%rbp)
  jmp    L200
L611:
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  mov    -0x60(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  mulsd  -0x28(%rbp),%xmm1
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  subsd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  -0x48(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x88(%rbp),%rax
  add    %rax,%rdx
  addsd  %xmm1,%xmm0
  mov    -0x60(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  addl   $0x1,-0x60(%rbp)
L200:
  mov    -0x60(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L611
L480:
  cmpl   $0x0,-0x64(%rbp)
  jne    L434
  jmp    L380
L169:
  nop
L380:
  movl   $0x0,-0x70(%rbp)
  jmp    L82
L166:
  mov    -0x70(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x6c(%rbp)
  jmp    L202
L508:
  mov    -0x6c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x70(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x3,%rax
  mov    %rax,%rdx
  mov    -0x78(%rbp),%rax
  add    %rax,%rdx
  mov    -0x70(%rbp),%eax
  cltq
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x6c(%rbp),%eax
  cltq
  movsd  %xmm0,(%rdx,%rax,8)
  addl   $0x1,-0x6c(%rbp)
L202:
  mov    -0x6c(%rbp),%eax
  cmp    -0x54(%rbp),%eax
  jl     L508
  addl   $0x1,-0x70(%rbp)
L82:
  mov    -0x54(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x70(%rbp)
  jl     L166
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L272
  call   <__stack_chk_fail@plt>
L272:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D298
type: qword
name: parse_data
arguments: data_tag: D181
type: byte[8]
name: parse_data
arguments: data_tag: D57
type: f64
name: parse_data
arguments: data_tag: D5
type: byte[8]
name: parse_data
arguments: data_tag: D335
type: byte[8]

tool: D298: 9223372036854775807

tool: {"D181": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x3f]}

tool: D57: 0.5

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

tool: {"D335": [0x8d,0xed,0xb5,0xa0,0xf7,0xc6,0xb0,0x3e]}

assistant: ```c
void jacobi_decompose(double cov_matrix[][3], double *eigenvalues, double orth_matrix[][3]) {
  int i, j, k, l;
  int max_col[3];
  int changed[3];
  int n = 3;
  int max_row;
  int state = 0;
  double max, c, s, t, u, a;
  int count = 0;
  for (i = 0; i < n; i++) {
    max = 0;
    max_col[i] = i + 1;
    for (j = i + 1; j < n; j++) {
      if (fabs(cov_matrix[i][j]) > max) {
        max_col[i] = j;
        max = fabs(cov_matrix[i][j]);
      }
    }
  }
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
      orth_matrix[i][j] = (i == j) ? 1 : 0;
  for (i = 0; i < n; i++) {
    eigenvalues[i] = cov_matrix[i][i];
    changed[i] = 1;
    for (j = 0; j < n; j++)
      if (j != i && cov_matrix[i][j])
        break;
    if (j == n) {
      state--;
      changed[i] = 0;
    }
  }
  state += n;
  while (state) {
    count++;
    max = fabs(cov_matrix[0][max_col[0]]);
    max_row = 0;
    for (i = 1; i < n - 1; i++) {
      if (fabs(cov_matrix[i][max_col[i]]) > max) {
        max = fabs(cov_matrix[i][max_col[i]]);
        max_row = i;
      }
    }
    k = max_row;
    l = max_col[k];
    max = cov_matrix[k][l];
    if (max == 0)
      break;
    a = (eigenvalues[l] - eigenvalues[k]) * 0.5;
    t = fabsl(a) + sqrtl(max * max + a * a);
    s = sqrtl(max * max + t * t);
    c = t / s;
    s = max / s;
    t = max * max / t;
    if (a < 0) {
      s = -s;
      t = -t;
    }
    a = eigenvalues[k];
    eigenvalues[k] += -t;
    if (changed[k] && (fabs(-t) < 1e-6 * fabs(eigenvalues[k]))) {
      changed[k] = 0;
      state--;
    } else if (!changed[k] && (fabs(-t) > 1e-6 * fabs(eigenvalues[k]))) {
      changed[k] = 1;
      state++;
    };
    a = eigenvalues[l];
    eigenvalues[l] += t;
    if (changed[l] && (fabs(t) < 1e-6 * fabs(eigenvalues[l]))) {
      changed[l] = 0;
      state--;
    } else if (!changed[l] && (fabs(t) > 1e-6 * fabs(eigenvalues[l]))) {
      changed[l] = 1;
      state++;
    };
    cov_matrix[k][l] = 0;
    for (i = 0; i < k; i++) {
      t = cov_matrix[i][k];
      u = cov_matrix[i][l];
      cov_matrix[i][k] = t * c - s * u;
      cov_matrix[i][l] = s * t + c * u;
      if (1) {
        if (fabs(cov_matrix[i][k]) > fabs(cov_matrix[i][max_col[i]]))
          max_col[i] = k;
        if (i < 3 && fabs(cov_matrix[i][l]) > fabs(cov_matrix[i][max_col[i]]))
          max_col[i] = l;
      };
    }
    for (i = k + 1; i < l; i++) {
      t = cov_matrix[k][i];
      u = cov_matrix[i][l];
      cov_matrix[k][i] = t * c - s * u;
      cov_matrix[i][l] = s * t + c * u;
      if (1) {
        if (fabs(cov_matrix[k][i]) > fabs(cov_matrix[k][max_col[k]]))
          max_col[k] = i;
        if (i < 3 && fabs(cov_matrix[i][l]) > fabs(cov_matrix[i][max_col[i]]))
          max_col[i] = l;
      };
    }
    for (i = l + 1; i < n; i++) {
      t = cov_matrix[k][i];
      u = cov_matrix[l][i];
      cov_matrix[k][i] = t * c - s * u;
      cov_matrix[l][i] = s * t + c * u;
      if (1) {
        if (fabs(cov_matrix[k][i]) > fabs(cov_matrix[k][max_col[k]]))
          max_col[k] = i;
        if (l < 3 && fabs(cov_matrix[l][i]) > fabs(cov_matrix[l][max_col[l]]))
          max_col[l] = i;
      };
    }
    for (i = 0; i < n; i++) {
      t = orth_matrix[k][i];
      u = orth_matrix[l][i];
      orth_matrix[k][i] = t * c - s * u;
      orth_matrix[l][i] = s * t + c * u;
      if (0) {
        if (fabs(orth_matrix[k][i]) > fabs(orth_matrix[k][max_col[k]]))
          max_col[k] = i;
        if (l < 3 && fabs(orth_matrix[l][i]) > fabs(orth_matrix[l][max_col[l]]))
          max_col[l] = i;
      };
    }
  }
  for (k = 0; k < n - 1; k++) {
    for (l = k + 1; l < n; l++) {
      cov_matrix[k][l] = cov_matrix[l][k];
    }
  }
}
```