user: Please show me the C implementation that matches the assembly code listed below:

```asm
<jacobi>:
  endbr64
  push   %r15
  xor    %eax,%eax
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %esi,%ebx
  sub    $0x118,%rsp
  mov    %rdi,0x30(%rsp)
  mov    $0x1,%edi
  mov    %esi,0x14(%rsp)
  mov    %rdx,0x8(%rsp)
  mov    %rcx,0x40(%rsp)
  mov    %r8,0x48(%rsp)
  call   <fvector@plt>
  mov    %ebx,%esi
  mov    $0x1,%edi
  cltq
  mov    %rax,0x78(%rsp)
  xor    %eax,%eax
  call   <fvector@plt>
  test   %ebx,%ebx
  mov    0x8(%rsp),%r11
  cltq
  mov    %rax,0x60(%rsp)
  jle    L525
  mov    0x14(%rsp),%ebp
  mov    0x40(%rsp),%r14
  mov    $0x4,%r12d
  mov    %r11,%r15
  lea    -0x1(%rbp),%eax
  shl    $0x2,%rbp
  mov    %eax,0x84(%rsp)
  lea    0x8(,%rax,4),%rbx
L766:
  mov    (%r14,%r12,2),%r13
  mov    %rbp,%rdx
  xor    %esi,%esi
  lea    0x4(%r13),%rdi
  call   <memset@plt>
  movl   $0x3f800000,0x0(%r13,%r12,1)
  add    $0x4,%r12
  cmp    %rbx,%r12
  jne    L766
  mov    0x30(%rsp),%rcx
  mov    0x78(%rsp),%rsi
  mov    %r15,%r11
  mov    $0x4,%eax
  mov    0x60(%rsp),%rdi
L381:
  mov    (%rcx,%rax,2),%rdx
  movss  (%rdx,%rax,1),%xmm0
  movss  %xmm0,(%r11,%rax,1)
  movss  %xmm0,(%rsi,%rax,1)
  movl   $0x0,(%rdi,%rax,1)
  add    $0x4,%rax
  cmp    %rbx,%rax
  jne    L381
L107:
  mov    0x14(%rsp),%ebx
  mov    0x48(%rsp),%rax
  lea    0x4(%r11),%r15
  movl   $0x1,0x8(%rsp)
  mov    0x84(%rsp),%esi
  mov    0x78(%rsp),%r9
  mov    %r15,0x88(%rsp)
  movss  D102(%rip),%xmm6
  movss  D145(%rip),%xmm9
  movl   $0x0,(%rax)
  mov    %ebx,%eax
  imul   %ebx,%eax
  lea    0x4(%r9),%r8
  mov    %r8,0x90(%rsp)
  mov    %eax,0xb4(%rsp)
  mov    0x40(%rsp),%rax
  lea    0x10(%rax,%rsi,8),%r10
  mov    0x60(%rsp),%rax
  mov    %r10,0x50(%rsp)
  mov    %r11,%r10
  lea    0x4(%rax),%rdi
  lea    0x14(%rax),%rcx
  lea    0x14(%r9),%rax
  mov    %rdi,%r14
  mov    %rdi,0x98(%rsp)
  cmp    %rax,%rdi
  setae  %dl
  cmp    %r8,%rcx
  setbe  %al
  mov    %edx,%edi
  or     %eax,%edi
  lea    0x14(%r11),%rax
  cmp    %rax,%r14
  setae  %al
  cmp    %rcx,%r15
  lea    0x8(%r9),%rcx
  setae  %dl
  sub    %rcx,%r15
  or     %edx,%eax
  and    %edi,%eax
  cmp    $0x8,%r15
  seta   %dl
  and    %edx,%eax
  mov    %al,0xa3(%rsp)
  mov    %ebx,%eax
  and    $0xfffffffc,%ebx
  shr    $0x2,%eax
  mov    %ebx,0xa4(%rsp)
  sub    $0x1,%eax
  shl    $0x4,%rax
  lea    0x14(%rax,%r9,1),%rax
  mov    %rax,0xa8(%rsp)
  lea    0x1(%rbx),%eax
  mov    %eax,0xb0(%rsp)
  lea    0x8(%r9,%rsi,4),%rax
  mov    %rax,0xb8(%rsp)
L418:
  cmpl   $0x1,0x14(%rsp)
  jle    L837
  mov    0x14(%rsp),%r11d
  pxor   %xmm7,%xmm7
  mov    0x84(%rsp),%r8d
  mov    $0x2,%esi
  movaps D224(%rip),%xmm3
  mov    0x30(%rsp),%rbp
  movaps %xmm7,%xmm1
  lea    -0x2(%r11),%eax
  lea    0x3(%rax),%rbx
  mov    %rbx,0x70(%rsp)
  nopl   0x0(%rax,%rax,1)
L742:
  mov    %esi,%edi
  cmp    %esi,%r11d
  jl     L76
  mov    %r11d,%eax
  mov    -0x8(%rbp,%rsi,8),%r9
  sub    %esi,%eax
  cmp    $0x2,%eax
  jbe    L188
  mov    %r8d,%eax
  lea    (%r9,%rsi,4),%rdx
  shr    $0x2,%eax
  lea    -0x1(%rax),%ecx
  lea    0x10(%rdx),%rax
  shl    $0x4,%rcx
  add    %rax,%rcx
  jmp    L596
  nopl   0x0(%rax)
L595:
  add    $0x10,%rax
L596:
  movups (%rdx),%xmm0
  mov    %rax,%rdx
  andps  %xmm3,%xmm0
  addss  %xmm0,%xmm1
  movaps %xmm0,%xmm2
  shufps $0x55,%xmm0,%xmm2
  addss  %xmm2,%xmm1
  movaps %xmm0,%xmm2
  unpckhps %xmm0,%xmm2
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm2,%xmm1
  addss  %xmm0,%xmm1
  cmp    %rcx,%rax
  jne    L595
  mov    %r8d,%eax
  and    $0xfffffffc,%eax
  add    %eax,%edi
  cmp    %eax,%r8d
  je     L76
L188:
  movslq %edi,%rax
  movss  (%r9,%rax,4),%xmm0
  lea    0x0(,%rax,4),%rdx
  lea    0x1(%rdi),%eax
  andps  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  cmp    %r11d,%eax
  jg     L76
  movss  0x4(%r9,%rdx,1),%xmm0
  add    $0x2,%edi
  andps  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  cmp    %edi,%r11d
  jl     L76
  movss  0x8(%r9,%rdx,1),%xmm0
  andps  %xmm6,%xmm0
  addss  %xmm0,%xmm1
L76:
  add    $0x1,%rsi
  sub    $0x1,%r8d
  cmp    %rbx,%rsi
  jne    L742
  ucomiss %xmm7,%xmm1
  jp     L673
  je     L837
L673:
  cmpl   $0x3,0x8(%rsp)
  movaps %xmm7,%xmm4
  jle    L829
L340:
  mov    0x88(%rsp),%r11
  movss  D102(%rip),%xmm2
  movq   $0x1,0x28(%rsp)
  movss  D145(%rip),%xmm8
  movq   $0x2,0x20(%rsp)
  nopl   0x0(%rax)
L247:
  mov    0x20(%rsp),%ebx
  cmp    %ebx,0x14(%rsp)
  jl     L29
  mov    0x28(%rsp),%rax
  mov    0x14(%rsp),%edx
  mov    0x20(%rsp),%r12
  mov    0x60(%rsp),%rdi
  lea    0x0(,%rax,4),%rbp
  sub    %eax,%edx
  mov    0x30(%rsp),%rsi
  movss  D89(%rip),%xmm3
  lea    (%rdi,%rbp,1),%rbx
  lea    -0x1(%rdx,%r12,1),%edx
  movss  D82(%rip),%xmm5
  cmp    %r12d,%edx
  mov    %rbx,0x38(%rsp)
  mov    (%rsi,%rax,8),%rbx
  mov    %r12d,%eax
  cmovle %edx,%eax
  lea    0x1(%r12),%r15d
  lea    0x8(%rbx,%rbp,1),%r13
  mov    %eax,0x80(%rsp)
  lea    -0x3(%r12),%eax
  lea    0x10(%rsi,%rax,8),%r9
  lea    -0x4(%rdi),%rax
  sub    %rbx,%rax
  mov    %rax,0x58(%rsp)
  jmp    L630
  nopl   0x0(%rax)
L549:
  movss  (%r10,%r12,4),%xmm0
  andps  %xmm2,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  ucomisd %xmm1,%xmm0
  jp     L915
  jne    L915
  movl   $0x0,-0x4(%r13)
  lea    0x1(%r12),%rdi
L3:
  mov    %rdi,%r12
  add    $0x1,%r15
  add    $0x4,%r13
  cmp    %edi,0x80(%rsp)
  jl     L750
L630:
  movss  -0x4(%r13),%xmm11
  cmpl   $0x4,0x8(%rsp)
  mov    %r15d,%r8d
  mov    %r15d,%esi
  lea    0x0(,%r12,4),%r14
  movaps %xmm11,%xmm12
  andps  %xmm2,%xmm12
  movaps %xmm12,%xmm10
  mulss  %xmm3,%xmm10
  jle    L915
  movss  (%r11),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm10,%xmm1
  andps  %xmm2,%xmm0
  cvtss2sd %xmm0,%xmm0
  movapd %xmm0,%xmm13
  addsd  %xmm1,%xmm13
  ucomisd %xmm13,%xmm0
  jp     L915
  je     L549
L915:
  comiss %xmm4,%xmm12
  lea    0x1(%r12),%rdi
  jbe    L3
  movss  (%r10,%r12,4),%xmm0
  subss  (%r11),%xmm0
  cvtss2sd %xmm10,%xmm10
  movaps %xmm0,%xmm1
  andps  %xmm2,%xmm1
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm1,%xmm10
  ucomisd %xmm10,%xmm1
  jp     L663
  jne    L663
  movaps %xmm11,%xmm12
  pxor   %xmm1,%xmm1
  movsd  D267(%rip),%xmm13
  divss  %xmm0,%xmm12
L443:
  movaps %xmm12,%xmm0
  mulss  %xmm12,%xmm0
  addss  %xmm5,%xmm0
  cvtss2sd %xmm0,%xmm0
  ucomisd %xmm0,%xmm1
  ja     L874
  sqrtsd %xmm0,%xmm0
L789:
  movapd %xmm13,%xmm1
  movaps %xmm12,%xmm10
  mov    0x38(%rsp),%rax
  divsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  mulss  %xmm12,%xmm11
  cvtsd2ss %xmm1,%xmm0
  mulss  %xmm0,%xmm10
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm13,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm10,%xmm1
  divsd  %xmm0,%xmm1
  movss  (%rax),%xmm0
  subss  %xmm11,%xmm0
  movss  %xmm0,(%rax)
  mov    0x58(%rsp),%rax
  add    %r13,%rax
  cmpq   $0x1,0x28(%rsp)
  movss  (%rax),%xmm0
  addss  %xmm11,%xmm0
  movss  %xmm0,(%rax)
  movss  (%r11),%xmm0
  mov    0x30(%rsp),%rax
  subss  %xmm11,%xmm0
  lea    0x8(%rax),%rdx
  movss  %xmm0,(%r11)
  addss  (%r10,%r12,4),%xmm11
  movss  %xmm11,(%r10,%r12,4)
  movl   $0x0,-0x4(%r13)
  cvtsd2ss %xmm1,%xmm1
  je     L866
  nopw   0x0(%rax,%rax,1)
L666:
  mov    (%rdx),%rax
  movaps %xmm1,%xmm11
  add    $0x8,%rdx
  lea    (%rax,%rbp,1),%rcx
  add    %r14,%rax
  movss  (%rcx),%xmm0
  movss  (%rax),%xmm12
  mulss  %xmm0,%xmm11
  movaps %xmm0,%xmm13
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm1,%xmm11
  mulss  %xmm12,%xmm11
  movss  %xmm13,(%rcx)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
  cmp    %r9,%rdx
  jne    L666
L866:
  mov    %r15d,0x68(%rsp)
  cmp    %r15d,0x14(%rsp)
  jl     L624
  mov    0x30(%rsp),%rax
  mov    0x14(%rsp),%edi
  mov    (%rax,%r12,8),%rdx
  sub    %r12d,%edi
  mov    %edi,0x18(%rsp)
  lea    0x14(%rdx,%r14,1),%rdi
  lea    (%rdx,%r15,4),%rcx
  cmp    %rdi,%r13
  lea    0x10(%r13),%rdi
  setae  %al
  cmp    %rdi,%rcx
  setae  %dil
  or     %al,%dil
  je     L355
  mov    0x18(%rsp),%edi
  cmp    $0x1,%edi
  je     L355
  mov    0x14(%rsp),%eax
  sub    %r8d,%eax
  cmp    $0x2,%eax
  jbe    L570
  shr    $0x2,%edi
  movaps %xmm1,%xmm12
  movaps %xmm10,%xmm11
  xor    %eax,%eax
  shl    $0x4,%rdi
  shufps $0x0,%xmm12,%xmm12
  shufps $0x0,%xmm11,%xmm11
L827:
  movups 0x0(%r13,%rax,1),%xmm0
  movups (%rcx,%rax,1),%xmm13
  movaps %xmm0,%xmm14
  movaps %xmm0,%xmm15
  mulps  %xmm12,%xmm14
  addps  %xmm13,%xmm14
  mulps  %xmm11,%xmm14
  subps  %xmm14,%xmm15
  movaps %xmm13,%xmm14
  mulps  %xmm12,%xmm14
  movups %xmm15,0x0(%r13,%rax,1)
  subps  %xmm14,%xmm0
  mulps  %xmm11,%xmm0
  addps  %xmm13,%xmm0
  movups %xmm0,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%rdi
  jne    L827
  mov    0x18(%rsp),%ecx
  lea    0x1(%r12),%rdi
  and    $0xfffffffc,%ecx
  lea    (%rcx,%rsi,1),%eax
  cmp    %ecx,0x18(%rsp)
  je     L887
  sub    %ecx,0x18(%rsp)
  cmpl   $0x1,0x18(%rsp)
  je     L112
L679:
  lea    0x1(%r12),%rdi
  movaps %xmm1,%xmm11
  movaps %xmm10,%xmm14
  add    %rdi,%rcx
  shufps $0xe0,%xmm11,%xmm11
  shufps $0xe0,%xmm14,%xmm14
  shl    $0x2,%rcx
  lea    (%rbx,%rcx,1),%r12
  add    %rdx,%rcx
  movq   (%r12),%xmm0
  movq   (%rcx),%xmm13
  movaps %xmm0,%xmm12
  movaps %xmm0,%xmm15
  mulps  %xmm11,%xmm12
  mulps  %xmm13,%xmm11
  addps  %xmm13,%xmm12
  subps  %xmm11,%xmm0
  mulps  %xmm14,%xmm12
  mulps  %xmm14,%xmm0
  subps  %xmm12,%xmm15
  addps  %xmm13,%xmm0
  movlps %xmm15,(%r12)
  mov    0x18(%rsp),%r12d
  movlps %xmm0,(%rcx)
  mov    %r12d,%ecx
  and    $0xfffffffe,%ecx
  add    %ecx,%eax
  cmp    %ecx,%r12d
  je     L887
L112:
  cltq
  movaps %xmm1,%xmm11
  shl    $0x2,%rax
  lea    (%rbx,%rax,1),%rcx
  add    %rdx,%rax
  movss  (%rcx),%xmm0
  movss  (%rax),%xmm12
  mulss  %xmm0,%xmm11
  movaps %xmm0,%xmm13
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm1,%xmm11
  mulss  %xmm12,%xmm11
  movss  %xmm13,(%rcx)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
L887:
  mov    0x40(%rsp),%rax
  mov    0x50(%rsp),%rcx
  lea    0x8(%rax),%rdx
  nopl   0x0(%rax)
L510:
  mov    (%rdx),%rax
  movaps %xmm1,%xmm11
  add    $0x8,%rdx
  lea    (%rax,%rbp,1),%r12
  add    %r14,%rax
  movss  (%r12),%xmm0
  movss  (%rax),%xmm12
  mulss  %xmm0,%xmm11
  movaps %xmm0,%xmm13
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm1,%xmm11
  mulss  %xmm12,%xmm11
  movss  %xmm13,(%r12)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
  cmp    %rcx,%rdx
  jne    L510
  mov    0x48(%rsp),%rax
  addl   $0x1,(%rax)
  jmp    L3
  nopl   0x0(%rax)
L29:
  addq   $0x1,0x20(%rsp)
  add    $0x4,%r11
  mov    0x20(%rsp),%rax
  addq   $0x1,0x28(%rsp)
  cmp    0x70(%rsp),%rax
  jne    L247
  cmpb   $0x0,0xa3(%rsp)
  je     L25
  cmpl   $0x2,0x84(%rsp)
  jbe    L315
  mov    0x90(%rsp),%rax
  mov    0x98(%rsp),%rdx
  mov    %r10,%rcx
  pxor   %xmm1,%xmm1
  mov    0xa8(%rsp),%rsi
  sub    0x78(%rsp),%rcx
  nopl   0x0(%rax,%rax,1)
L238:
  movups (%rdx),%xmm0
  movups (%rax),%xmm7
  add    $0x10,%rdx
  addps  %xmm7,%xmm0
  movups %xmm0,(%rax)
  movups %xmm0,(%rcx,%rax,1)
  add    $0x10,%rax
  movups %xmm1,-0x10(%rdx)
  cmp    %rsi,%rax
  jne    L238
  mov    0xa4(%rsp),%eax
  cmp    %eax,0x14(%rsp)
  je     L208
  mov    %eax,%edx
  mov    0xb0(%rsp),%eax
L808:
  mov    0x14(%rsp),%ecx
  sub    %edx,%ecx
  cmp    $0x1,%ecx
  je     L158
  lea    0x1(%rdx),%esi
  mov    0x78(%rsp),%rbx
  lea    0x0(,%rsi,4),%rdx
  lea    (%rbx,%rdx,1),%rdi
  add    0x60(%rsp),%rdx
  movq   (%rdx),%xmm1
  movq   (%rdi),%xmm0
  addps  %xmm1,%xmm0
  movlps %xmm0,(%rdi)
  movlps %xmm0,(%r10,%rsi,4)
  movq   $0x0,(%rdx)
  mov    %ecx,%edx
  and    $0xfffffffe,%edx
  add    %edx,%eax
  cmp    %ecx,%edx
  je     L208
L158:
  cltq
  mov    0x78(%rsp),%rbx
  lea    0x0(,%rax,4),%rdx
  lea    (%rbx,%rdx,1),%rcx
  add    0x60(%rsp),%rdx
  movss  (%rdx),%xmm0
  addss  (%rcx),%xmm0
  movss  %xmm0,(%rcx)
  movss  %xmm0,(%r10,%rax,4)
  movl   $0x0,(%rdx)
L208:
  addl   $0x1,0x8(%rsp)
  mov    0x8(%rsp),%eax
  cmp    $0x33,%eax
  jne    L418
  add    $0x118,%rsp
  lea    D269(%rip),%rdi
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10a0 <nrerror@plt>
  nopl   (%rax)
L750:
  mov    0x14(%rsp),%eax
  mov    %esi,%r14d
  cmp    %esi,%eax
  jl     L29
  mov    %eax,%edx
  movslq %esi,%rsi
  mov    0x30(%rsp),%rdi
  movss  D82(%rip),%xmm5
  sub    %r8d,%edx
  lea    0x1(%rax),%r8d
  mov    0x60(%rsp),%rax
  lea    0x1(%rsi),%r15
  mov    %r8d,0x80(%rsp)
  lea    (%rbx,%r15,4),%r13
  sub    $0x4,%rax
  sub    %rbx,%rax
  mov    %rax,0x58(%rsp)
  jmp    L864
  nopl   0x0(%rax,%rax,1)
L88:
  movss  (%r10,%rsi,4),%xmm0
  andps  %xmm2,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm0,%xmm12
  ucomisd %xmm0,%xmm12
  jp     L786
  jne    L786
  movl   $0x0,-0x4(%r13)
L813:
  mov    %r15,%rsi
  sub    $0x1,%edx
  add    $0x4,%r13
  cmp    0x80(%rsp),%r14d
  je     L29
  add    $0x1,%r15
L864:
  movss  -0x4(%r13),%xmm11
  add    $0x1,%r14d
  cmpl   $0x4,0x8(%rsp)
  lea    0x0(,%rsi,4),%r12
  movaps %xmm11,%xmm10
  andps  %xmm2,%xmm10
  movaps %xmm10,%xmm1
  mulss  %xmm3,%xmm1
  jle    L786
  movss  (%r11),%xmm0
  pxor   %xmm12,%xmm12
  cvtss2sd %xmm1,%xmm12
  movapd %xmm12,%xmm13
  andps  %xmm2,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm0,%xmm13
  ucomisd %xmm0,%xmm13
  jp     L786
  je     L88
L786:
  comiss %xmm4,%xmm10
  jbe    L813
  movss  (%r10,%rsi,4),%xmm0
  subss  (%r11),%xmm0
  cvtss2sd %xmm1,%xmm1
  movaps %xmm0,%xmm10
  andps  %xmm2,%xmm10
  cvtss2sd %xmm10,%xmm10
  addsd  %xmm10,%xmm1
  ucomisd %xmm10,%xmm1
  jp     L324
  jne    L324
  movaps %xmm11,%xmm12
  pxor   %xmm1,%xmm1
  movsd  D267(%rip),%xmm13
  divss  %xmm0,%xmm12
L828:
  movaps %xmm12,%xmm0
  mulss  %xmm12,%xmm0
  addss  %xmm5,%xmm0
  cvtss2sd %xmm0,%xmm0
  ucomisd %xmm0,%xmm1
  ja     L452
  sqrtsd %xmm0,%xmm0
L276:
  movapd %xmm13,%xmm1
  mov    0x38(%rsp),%rax
  lea    0x8(%rdi),%rcx
  divsd  %xmm0,%xmm1
  pxor   %xmm0,%xmm0
  cvtsd2ss %xmm1,%xmm0
  movaps %xmm0,%xmm10
  cvtss2sd %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mulss  %xmm12,%xmm10
  addsd  %xmm13,%xmm0
  mulss  %xmm11,%xmm12
  cvtss2sd %xmm10,%xmm1
  divsd  %xmm0,%xmm1
  movss  (%rax),%xmm0
  subss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
  mov    0x58(%rsp),%rax
  add    %r13,%rax
  cmpq   $0x1,0x28(%rsp)
  movss  (%rax),%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
  movss  (%r11),%xmm0
  subss  %xmm12,%xmm0
  movss  %xmm0,(%r11)
  addss  (%r10,%rsi,4),%xmm12
  movss  %xmm12,(%r10,%rsi,4)
  movl   $0x0,-0x4(%r13)
  cvtsd2ss %xmm1,%xmm1
  je     L721
  nopl   0x0(%rax)
L7:
  mov    (%rcx),%rax
  add    $0x8,%rcx
  lea    (%rax,%rbp,1),%r8
  add    %r12,%rax
  movss  (%r8),%xmm0
  movss  (%rax),%xmm12
  movaps %xmm0,%xmm11
  movaps %xmm0,%xmm13
  mulss  %xmm1,%xmm11
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm12,%xmm11
  mulss  %xmm1,%xmm11
  movss  %xmm13,(%r8)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
  cmp    %rcx,%r9
  jne    L7
L721:
  mov    0x20(%rsp),%rax
  nop
L78:
  movss  (%rbx,%rax,4),%xmm0
  mov    (%rdi,%rax,8),%rcx
  movaps %xmm0,%xmm11
  add    %r12,%rcx
  movaps %xmm0,%xmm13
  mulss  %xmm1,%xmm11
  movss  (%rcx),%xmm12
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm12,%xmm11
  mulss  %xmm1,%xmm11
  movss  %xmm13,(%rbx,%rax,4)
  add    $0x1,%rax
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rcx)
  cmp    %eax,%esi
  jg     L78
  cmp    %r14d,0x14(%rsp)
  jl     L599
  mov    (%rdi,%rsi,8),%rsi
  lea    0x14(%rsi,%r12,1),%rax
  lea    0x4(%rsi,%r12,1),%rcx
  cmp    %rax,%r13
  lea    0x10(%r13),%rax
  setae  %r8b
  cmp    %rax,%rcx
  setae  %al
  or     %r8b,%al
  je     L862
  cmp    $0x1,%edx
  je     L862
  mov    0x14(%rsp),%eax
  sub    %r14d,%eax
  cmp    $0x2,%eax
  jbe    L665
  mov    %edx,%r8d
  movaps %xmm1,%xmm12
  movaps %xmm10,%xmm11
  xor    %eax,%eax
  shr    $0x2,%r8d
  shufps $0x0,%xmm12,%xmm12
  shufps $0x0,%xmm11,%xmm11
  shl    $0x4,%r8
  nopw   0x0(%rax,%rax,1)
L686:
  movups 0x0(%r13,%rax,1),%xmm0
  movups (%rcx,%rax,1),%xmm13
  movaps %xmm0,%xmm14
  movaps %xmm0,%xmm15
  mulps  %xmm12,%xmm14
  addps  %xmm13,%xmm14
  mulps  %xmm11,%xmm14
  subps  %xmm14,%xmm15
  movaps %xmm13,%xmm14
  mulps  %xmm12,%xmm14
  movups %xmm15,0x0(%r13,%rax,1)
  subps  %xmm14,%xmm0
  mulps  %xmm11,%xmm0
  addps  %xmm13,%xmm0
  movups %xmm0,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r8,%rax
  jne    L686
  mov    %edx,%ecx
  and    $0xfffffffc,%ecx
  lea    (%rcx,%r14,1),%eax
  cmp    %edx,%ecx
  je     L599
  mov    %edx,%r8d
  sub    %ecx,%r8d
  mov    %r8d,0x18(%rsp)
  cmp    $0x1,%r8d
  je     L189
L746:
  add    %r15,%rcx
  movaps %xmm1,%xmm11
  movaps %xmm10,%xmm14
  shl    $0x2,%rcx
  shufps $0xe0,%xmm11,%xmm11
  shufps $0xe0,%xmm14,%xmm14
  lea    (%rbx,%rcx,1),%r8
  add    %rsi,%rcx
  movq   (%r8),%xmm0
  movq   (%rcx),%xmm13
  movaps %xmm0,%xmm12
  movaps %xmm0,%xmm15
  mulps  %xmm11,%xmm12
  mulps  %xmm13,%xmm11
  addps  %xmm13,%xmm12
  subps  %xmm11,%xmm0
  mulps  %xmm14,%xmm12
  mulps  %xmm14,%xmm0
  subps  %xmm12,%xmm15
  addps  %xmm13,%xmm0
  movlps %xmm15,(%r8)
  mov    0x18(%rsp),%r8d
  movlps %xmm0,(%rcx)
  mov    %r8d,%ecx
  and    $0xfffffffe,%ecx
  add    %ecx,%eax
  cmp    %ecx,%r8d
  je     L599
L189:
  cltq
  movaps %xmm1,%xmm11
  shl    $0x2,%rax
  lea    (%rbx,%rax,1),%rcx
  add    %rsi,%rax
  movss  (%rcx),%xmm0
  movss  (%rax),%xmm12
  mulss  %xmm0,%xmm11
  movaps %xmm0,%xmm13
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm1,%xmm11
  mulss  %xmm12,%xmm11
  movss  %xmm13,(%rcx)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
L599:
  mov    0x40(%rsp),%rax
  mov    0x50(%rsp),%rsi
  lea    0x8(%rax),%rcx
L647:
  mov    (%rcx),%rax
  add    $0x8,%rcx
  lea    (%rax,%rbp,1),%r8
  add    %r12,%rax
  movss  (%r8),%xmm0
  movss  (%rax),%xmm12
  movaps %xmm0,%xmm11
  movaps %xmm0,%xmm13
  mulss  %xmm1,%xmm11
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm12,%xmm11
  mulss  %xmm1,%xmm11
  movss  %xmm13,(%r8)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rax)
  cmp    %rcx,%rsi
  jne    L647
  mov    0x48(%rsp),%rax
  addl   $0x1,(%rax)
  jmp    L813
  nopw   0x0(%rax,%rax,1)
L324:
  pxor   %xmm10,%xmm10
  pxor   %xmm1,%xmm1
  movsd  D267(%rip),%xmm13
  cvtss2sd %xmm0,%xmm10
  pxor   %xmm0,%xmm0
  mulsd  D30(%rip),%xmm10
  cvtss2sd %xmm11,%xmm0
  divsd  %xmm0,%xmm10
  cvtsd2ss %xmm10,%xmm10
  movaps %xmm10,%xmm0
  movaps %xmm10,%xmm12
  mulss  %xmm10,%xmm0
  andps  %xmm2,%xmm12
  cvtss2sd %xmm12,%xmm12
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm13,%xmm0
  ucomisd %xmm0,%xmm1
  ja     L85
  sqrtsd %xmm0,%xmm0
L650:
  addsd  %xmm12,%xmm0
  comiss %xmm10,%xmm7
  movapd %xmm13,%xmm12
  divsd  %xmm0,%xmm12
  cvtsd2ss %xmm12,%xmm12
  jbe    L828
  xorps  %xmm9,%xmm12
  jmp    L828
  nopw   0x0(%rax,%rax,1)
L663:
  pxor   %xmm10,%xmm10
  pxor   %xmm1,%xmm1
  movsd  D267(%rip),%xmm13
  cvtss2sd %xmm0,%xmm10
  pxor   %xmm0,%xmm0
  mulsd  D30(%rip),%xmm10
  cvtss2sd %xmm11,%xmm0
  divsd  %xmm0,%xmm10
  cvtsd2ss %xmm10,%xmm10
  movaps %xmm10,%xmm0
  movaps %xmm10,%xmm12
  mulss  %xmm10,%xmm0
  andps  %xmm2,%xmm12
  cvtss2sd %xmm12,%xmm12
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm13,%xmm0
  ucomisd %xmm0,%xmm1
  ja     L678
  sqrtsd %xmm0,%xmm0
L774:
  addsd  %xmm0,%xmm12
  comiss %xmm10,%xmm7
  movapd %xmm13,%xmm0
  divsd  %xmm12,%xmm0
  pxor   %xmm12,%xmm12
  cvtsd2ss %xmm0,%xmm12
  jbe    L443
  xorps  %xmm8,%xmm12
  jmp    L443
  nopl   0x0(%rax)
L355:
  movslq 0x68(%rsp),%rax
  mov    0x14(%rsp),%ecx
  nopl   0x0(%rax)
L835:
  movss  (%rbx,%rax,4),%xmm0
  movaps %xmm1,%xmm11
  movss  (%rdx,%rax,4),%xmm12
  mulss  %xmm0,%xmm11
  movaps %xmm0,%xmm13
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm1,%xmm11
  mulss  %xmm12,%xmm11
  movss  %xmm13,(%rbx,%rax,4)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L835
L624:
  lea    0x1(%r12),%rdi
  jmp    L887
  nopl   0x0(%rax)
L862:
  mov    0x14(%rsp),%ecx
  movslq %r14d,%rax
  nopw   0x0(%rax,%rax,1)
L493:
  movss  (%rbx,%rax,4),%xmm0
  movaps %xmm1,%xmm11
  movss  (%rsi,%rax,4),%xmm12
  mulss  %xmm0,%xmm11
  movaps %xmm0,%xmm13
  addss  %xmm12,%xmm11
  mulss  %xmm10,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm1,%xmm11
  mulss  %xmm12,%xmm11
  movss  %xmm13,(%rbx,%rax,4)
  subss  %xmm11,%xmm0
  mulss  %xmm10,%xmm0
  addss  %xmm12,%xmm0
  movss  %xmm0,(%rsi,%rax,4)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L493
  jmp    L599
L665:
  mov    %edx,0x18(%rsp)
  mov    %r14d,%eax
  xor    %ecx,%ecx
  jmp    L746
L570:
  mov    %esi,%eax
  xor    %ecx,%ecx
  jmp    L679
L25:
  mov    0x78(%rsp),%rbx
  mov    0x60(%rsp),%rsi
  mov    %r10,%rcx
  mov    0x90(%rsp),%rax
  mov    0xb8(%rsp),%rdi
  sub    %rbx,%rsi
  sub    %rbx,%rcx
  nopl   0x0(%rax)
L50:
  lea    (%rsi,%rax,1),%rdx
  movss  (%rdx),%xmm0
  addss  (%rax),%xmm0
  movss  %xmm0,(%rax)
  movss  %xmm0,(%rcx,%rax,1)
  add    $0x4,%rax
  movl   $0x0,(%rdx)
  cmp    %rax,%rdi
  jne    L50
  jmp    L208
L315:
  xor    %edx,%edx
  mov    $0x1,%eax
  jmp    L808
L829:
  pxor   %xmm4,%xmm4
  cvtss2sd %xmm1,%xmm4
  mulsd  D40(%rip),%xmm4
  pxor   %xmm1,%xmm1
  cvtsi2sdl 0xb4(%rsp),%xmm1
  divsd  %xmm1,%xmm4
  cvtsd2ss %xmm4,%xmm4
  jmp    L340
L837:
  mov    0x14(%rsp),%ebx
  mov    0x60(%rsp),%rdi
  mov    $0x1,%esi
  xor    %eax,%eax
  mov    %ebx,%edx
  call   <free_fvector@plt>
  mov    0x78(%rsp),%rdi
  mov    %ebx,%edx
  xor    %eax,%eax
  add    $0x118,%rsp
  mov    $0x1,%esi
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1090 <free_fvector@plt>
L874:
  mov    %esi,0xe8(%rsp)
  mov    %r8d,0xe0(%rsp)
  mov    %r10,0xd8(%rsp)
  mov    %r9,0xd0(%rsp)
  mov    %r11,0xc8(%rsp)
  movsd  %xmm13,0xf0(%rsp)
  movss  %xmm4,0xc0(%rsp)
  movss  %xmm12,0x68(%rsp)
  movss  %xmm11,0x18(%rsp)
  call   <sqrt@plt>
  mov    0xe8(%rsp),%esi
  movss  D145(%rip),%xmm9
  movss  D102(%rip),%xmm6
  movsd  0xf0(%rsp),%xmm13
  mov    0xe0(%rsp),%r8d
  movaps %xmm9,%xmm8
  movaps %xmm6,%xmm2
  mov    0xd8(%rsp),%r10
  movss  0x68(%rsp),%xmm12
  pxor   %xmm7,%xmm7
  mov    0xd0(%rsp),%r9
  mov    0xc8(%rsp),%r11
  movss  0xc0(%rsp),%xmm4
  movss  D82(%rip),%xmm5
  movss  D89(%rip),%xmm3
  movss  0x18(%rsp),%xmm11
  jmp    L789
L452:
  mov    %r10,0xf8(%rsp)
  mov    %rdi,0xf0(%rsp)
  mov    %edx,0xe8(%rsp)
  mov    %rsi,0xe0(%rsp)
  mov    %r9,0xd8(%rsp)
  mov    %r11,0xd0(%rsp)
  movss  %xmm4,0xc8(%rsp)
  movsd  %xmm13,0xc0(%rsp)
  movss  %xmm11,0x68(%rsp)
  movss  %xmm12,0x18(%rsp)
  call   <sqrt@plt>
  mov    0xe8(%rsp),%edx
  pxor   %xmm7,%xmm7
  movss  D145(%rip),%xmm9
  movss  D102(%rip),%xmm6
  mov    0xf8(%rsp),%r10
  mov    0xf0(%rsp),%rdi
  movaps %xmm9,%xmm8
  mov    0xe0(%rsp),%rsi
  movss  0x68(%rsp),%xmm11
  movaps %xmm6,%xmm2
  mov    0xd8(%rsp),%r9
  mov    0xd0(%rsp),%r11
  movss  0xc8(%rsp),%xmm4
  movss  D82(%rip),%xmm5
  movss  D89(%rip),%xmm3
  movss  0x18(%rsp),%xmm12
  movsd  0xc0(%rsp),%xmm13
  jmp    L276
L525:
  mov    0x14(%rsp),%eax
  sub    $0x1,%eax
  mov    %eax,0x84(%rsp)
  jmp    L107
L85:
  mov    %r10,0x108(%rsp)
  mov    %rdi,0x100(%rsp)
  mov    %edx,0xf8(%rsp)
  mov    %rsi,0xf0(%rsp)
  mov    %r9,0xe8(%rsp)
  mov    %r11,0xe0(%rsp)
  movss  %xmm4,0xd8(%rsp)
  movsd  %xmm1,0xd0(%rsp)
  movsd  %xmm13,0xc8(%rsp)
  movss  %xmm11,0xc0(%rsp)
  movss  %xmm10,0x68(%rsp)
  movsd  %xmm12,0x18(%rsp)
  call   <sqrt@plt>
  mov    0xf8(%rsp),%edx
  pxor   %xmm7,%xmm7
  movss  D145(%rip),%xmm9
  movss  D102(%rip),%xmm6
  mov    0x108(%rsp),%r10
  mov    0x100(%rsp),%rdi
  movaps %xmm9,%xmm8
  mov    0xf0(%rsp),%rsi
  movss  0x68(%rsp),%xmm10
  movaps %xmm6,%xmm2
  mov    0xe8(%rsp),%r9
  mov    0xe0(%rsp),%r11
  movss  0xd8(%rsp),%xmm4
  movsd  0x18(%rsp),%xmm12
  movss  D82(%rip),%xmm5
  movss  D89(%rip),%xmm3
  movsd  0xd0(%rsp),%xmm1
  movsd  0xc8(%rsp),%xmm13
  movss  0xc0(%rsp),%xmm11
  jmp    L650
L678:
  mov    %esi,0xf0(%rsp)
  mov    %r8d,0xe8(%rsp)
  mov    %r10,0xe0(%rsp)
  mov    %r9,0xd8(%rsp)
  mov    %r11,0xd0(%rsp)
  movsd  %xmm1,0x100(%rsp)
  movsd  %xmm13,0xf8(%rsp)
  movss  %xmm4,0xc8(%rsp)
  movss  %xmm10,0xc0(%rsp)
  movsd  %xmm12,0x68(%rsp)
  movss  %xmm11,0x18(%rsp)
  call   <sqrt@plt>
  mov    0xf0(%rsp),%esi
  movss  D145(%rip),%xmm9
  movss  D102(%rip),%xmm6
  movsd  0x100(%rsp),%xmm1
  mov    0xe8(%rsp),%r8d
  movaps %xmm9,%xmm8
  movaps %xmm6,%xmm2
  movsd  0xf8(%rsp),%xmm13
  mov    0xe0(%rsp),%r10
  pxor   %xmm7,%xmm7
  mov    0xd8(%rsp),%r9
  mov    0xd0(%rsp),%r11
  movss  0xc8(%rsp),%xmm4
  movss  D82(%rip),%xmm5
  movss  D89(%rip),%xmm3
  movsd  0x68(%rsp),%xmm12
  movss  0xc0(%rsp),%xmm10
  movss  0x18(%rsp),%xmm11
  jmp    L774
```

