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

```asm
<jacobi>:
  endbr64
  push   %r15
  xor    %eax,%eax
  push   %r14
  push   %r13
  push   %r12
  mov    %rcx,%r12
  push   %rbp
  push   %rbx
  mov    %esi,%ebx
  sub    $0x108,%rsp
  mov    %rdi,0x20(%rsp)
  lea    D300(%rip),%rdi
  mov    %esi,0x30(%rsp)
  mov    %rdx,0x8(%rsp)
  mov    $0x35,%edx
  mov    %rcx,0x40(%rsp)
  mov    %esi,%ecx
  lea    D39(%rip),%rsi
  mov    %r8,0x48(%rsp)
  mov    $0x8,%r8d
  call   <save_calloc@plt>
  mov    $0x8,%r8d
  mov    %ebx,%ecx
  mov    $0x36,%edx
  cltq
  lea    D39(%rip),%rsi
  lea    D323(%rip),%rdi
  mov    %rax,0x88(%rsp)
  xor    %eax,%eax
  call   <save_calloc@plt>
  test   %ebx,%ebx
  mov    0x8(%rsp),%r11
  cltq
  mov    %rax,0x38(%rsp)
  jle    L209
  movsd  D274(%rip),%xmm7
  movslq %ebx,%rbp
  mov    %r11,%r13
  xor    %ebx,%ebx
  shl    $0x3,%rbp
  movsd  %xmm7,0x8(%rsp)
L356:
  mov    (%r12,%rbx,1),%rcx
  mov    %rbp,%rdx
  xor    %esi,%esi
  mov    %rcx,%rdi
  call   <memset@plt>
  movsd  0x8(%rsp),%xmm7
  movsd  %xmm7,(%rax,%rbx,1)
  add    $0x8,%rbx
  cmp    %rbp,%rbx
  jne    L356
  mov    0x20(%rsp),%rcx
  mov    0x38(%rsp),%rdi
  mov    %r13,%r11
  xor    %eax,%eax
  mov    0x88(%rsp),%rsi
L165:
  mov    (%rcx,%rax,1),%rdx
  movsd  (%rdx,%rax,1),%xmm0
  movsd  %xmm0,(%r11,%rax,1)
  movsd  %xmm0,(%rsi,%rax,1)
  movq   $0x0,(%rdi,%rax,1)
  add    $0x8,%rax
  cmp    %rbp,%rax
  jne    L165
L209:
  mov    0x30(%rsp),%ebx
  mov    0x48(%rsp),%rax
  movl   $0x1,0x8(%rsp)
  mov    0x88(%rsp),%r8
  mov    0x38(%rsp),%r15
  movl   $0x0,(%rax)
  mov    %ebx,%eax
  lea    -0x1(%rbx),%r9d
  movq   D28(%rip),%xmm2
  imul   %ebx,%eax
  lea    0x10(%r15),%rsi
  mov    %r9d,0x90(%rsp)
  movq   D309(%rip),%xmm8
  mov    %eax,0xa4(%rsp)
  mov    %r9d,%eax
  lea    0x0(,%rax,8),%rdx
  mov    0x40(%rsp),%rax
  lea    0x8(%rax,%rdx,1),%r10
  lea    0x10(%r8),%rax
  cmp    %rax,%r15
  setae  %cl
  cmp    %r8,%rsi
  setbe  %al
  mov    %ecx,%edi
  or     %eax,%edi
  lea    0x8(%r8),%rax
  cmp    %rax,%r11
  setne  %al
  cmp    $0x1,%r9d
  seta   %cl
  and    %ecx,%eax
  and    %eax,%edi
  lea    0x10(%r11),%rax
  cmp    %rax,%r15
  setae  %al
  cmp    %r11,%rsi
  setbe  %cl
  or     %ecx,%eax
  and    %eax,%edi
  mov    %ebx,%eax
  and    $0xfffffffe,%ebx
  shr    %eax
  mov    %ebx,0xa0(%rsp)
  sub    $0x1,%eax
  mov    %dil,0x97(%rsp)
  add    $0x1,%rax
  shl    $0x4,%rax
  add    %r8,%rax
  mov    %rax,0x98(%rsp)
  movslq %ebx,%rax
  shl    $0x3,%rax
  lea    (%r8,%rax,1),%rbx
  mov    %rbx,0x80(%rsp)
  lea    (%r15,%rax,1),%rbx
  add    %r11,%rax
  mov    %rax,0x70(%rsp)
  lea    0x8(%rdx,%r8,1),%rax
  mov    %r11,%r8
  mov    %r10,%r11
  mov    %rbx,0x78(%rsp)
  mov    %rax,0xa8(%rsp)
L162:
  mov    0x90(%rsp),%eax
  test   %eax,%eax
  jle    L551
  mov    0x30(%rsp),%ebx
  pxor   %xmm5,%xmm5
  mov    0x90(%rsp),%r9d
  mov    $0x1,%r10d
  movapd D41(%rip),%xmm4
  mov    0x20(%rsp),%rbp
  movapd %xmm5,%xmm0
  lea    -0x2(%rbx),%eax
  lea    0x2(%rax),%rdi
  mov    %rdi,0x68(%rsp)
  nopl   0x0(%rax,%rax,1)
L161:
  mov    %r10d,%eax
  cmp    %r10d,%ebx
  jle    L376
  mov    -0x8(%rbp,%r10,8),%r12
  cmp    $0x1,%r9d
  je     L566
  mov    %r9d,%edx
  lea    (%r12,%r10,8),%rcx
  shr    %edx
  lea    -0x1(%rdx),%esi
  lea    0x10(%rcx),%rdx
  shl    $0x4,%rsi
  add    %rdx,%rsi
  jmp    L181
  nopl   0x0(%rax)
L98:
  add    $0x10,%rdx
L181:
  movupd (%rcx),%xmm3
  mov    %rdx,%rcx
  andpd  %xmm4,%xmm3
  addsd  %xmm3,%xmm0
  unpckhpd %xmm3,%xmm3
  addsd  %xmm3,%xmm0
  cmp    %rsi,%rdx
  jne    L98
  mov    %r9d,%edx
  and    $0xfffffffe,%edx
  add    %edx,%eax
  cmp    %r9d,%edx
  je     L376
L566:
  cltq
  movsd  (%r12,%rax,8),%xmm1
  andpd  %xmm2,%xmm1
  addsd  %xmm1,%xmm0
L376:
  add    $0x1,%r10
  sub    $0x1,%r9d
  cmp    %rdi,%r10
  jne    L161
  movsd  D249(%rip),%xmm3
  movapd %xmm0,%xmm1
  andpd  %xmm2,%xmm1
  comisd %xmm1,%xmm3
  ja     L551
  cmpl   $0x3,0x8(%rsp)
  movapd %xmm5,%xmm4
  jle    L634
L73:
  movq   $0x1,0x18(%rsp)
  xor    %r9d,%r9d
  mov    %r8,%r10
  movsd  D244(%rip),%xmm3
  movq   D309(%rip),%xmm7
  mov    %r9,%r12
  nopl   (%rax)
L537:
  mov    0x18(%rsp),%rax
  mov    %eax,%ebx
  cmp    %eax,0x30(%rsp)
  jle    L717
  mov    0x38(%rsp),%rax
  mov    0x90(%rsp),%edi
  mov    0x20(%rsp),%rsi
  movsd  D231(%rip),%xmm6
  movsd  D274(%rip),%xmm9
  add    %r12,%rax
  cmp    %ebx,%edi
  mov    %rax,0x28(%rsp)
  mov    %ebx,%eax
  mov    (%rsi,%r12,1),%r13
  cmovle %edi,%eax
  sub    %ebx,%edi
  lea    0x10(%r13,%r12,1),%r14
  mov    %edi,%edx
  mov    %eax,0x10(%rsp)
  lea    0x8(%r12),%rax
  mov    %rax,0x60(%rsp)
  mov    %rax,%rbp
  mov    %ebx,%eax
  sub    $0x1,%eax
  mov    %eax,0x34(%rsp)
  lea    -0x2(%rbx),%eax
  lea    0x8(%rsi,%rax,8),%r15
  jmp    L516
  nopl   0x0(%rax,%rax,1)
L83:
  movsd  (%r8,%rbp,1),%xmm1
  andpd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm13,%xmm0
  comisd %xmm12,%xmm0
  jbe    L137
  movq   $0x0,-0x8(%r14)
  lea    0x8(%rbp),%rcx
L657:
  mov    %rcx,%rbp
  add    $0x8,%r14
  sub    $0x1,%edx
  cmp    %ebx,0x10(%rsp)
  jl     L627
L516:
  movsd  -0x8(%r14),%xmm11
  add    $0x1,%ebx
  cmpl   $0x4,0x8(%rsp)
  movapd %xmm11,%xmm10
  andpd  %xmm2,%xmm10
  movapd %xmm10,%xmm12
  mulsd  %xmm3,%xmm12
  jle    L137
  movsd  D231(%rip),%xmm13
  movsd  (%r10),%xmm0
  andpd  %xmm2,%xmm0
  mulsd  %xmm13,%xmm0
  comisd %xmm12,%xmm0
  ja     L83
L137:
  comisd %xmm4,%xmm10
  lea    0x8(%rbp),%rcx
  jbe    L657
  movsd  (%r8,%rbp,1),%xmm0
  subsd  (%r10),%xmm0
  movapd %xmm0,%xmm1
  andpd  %xmm2,%xmm1
  mulsd  %xmm6,%xmm1
  comisd %xmm12,%xmm1
  jbe    L67
  movsd  D274(%rip),%xmm10
  movapd %xmm11,%xmm12
  divsd  %xmm0,%xmm12
L17:
  movapd %xmm12,%xmm0
  mulsd  %xmm12,%xmm0
  addsd  %xmm10,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L308
  sqrtsd %xmm0,%xmm0
L203:
  movapd %xmm10,%xmm13
  mov    0x28(%rsp),%rax
  movapd %xmm12,%xmm1
  mov    0x34(%rsp),%esi
  mulsd  %xmm12,%xmm11
  mov    0x20(%rsp),%rcx
  divsd  %xmm0,%xmm13
  movsd  (%rax),%xmm0
  subsd  %xmm11,%xmm0
  movsd  %xmm0,(%rax)
  mov    0x38(%rsp),%rax
  add    %rbp,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rax)
  movsd  (%r10),%xmm0
  subsd  %xmm11,%xmm0
  movsd  %xmm0,(%r10)
  addsd  (%r8,%rbp,1),%xmm11
  movsd  %xmm11,(%r8,%rbp,1)
  movq   $0x0,-0x8(%r14)
  mulsd  %xmm13,%xmm1
  addsd  %xmm10,%xmm13
  movapd %xmm1,%xmm10
  divsd  %xmm13,%xmm10
  test   %esi,%esi
  je     L510
L384:
  mov    (%rcx),%rax
  movapd %xmm10,%xmm11
  add    $0x8,%rcx
  lea    (%rax,%r12,1),%rsi
  add    %rbp,%rax
  movsd  (%rsi),%xmm0
  movsd  (%rax),%xmm12
  mulsd  %xmm0,%xmm11
  movapd %xmm0,%xmm13
  addsd  %xmm12,%xmm11
  mulsd  %xmm1,%xmm11
  subsd  %xmm11,%xmm13
  movapd %xmm10,%xmm11
  mulsd  %xmm12,%xmm11
  movsd  %xmm13,(%rsi)
  subsd  %xmm11,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm12,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %rcx,%r15
  jne    L384
L510:
  lea    0x8(%rbp),%rcx
  cmp    %ebx,0x30(%rsp)
  jle    L387
  mov    0x20(%rsp),%rax
  lea    0x8(%rbp),%rcx
  mov    (%rax,%rbp,1),%rdi
  lea    0x18(%rdi,%rbp,1),%rax
  lea    (%rdi,%rcx,1),%rsi
  cmp    %rax,%r14
  lea    0x10(%r14),%rax
  setae  %r9b
  cmp    %rax,%rsi
  setae  %al
  or     %r9b,%al
  je     L546
  cmp    $0x1,%edx
  je     L546
  mov    %edx,%r9d
  movapd %xmm10,%xmm12
  movapd %xmm1,%xmm11
  xor    %eax,%eax
  shr    %r9d
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  shl    $0x4,%r9
  nopw   0x0(%rax,%rax,1)
L224:
  movupd (%r14,%rax,1),%xmm0
  movupd (%rsi,%rax,1),%xmm13
  movapd %xmm0,%xmm14
  movapd %xmm0,%xmm15
  mulpd  %xmm12,%xmm14
  addpd  %xmm13,%xmm14
  mulpd  %xmm11,%xmm14
  subpd  %xmm14,%xmm15
  movapd %xmm13,%xmm14
  mulpd  %xmm12,%xmm14
  movups %xmm15,(%r14,%rax,1)
  subpd  %xmm14,%xmm0
  mulpd  %xmm11,%xmm0
  addpd  %xmm13,%xmm0
  movups %xmm0,(%rsi,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r9
  jne    L224
  mov    %edx,%esi
  and    $0xfffffffe,%esi
  lea    (%rsi,%rbx,1),%eax
  cmp    %esi,%edx
  je     L387
  cltq
  movapd %xmm10,%xmm11
  shl    $0x3,%rax
  lea    0x0(%r13,%rax,1),%rsi
  add    %rdi,%rax
  movsd  (%rsi),%xmm0
  movsd  (%rax),%xmm12
  mulsd  %xmm0,%xmm11
  movapd %xmm0,%xmm13
  addsd  %xmm12,%xmm11
  mulsd  %xmm1,%xmm11
  subsd  %xmm11,%xmm13
  movapd %xmm10,%xmm11
  mulsd  %xmm12,%xmm11
  movsd  %xmm13,(%rsi)
  subsd  %xmm11,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm12,%xmm0
  movsd  %xmm0,(%rax)
L387:
  mov    0x40(%rsp),%rsi
  nopl   0x0(%rax)
L418:
  mov    (%rsi),%rax
  movapd %xmm10,%xmm11
  add    $0x8,%rsi
  lea    (%rax,%r12,1),%rdi
  add    %rbp,%rax
  movsd  (%rdi),%xmm0
  movsd  (%rax),%xmm12
  mulsd  %xmm0,%xmm11
  movapd %xmm0,%xmm13
  addsd  %xmm12,%xmm11
  mulsd  %xmm1,%xmm11
  subsd  %xmm11,%xmm13
  movapd %xmm10,%xmm11
  mulsd  %xmm12,%xmm11
  movsd  %xmm13,(%rdi)
  subsd  %xmm11,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm12,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %r11,%rsi
  jne    L418
  mov    0x48(%rsp),%rax
  mov    %rcx,%rbp
  add    $0x8,%r14
  sub    $0x1,%edx
  addl   $0x1,(%rax)
  cmp    %ebx,0x10(%rsp)
  jge    L516
L627:
  cmp    %ebx,0x30(%rsp)
  jle    L163
  mov    0x38(%rsp),%rax
  movslq %ebx,%rbp
  mov    0x90(%rsp),%edi
  mov    %r15,0x58(%rsp)
  shl    $0x3,%rbp
  movsd  D231(%rip),%xmm6
  mov    0x20(%rsp),%r15
  sub    $0x8,%rax
  lea    0x8(%rbp),%rsi
  sub    %ebx,%edi
  sub    %r13,%rax
  lea    0x0(%r13,%rsi,1),%r14
  mov    %rax,0x50(%rsp)
  jmp    L22
  nopw   0x0(%rax,%rax,1)
L263:
  movsd  (%r8,%rbp,1),%xmm1
  andpd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm12,%xmm0
  comisd %xmm11,%xmm0
  jbe    L617
  movq   $0x0,-0x8(%r14)
L223:
  mov    %rsi,%rbp
  add    $0x8,%r14
  sub    $0x1,%edi
  cmp    %ebx,0x30(%rsp)
  je     L163
L659:
  add    $0x8,%rsi
L22:
  movsd  -0x8(%r14),%xmm10
  mov    %ebx,%r9d
  add    $0x1,%ebx
  cmpl   $0x4,0x8(%rsp)
  movapd %xmm10,%xmm9
  andpd  %xmm2,%xmm9
  movapd %xmm9,%xmm11
  mulsd  %xmm3,%xmm11
  jle    L617
  movsd  D231(%rip),%xmm12
  movsd  (%r10),%xmm0
  andpd  %xmm2,%xmm0
  mulsd  %xmm12,%xmm0
  comisd %xmm11,%xmm0
  ja     L263
L617:
  comisd %xmm4,%xmm9
  jbe    L223
  movsd  (%r8,%rbp,1),%xmm0
  subsd  (%r10),%xmm0
  movapd %xmm0,%xmm1
  andpd  %xmm2,%xmm1
  mulsd  %xmm6,%xmm1
  comisd %xmm11,%xmm1
  jbe    L393
  movsd  D274(%rip),%xmm9
  movapd %xmm10,%xmm11
  divsd  %xmm0,%xmm11
L661:
  movapd %xmm11,%xmm0
  mulsd  %xmm11,%xmm0
  addsd  %xmm9,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L550
  sqrtsd %xmm0,%xmm0
L319:
  movapd %xmm9,%xmm12
  mov    0x28(%rsp),%rax
  mov    0x34(%rsp),%ecx
  mov    %r15,%rdx
  divsd  %xmm0,%xmm12
  movsd  (%rax),%xmm0
  movapd %xmm12,%xmm1
  addsd  %xmm9,%xmm12
  mulsd  %xmm11,%xmm1
  mulsd  %xmm10,%xmm11
  movapd %xmm1,%xmm9
  subsd  %xmm11,%xmm0
  divsd  %xmm12,%xmm9
  movsd  %xmm0,(%rax)
  mov    0x50(%rsp),%rax
  add    %r14,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rax)
  movsd  (%r10),%xmm0
  subsd  %xmm11,%xmm0
  movsd  %xmm0,(%r10)
  addsd  (%r8,%rbp,1),%xmm11
  movsd  %xmm11,(%r8,%rbp,1)
  movq   $0x0,-0x8(%r14)
  test   %ecx,%ecx
  je     L362
  mov    %rsi,0x10(%rsp)
  mov    0x58(%rsp),%rsi
  nop
L375:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%r12,1),%rcx
  add    %rbp,%rax
  movsd  (%rcx),%xmm0
  movsd  (%rax),%xmm11
  movapd %xmm0,%xmm10
  movapd %xmm0,%xmm12
  mulsd  %xmm9,%xmm10
  addsd  %xmm11,%xmm10
  mulsd  %xmm1,%xmm10
  subsd  %xmm10,%xmm12
  movapd %xmm11,%xmm10
  mulsd  %xmm9,%xmm10
  movsd  %xmm12,(%rcx)
  subsd  %xmm10,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %rdx,%rsi
  jne    L375
  mov    0x10(%rsp),%rsi
L362:
  mov    0x18(%rsp),%rax
  nopl   (%rax)
L45:
  movsd  0x0(%r13,%rax,8),%xmm0
  mov    (%r15,%rax,8),%rdx
  movapd %xmm0,%xmm10
  add    %rbp,%rdx
  movapd %xmm0,%xmm12
  mulsd  %xmm9,%xmm10
  movsd  (%rdx),%xmm11
  addsd  %xmm11,%xmm10
  mulsd  %xmm1,%xmm10
  subsd  %xmm10,%xmm12
  movapd %xmm11,%xmm10
  mulsd  %xmm9,%xmm10
  movsd  %xmm12,0x0(%r13,%rax,8)
  add    $0x1,%rax
  subsd  %xmm10,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rdx)
  cmp    %eax,%r9d
  jg     L45
  cmp    %ebx,0x30(%rsp)
  jle    L32
  mov    (%r15,%rbp,1),%rcx
  lea    0x18(%rcx,%rbp,1),%rax
  lea    (%rcx,%rsi,1),%rdx
  cmp    %rax,%r14
  lea    0x10(%r14),%rax
  setae  %r9b
  cmp    %rax,%rdx
  setae  %al
  or     %r9b,%al
  je     L636
  cmp    $0x1,%edi
  je     L636
  mov    %edi,%r9d
  movapd %xmm9,%xmm12
  movapd %xmm1,%xmm11
  xor    %eax,%eax
  shr    %r9d
  unpcklpd %xmm12,%xmm12
  unpcklpd %xmm11,%xmm11
  shl    $0x4,%r9
  nop
L152:
  movupd (%r14,%rax,1),%xmm0
  movupd (%rdx,%rax,1),%xmm13
  movapd %xmm0,%xmm10
  movapd %xmm0,%xmm14
  mulpd  %xmm12,%xmm10
  addpd  %xmm13,%xmm10
  mulpd  %xmm11,%xmm10
  subpd  %xmm10,%xmm14
  movapd %xmm13,%xmm10
  mulpd  %xmm12,%xmm10
  movups %xmm14,(%r14,%rax,1)
  subpd  %xmm10,%xmm0
  mulpd  %xmm11,%xmm0
  addpd  %xmm13,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r9,%rax
  jne    L152
  mov    %edi,%edx
  and    $0xfffffffe,%edx
  lea    (%rdx,%rbx,1),%eax
  cmp    %edx,%edi
  je     L32
  cltq
  movapd %xmm9,%xmm10
  shl    $0x3,%rax
  lea    0x0(%r13,%rax,1),%rdx
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  (%rax),%xmm11
  mulsd  %xmm0,%xmm10
  movapd %xmm0,%xmm12
  addsd  %xmm11,%xmm10
  mulsd  %xmm1,%xmm10
  subsd  %xmm10,%xmm12
  movapd %xmm9,%xmm10
  mulsd  %xmm11,%xmm10
  movsd  %xmm12,(%rdx)
  subsd  %xmm10,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rax)
L32:
  mov    0x40(%rsp),%rdx
  nopl   0x0(%rax)
L127:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  lea    (%rax,%r12,1),%rcx
  add    %rbp,%rax
  movsd  (%rcx),%xmm0
  movsd  (%rax),%xmm11
  movapd %xmm0,%xmm10
  movapd %xmm0,%xmm12
  mulsd  %xmm9,%xmm10
  addsd  %xmm11,%xmm10
  mulsd  %xmm1,%xmm10
  subsd  %xmm10,%xmm12
  movapd %xmm11,%xmm10
  mulsd  %xmm9,%xmm10
  movsd  %xmm12,(%rcx)
  subsd  %xmm10,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rax)
  cmp    %rdx,%r11
  jne    L127
  mov    0x48(%rsp),%rax
  mov    %rsi,%rbp
  add    $0x8,%r14
  sub    $0x1,%edi
  addl   $0x1,(%rax)
  cmp    %ebx,0x30(%rsp)
  jne    L659
  nopw   0x0(%rax,%rax,1)
L163:
  addq   $0x1,0x18(%rsp)
  mov    0x60(%rsp),%r12
  add    $0x8,%r10
  mov    0x18(%rsp),%rax
  cmp    0x68(%rsp),%rax
  jne    L537
  mov    0x30(%rsp),%edx
  test   %edx,%edx
  jle    L450
  mov    0x88(%rsp),%rbx
  cmpb   $0x0,0x97(%rsp)
  mov    %rbx,%rax
  je     L1
  mov    %r8,%rcx
  mov    0x38(%rsp),%rdx
  mov    0x98(%rsp),%rsi
  pxor   %xmm1,%xmm1
  sub    %rbx,%rcx
  nopl   0x0(%rax,%rax,1)
L271:
  movupd (%rdx),%xmm0
  movupd (%rax),%xmm7
  add    $0x10,%rdx
  addpd  %xmm7,%xmm0
  movups %xmm0,(%rax)
  movups %xmm0,(%rcx,%rax,1)
  add    $0x10,%rax
  movups %xmm1,-0x10(%rdx)
  cmp    %rsi,%rax
  jne    L271
  mov    0xa0(%rsp),%ebx
  cmp    %ebx,0x30(%rsp)
  je     L450
  mov    0x80(%rsp),%rbx
  mov    0x78(%rsp),%rax
  movsd  (%rax),%xmm0
  addsd  (%rbx),%xmm0
  movsd  %xmm0,(%rbx)
  mov    0x70(%rsp),%rbx
  movsd  %xmm0,(%rbx)
  movq   $0x0,(%rax)
L450:
  addl   $0x1,0x8(%rsp)
  mov    0x8(%rsp),%eax
  cmp    $0x33,%eax
  jne    L162
  add    $0x108,%rsp
  lea    D181(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10d0 <jacobierror@plt>
  nopl   0x0(%rax,%rax,1)
L393:
  mulsd  D431(%rip),%xmm0
  movsd  D274(%rip),%xmm9
  movapd %xmm0,%xmm1
  divsd  %xmm10,%xmm1
  movapd %xmm1,%xmm0
  movapd %xmm1,%xmm11
  mulsd  %xmm1,%xmm0
  andpd  %xmm2,%xmm11
  addsd  %xmm9,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L569
  sqrtsd %xmm0,%xmm0
L256:
  addsd  %xmm11,%xmm0
  comisd %xmm1,%xmm5
  movapd %xmm9,%xmm11
  divsd  %xmm0,%xmm11
  jbe    L661
  xorpd  %xmm8,%xmm11
  jmp    L661
  nopw   0x0(%rax,%rax,1)
L67:
  mulsd  D431(%rip),%xmm0
  movapd %xmm9,%xmm10
  movapd %xmm0,%xmm1
  divsd  %xmm11,%xmm1
  movapd %xmm1,%xmm0
  movapd %xmm1,%xmm12
  mulsd  %xmm1,%xmm0
  andpd  %xmm2,%xmm12
  addsd  %xmm9,%xmm0
  ucomisd %xmm0,%xmm5
  ja     L572
  sqrtsd %xmm0,%xmm0
L298:
  addsd  %xmm12,%xmm0
  comisd %xmm1,%xmm5
  movapd %xmm9,%xmm12
  divsd  %xmm0,%xmm12
  jbe    L17
  xorpd  %xmm7,%xmm12
  jmp    L17
  cs nopw 0x0(%rax,%rax,1)
L636:
  mov    0x30(%rsp),%edx
  movslq %ebx,%rax
  nopw   0x0(%rax,%rax,1)
L331:
  movsd  0x0(%r13,%rax,8),%xmm0
  movapd %xmm9,%xmm10
  movsd  (%rcx,%rax,8),%xmm11
  mulsd  %xmm0,%xmm10
  movapd %xmm0,%xmm12
  addsd  %xmm11,%xmm10
  mulsd  %xmm1,%xmm10
  subsd  %xmm10,%xmm12
  movapd %xmm9,%xmm10
  mulsd  %xmm11,%xmm10
  movsd  %xmm12,0x0(%r13,%rax,8)
  subsd  %xmm10,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm11,%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%edx
  jg     L331
  jmp    L32
  nopl   0x0(%rax)
L546:
  mov    0x30(%rsp),%esi
  movslq %ebx,%rax
  nopw   0x0(%rax,%rax,1)
L633:
  movsd  0x0(%r13,%rax,8),%xmm0
  movapd %xmm10,%xmm11
  movsd  (%rdi,%rax,8),%xmm12
  mulsd  %xmm0,%xmm11
  movapd %xmm0,%xmm13
  addsd  %xmm12,%xmm11
  mulsd  %xmm1,%xmm11
  subsd  %xmm11,%xmm13
  movapd %xmm10,%xmm11
  mulsd  %xmm12,%xmm11
  movsd  %xmm13,0x0(%r13,%rax,8)
  subsd  %xmm11,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm12,%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%esi
  jg     L633
  jmp    L387
L717:
  lea    0x8(%r12),%rax
  mov    %rax,0x60(%rsp)
  jmp    L163
L1:
  mov    0x38(%rsp),%rsi
  mov    %r8,%rcx
  mov    0xa8(%rsp),%rdi
  sub    %rbx,%rcx
  sub    %rbx,%rsi
  nopl   0x0(%rax)
L623:
  lea    (%rsi,%rax,1),%rdx
  movsd  (%rdx),%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  movsd  %xmm0,(%rcx,%rax,1)
  add    $0x8,%rax
  movq   $0x0,(%rdx)
  cmp    %rax,%rdi
  jne    L623
  jmp    L450
L634:
  mulsd  D192(%rip),%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sdl 0xa4(%rsp),%xmm1
  movapd %xmm0,%xmm4
  divsd  %xmm1,%xmm4
  jmp    L73
L551:
  mov    0x38(%rsp),%rcx
  mov    $0x47,%edx
  lea    D39(%rip),%rsi
  xor    %eax,%eax
  lea    D323(%rip),%rdi
  call   <save_free@plt>
  mov    0x88(%rsp),%rcx
  xor    %eax,%eax
  add    $0x108,%rsp
  pop    %rbx
  mov    $0x48,%edx
  lea    D39(%rip),%rsi
  pop    %rbp
  lea    D300(%rip),%rdi
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10b0 <save_free@plt>
L550:
  mov    %rsi,0xe8(%rsp)
  mov    %r8,0xe0(%rsp)
  mov    %r10,0xd8(%rsp)
  mov    %edi,0xd0(%rsp)
  mov    %r11,0xc0(%rsp)
  mov    %r9d,0x10(%rsp)
  movsd  %xmm9,0xf0(%rsp)
  movsd  %xmm4,0xc8(%rsp)
  movsd  %xmm10,0xb8(%rsp)
  movsd  %xmm11,0xb0(%rsp)
  call   <sqrt@plt>
  mov    D244(%rip),%rax
  movq   D309(%rip),%xmm8
  pxor   %xmm5,%xmm5
  movsd  0xf0(%rsp),%xmm9
  mov    0xe8(%rsp),%rsi
  movq   %rax,%xmm3
  mov    D231(%rip),%rax
  mov    0xe0(%rsp),%r8
  movapd %xmm8,%xmm7
  mov    0xd8(%rsp),%r10
  mov    0xd0(%rsp),%edi
  movsd  0xc8(%rsp),%xmm4
  mov    0x10(%rsp),%r9d
  movq   %rax,%xmm6
  mov    0xc0(%rsp),%r11
  movq   D28(%rip),%xmm2
  movsd  0xb8(%rsp),%xmm10
  movsd  0xb0(%rsp),%xmm11
  jmp    L319
L308:
  mov    %r8,0xd0(%rsp)
  mov    %r10,0xc8(%rsp)
  mov    %edx,0xc0(%rsp)
  mov    %r11,0xb0(%rsp)
  movsd  %xmm10,0xd8(%rsp)
  movsd  %xmm4,0xb8(%rsp)
  movsd  %xmm12,0x58(%rsp)
  movsd  %xmm11,0x50(%rsp)
  call   <sqrt@plt>
  mov    D244(%rip),%rax
  pxor   %xmm5,%xmm5
  movq   D309(%rip),%xmm8
  mov    0xd0(%rsp),%r8
  mov    0xc8(%rsp),%r10
  movq   %rax,%xmm3
  mov    D274(%rip),%rax
  movsd  0xd8(%rsp),%xmm10
  movapd %xmm8,%xmm7
  mov    0xc0(%rsp),%edx
  mov    0xb0(%rsp),%r11
  movq   %rax,%xmm9
  mov    D231(%rip),%rax
  movsd  0xb8(%rsp),%xmm4
  movq   D28(%rip),%xmm2
  movsd  0x58(%rsp),%xmm12
  movsd  0x50(%rsp),%xmm11
  movq   %rax,%xmm6
  jmp    L203
L569:
  mov    %rsi,0xf0(%rsp)
  mov    %r8,0xe8(%rsp)
  mov    %r10,0xe0(%rsp)
  mov    %edi,0xd8(%rsp)
  mov    %r11,0xc8(%rsp)
  mov    %r9d,0x10(%rsp)
  movsd  %xmm9,0xf8(%rsp)
  movsd  %xmm4,0xd0(%rsp)
  movsd  %xmm10,0xc0(%rsp)
  movsd  %xmm1,0xb8(%rsp)
  movsd  %xmm11,0xb0(%rsp)
  call   <sqrt@plt>
  mov    D244(%rip),%rax
  movq   D309(%rip),%xmm8
  pxor   %xmm5,%xmm5
  movsd  0xf8(%rsp),%xmm9
  mov    0xf0(%rsp),%rsi
  movq   %rax,%xmm3
  mov    D231(%rip),%rax
  mov    0xe8(%rsp),%r8
  movapd %xmm8,%xmm7
  mov    0xe0(%rsp),%r10
  mov    0xd8(%rsp),%edi
  movsd  0xd0(%rsp),%xmm4
  mov    0x10(%rsp),%r9d
  movq   %rax,%xmm6
  mov    0xc8(%rsp),%r11
  movq   D28(%rip),%xmm2
  movsd  0xc0(%rsp),%xmm10
  movsd  0xb8(%rsp),%xmm1
  movsd  0xb0(%rsp),%xmm11
  jmp    L256
L572:
  mov    %r8,0xd8(%rsp)
  mov    %r10,0xd0(%rsp)
  mov    %edx,0xc8(%rsp)
  mov    %r11,0xb8(%rsp)
  movsd  %xmm9,0xe0(%rsp)
  movsd  %xmm4,0xc0(%rsp)
  movsd  %xmm1,0xb0(%rsp)
  movsd  %xmm12,0x58(%rsp)
  movsd  %xmm11,0x50(%rsp)
  call   <sqrt@plt>
  mov    D244(%rip),%rax
  pxor   %xmm5,%xmm5
  movq   D309(%rip),%xmm8
  mov    0xd8(%rsp),%r8
  mov    0xd0(%rsp),%r10
  movq   %rax,%xmm3
  mov    D274(%rip),%rax
  movsd  0xe0(%rsp),%xmm10
  movapd %xmm8,%xmm7
  mov    0xc8(%rsp),%edx
  mov    0xb8(%rsp),%r11
  movq   %rax,%xmm9
  mov    D231(%rip),%rax
  movsd  0xc0(%rsp),%xmm4
  movq   D28(%rip),%xmm2
  movsd  0x58(%rsp),%xmm12
  movsd  0xb0(%rsp),%xmm1
  movsd  0x50(%rsp),%xmm11
  movq   %rax,%xmm6
  jmp    L298
```

tool_calls: name: unpack_data
arguments: data_label: D300
datatype: string
name: unpack_data
arguments: data_label: D39
datatype: string
name: unpack_data
arguments: data_label: D323
datatype: string
name: unpack_data
arguments: data_label: D274
datatype: f64
name: unpack_data
arguments: data_label: D28
datatype: qword
name: unpack_data
arguments: data_label: D309
datatype: f32[2]
name: unpack_data
arguments: data_label: D41
datatype: qword[2]
name: unpack_data
arguments: data_label: D249
datatype: byte[8]
name: unpack_data
arguments: data_label: D244
datatype: f64
name: unpack_data
arguments: data_label: D231
datatype: byte[8]
name: unpack_data
arguments: data_label: D181
datatype: string
name: unpack_data
arguments: data_label: D431
datatype: f64
name: unpack_data
arguments: data_label: D192
datatype: f64

tool: D300: b

tool: D39: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/Chadi-akel/cere/refs/heads/master/tests/test_07/nrjac.c

tool: D323: z

tool: D274: 1

tool: D28: 9223372036854775807

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

tool: {"D41": [0x7fffffffffffffff,0x7fffffffffffffff]}

tool: {"D249": [0x23,0xe2,0xff,0xc4,0x63,0x55,0x10,0x38]}