tool_calls: name: read_data
arguments: data_tag: D102
datatype: dword
name: read_data
arguments: data_tag: D145
datatype: byte[4]
name: read_data
arguments: data_tag: D224
datatype: dword[4]
name: read_data
arguments: data_tag: D89
datatype: f32
name: read_data
arguments: data_tag: D82
datatype: f32
name: read_data
arguments: data_tag: D267
datatype: f32[2]
name: read_data
arguments: data_tag: D269
datatype: string
name: read_data
arguments: data_tag: D30
datatype: f64
name: read_data
arguments: data_tag: D40
datatype: f64

tool: D102: 2147483647

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

tool: {"D224": [0x7fffffff,0x7fffffff,0x7fffffff,0x7fffffff]}

tool: D89: 100

tool: D82: 1

tool: {"D267": [0.0,1.875]}

tool: D269: Too many iterations in routine JACOBI

tool: D30: 0.5

tool: D40: 0.2

assistant: ```c
void jacobi(a, n, d, v, nrot) float **a, d[], **v;
int n, *nrot;
{
  int j, iq, ip, i;
  float tresh, theta, tau, t, sm, s, h, g, c, *b, *z;
  b = fvector(1, n);
  z = fvector(1, n);
  for (ip = 1; ip <= n; ip++) {
    for (iq = 1; iq <= n; iq++)
      v[ip][iq] = 0.0;
    v[ip][ip] = 1.0;
  }
  for (ip = 1; 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 = 1; ip <= n - 1; ip++) {
      for (iq = ip + 1; iq <= n; iq++)
        sm += fabs(a[ip][iq]);
    }
    if (sm == 0.0) {
      free_fvector(z, 1, n);
      free_fvector(b, 1, n);
      return;
    }
    if (i < 4)
      tresh = 0.2 * sm / (n * n);
    else
      tresh = 0.0;
    for (ip = 1; ip <= n - 1; ip++) {
      for (iq = ip + 1; iq <= n; iq++) {
        g = 100.0 * fabs(a[ip][iq]);
        if (i > 4 && fabs(d[ip]) + g == fabs(d[ip]) && fabs(d[iq]) + g == fabs(d[iq]))
          a[ip][iq] = 0.0;
        else if (fabs(a[ip][iq]) > tresh) {
          h = d[iq] - d[ip];
          if (fabs(h) + g == 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 = 1; j <= ip - 1; 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 - 1; 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 = 1; 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 = 1; ip <= n; ip++) {
      b[ip] += z[ip];
      d[ip] = b[ip];
      z[ip] = 0.0;
    }
  }
  nrerror("Too many iterations in routine JACOBI");
}
```