tool: D244: 100

tool: {"D231": [0x2b,0x69,0xa4,0x29,0x2b,0x1b,0x80,0x3e]}

tool: D181: Too many iterations in routine JACOBI

tool: D431: 0.5

tool: D192: 0.2

assistant: ```c
void jacobi(double **a, int n, double d[], double **v, int *nrot) {
  int j, i;
  int iq, ip;
  double tresh, theta, tau, t, sm, s, h, g, c, *b, *z;
  (b) = save_calloc("b", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/Chadi-akel/cere/refs/heads/master/tests/test_07/nrjac.c", 53, (n), sizeof(*(b)));
  (z) = save_calloc("z", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/Chadi-akel/cere/refs/heads/master/tests/test_07/nrjac.c", 54, (n), sizeof(*(z)));
  for (ip = 0; ip < n; ip++) {
    for (iq = 0; iq < n; iq++)
      v[ip][iq] = 0.0;
    v[ip][ip] = 1.0;
  }
  for (ip = 0; ip < n; ip++) {
    b[ip] = d[ip] = a[ip][ip];
    z[ip] = 0.0;
  }
  *nrot = 0;
  for (i = 1; i <= 50; i++) {
    sm = 0.0;
    for (ip = 0; ip < n - 1; ip++) {
      for (iq = ip + 1; iq < n; iq++)
        sm += fabs(a[ip][iq]);
    }
    if (fabs(sm) < 1.2e-38) {
      save_free("z", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/Chadi-akel/cere/refs/heads/master/tests/test_07/nrjac.c", 71, (z));
      save_free("b", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/Chadi-akel/cere/refs/heads/master/tests/test_07/nrjac.c", 72, (b));
      return;
    }
    if (i < 4)
      tresh = 0.2 * sm / (n * n);
    else
      tresh = 0.0;
    for (ip = 0; ip < n - 1; ip++) {
      for (iq = ip + 1; iq < n; iq++) {
        g = 100.0 * fabs(a[ip][iq]);
        if (i > 4 && (g < 1.2e-07 * fabs(d[ip])) && (g < 1.2e-07 * fabs(d[iq])))
          a[ip][iq] = 0.0;
        else if (fabs(a[ip][iq]) > tresh) {
          h = d[iq] - d[ip];
          if (g < 1.2e-07 * fabs(h))
            t = (a[ip][iq]) / h;
          else {
            theta = 0.5 * h / (a[ip][iq]);
            t = 1.0 / (fabs(theta) + sqrt(1.0 + theta * theta));
            if (theta < 0.0)
              t = -t;
          }
          c = 1.0 / sqrt(1 + t * t);
          s = t * c;
          tau = s / (1.0 + c);
          h = t * a[ip][iq];
          z[ip] -= h;
          z[iq] += h;
          d[ip] -= h;
          d[iq] += h;
          a[ip][iq] = 0.0;
          for (j = 0; j < ip; j++) {
            g = a[j][ip];
            h = a[j][iq];
            a[j][ip] = g - s * (h + g * tau);
            a[j][iq] = h + s * (g - h * tau);
          }
          for (j = ip + 1; j < iq; j++) {
            g = a[ip][j];
            h = a[j][iq];
            a[ip][j] = g - s * (h + g * tau);
            a[j][iq] = h + s * (g - h * tau);
          }
          for (j = iq + 1; j < n; j++) {
            g = a[ip][j];
            h = a[iq][j];
            a[ip][j] = g - s * (h + g * tau);
            a[iq][j] = h + s * (g - h * tau);
          }
          for (j = 0; j < n; j++) {
            g = v[j][ip];
            h = v[j][iq];
            v[j][ip] = g - s * (h + g * tau);
            v[j][iq] = h + s * (g - h * tau);
          }
          ++(*nrot);
        }
      }
    }
    for (ip = 0; ip < n; ip++) {
      b[ip] += z[ip];
      d[ip] = b[ip];
      z[ip] = 0.0;
    }
  }
  jacobierror("Too many iterations in routine JACOBI");
}
```