user: Demonstrate the C code that generates the assembly output below:

```asm
<invers>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rsi,-0x18(%rsp)
  mov    %rdx,-0x10(%rsp)
  mov    %rcx,-0x20(%rsp)
  mov    %r8,-0x28(%rsp)
  test   %edi,%edi
  jle    L777
  xor    %r14d,%r14d
  movapd %xmm0,%xmm4
  mov    %rdx,%rax
  movsd  D25(%rip),%xmm0
  test   %r14d,%r14d
  je     L154
  nopl   (%rax)
L1006:
  movq   $0x0,(%rax)
  cmp    $0x1,%edi
  je     L295
  cmp    $0x1,%r14d
  je     L50
L232:
  movq   $0x0,0x8(%rax)
  cmp    $0x2,%edi
  jle    L295
  cmp    $0x2,%r14d
  je     L934
L966:
  movq   $0x0,0x10(%rax)
  cmp    $0x3,%edi
  jle    L295
  cmp    $0x3,%r14d
  je     L617
L826:
  movq   $0x0,0x18(%rax)
  cmp    $0x4,%edi
  jle    L295
  cmp    $0x4,%r14d
  je     L158
L761:
  movq   $0x0,0x20(%rax)
  cmp    $0x5,%edi
  jle    L295
  cmp    $0x5,%r14d
  je     L62
L382:
  movq   $0x0,0x28(%rax)
  cmp    $0x6,%edi
  jle    L295
  cmp    $0x6,%r14d
  je     L781
L431:
  movq   $0x0,0x30(%rax)
  cmp    $0x7,%edi
  jle    L295
  cmp    $0x7,%r14d
  je     L75
L391:
  movq   $0x0,0x38(%rax)
  cmp    $0x8,%edi
  jle    L295
  cmp    $0x8,%r14d
  je     L65
L817:
  pxor   %xmm2,%xmm2
  movsd  %xmm2,0x40(%rax)
  cmp    $0x9,%edi
  jle    L295
  cmp    $0x9,%r14d
  je     L881
L106:
  movq   $0x0,0x48(%rax)
  cmp    $0xa,%edi
  jle    L295
  movapd %xmm0,%xmm1
  cmp    $0xa,%r14d
  je     L361
  movapd %xmm2,%xmm1
L361:
  movsd  %xmm1,0x50(%rax)
  cmp    $0xb,%edi
  jle    L295
  mov    $0xb,%edx
L532:
  cmp    %edx,%r14d
  je     L119
  movq   $0x0,(%rax,%rdx,8)
  add    $0x1,%rdx
  cmp    %edx,%edi
  jg     L532
  cs nopw 0x0(%rax,%rax,1)
L295:
  lea    0x1(%r14),%r15d
  add    $0x50,%rax
  cmp    %r15d,%edi
  je     L1025
L367:
  mov    %r15d,%r14d
  test   %r14d,%r14d
  jne    L1006
L154:
  movsd  %xmm0,(%rax)
  cmp    $0x1,%edi
  jne    L232
  lea    0x1(%r14),%r15d
  add    $0x50,%rax
  cmp    %r15d,%edi
  jne    L367
L1025:
  mov    -0x20(%rsp),%rax
  mov    %r15d,%ebx
  mov    %r15d,%ecx
  mov    -0x10(%rsp),%rsi
  and    $0xfffffffe,%ebx
  movl   $0x0,-0x48(%rsp)
  mov    %r15d,%edi
  shr    %ecx
  movsd  %xmm0,(%rax)
  mov    -0x28(%rsp),%rax
  lea    0x10(%rsi),%r8
  movq   D37(%rip),%xmm3
  mov    %ebx,-0x44(%rsp)
  movq   D31(%rip),%xmm5
  xor    %r13d,%r13d
  movl   $0x0,(%rax)
  mov    -0x18(%rsp),%rax
  movq   $0x0,-0x50(%rsp)
  mov    %rdi,-0x30(%rsp)
  lea    0x10(%rax),%r12
  mov    %rax,%rdi
  mov    %rax,-0x68(%rsp)
  movslq %ebx,%rax
  mov    %r15d,-0x58(%rsp)
  mov    %ecx,%r15d
  nopw   0x0(%rax,%rax,1)
L993:
  mov    -0x48(%rsp),%edx
  mov    %r13d,%r9d
  test   %edx,%edx
  jne    L376
  mov    -0x68(%rsp),%rcx
  lea    0x1(%r13),%edx
  movsd  (%rcx),%xmm2
  movapd %xmm2,%xmm6
  andpd  %xmm3,%xmm6
  cmp    %edx,-0x58(%rsp)
  jle    L562
  movapd %xmm6,%xmm1
  jmp    L551
L843:
  mov    %r10d,%edx
L551:
  movsd  0x50(%rcx),%xmm0
  lea    0x1(%rdx),%r10d
  andpd  %xmm3,%xmm0
  comisd %xmm1,%xmm0
  maxsd  %xmm1,%xmm0
  cmova  %edx,%r9d
  movapd %xmm0,%xmm1
  add    $0x50,%rcx
  cmp    %r14d,%edx
  jne    L843
  cmp    %r13d,%r9d
  jne    L862
L562:
  comisd %xmm6,%xmm4
  jbe    L488
L949:
  mov    -0x28(%rsp),%rbx
  movl   $0x1,-0x48(%rsp)
  movl   $0x1,(%rbx)
L461:
  add    $0x1,%r13
  add    $0x50,%rdi
  add    $0x50,%rsi
  add    $0x50,%r8
  addq   $0x58,-0x68(%rsp)
  add    $0x50,%r12
  addq   $0x50,-0x50(%rsp)
  cmp    -0x30(%rsp),%r13
  jne    L993
L376:
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   (%rax)
L50:
  movsd  %xmm0,0x8(%rax)
  cmp    $0x2,%edi
  jne    L966
  jmp    L295
  nopl   0x0(%rax,%rax,1)
L934:
  movsd  %xmm0,0x10(%rax)
  cmp    $0x3,%edi
  jne    L826
  jmp    L295
  nopl   0x0(%rax,%rax,1)
L617:
  movsd  %xmm0,0x18(%rax)
  cmp    $0x4,%edi
  jne    L761
  jmp    L295
  nopl   0x0(%rax,%rax,1)
L158:
  movsd  %xmm0,0x20(%rax)
  cmp    $0x5,%edi
  jne    L382
  jmp    L295
  nopl   0x0(%rax,%rax,1)
L62:
  movsd  %xmm0,0x28(%rax)
  cmp    $0x6,%edi
  jne    L431
  jmp    L295
  nopl   0x0(%rax,%rax,1)
L862:
  movslq %r9d,%r9
  mov    -0x18(%rsp),%rbx
  lea    (%r9,%r9,4),%r11
  mov    -0x10(%rsp),%r9
  shl    $0x4,%r11
  lea    0x10(%r11),%rbp
  lea    (%r9,%r11,1),%rcx
  mov    %r11,-0x60(%rsp)
  add    %rbp,%r9
  lea    (%rbx,%r11,1),%rdx
  lea    (%rbx,%rbp,1),%r10
  cmp    %r12,%rsi
  setae  %bl
  cmp    %r8,%rdi
  setae  -0x51(%rsp)
  movzbl -0x51(%rsp),%r11d
  or     %r11d,%ebx
  cmp    $0x1,%r14d
  seta   -0x51(%rsp)
  movzbl -0x51(%rsp),%r11d
  and    %r11d,%ebx
  mov    -0x50(%rsp),%r11
  add    $0x10,%r11
  cmp    %r11,-0x60(%rsp)
  setge  %r11b
  cmp    -0x50(%rsp),%rbp
  setle  %bpl
  or     %ebp,%r11d
  and    %r11d,%ebx
  cmp    %r12,%rcx
  setae  %r11b
  cmp    %r9,%rdi
  setae  %bpl
  or     %ebp,%r11d
  and    %ebx,%r11d
  cmp    %r10,%rsi
  setae  %bl
  cmp    %r8,%rdx
  setae  %bpl
  or     %ebp,%ebx
  test   %bl,%r11b
  je     L72
  cmp    %r10,%rcx
  setae  %bl
  cmp    %r9,%rdx
  setae  %r11b
  or     %bl,%r11b
  je     L72
  movupd -0x10(%r12),%xmm0
  movupd (%rdx),%xmm7
  movups %xmm7,-0x10(%r12)
  movups %xmm0,(%rdx)
  movupd -0x10(%r8),%xmm0
  movupd (%rcx),%xmm7
  movups %xmm7,-0x10(%r8)
  movups %xmm0,(%rcx)
  cmp    $0x1,%r15d
  jbe    L139
  movupd (%r12),%xmm0
  movupd (%r10),%xmm7
  movups %xmm7,(%r12)
  movups %xmm0,(%r10)
  movupd (%r8),%xmm0
  movupd (%r9),%xmm7
  movups %xmm7,(%r8)
  movups %xmm0,(%r9)
  cmp    $0x2,%r15d
  je     L139
  movupd 0x10(%r12),%xmm0
  movupd 0x10(%r10),%xmm7
  movups %xmm7,0x10(%r12)
  movups %xmm0,0x10(%r10)
  movupd 0x10(%r8),%xmm0
  movupd 0x10(%r9),%xmm7
  movups %xmm7,0x10(%r8)
  movups %xmm0,0x10(%r9)
  cmp    $0x3,%r15d
  je     L139
  movupd 0x20(%r12),%xmm0
  movupd 0x20(%r10),%xmm7
  movups %xmm7,0x20(%r12)
  movups %xmm0,0x20(%r10)
  movupd 0x20(%r8),%xmm0
  movupd 0x20(%r9),%xmm7
  movups %xmm7,0x20(%r8)
  movups %xmm0,0x20(%r9)
  cmp    $0x4,%r15d
  je     L139
  movupd 0x30(%r12),%xmm0
  movupd 0x30(%r10),%xmm7
  movups %xmm7,0x30(%r12)
  movups %xmm0,0x30(%r10)
  movupd 0x30(%r8),%xmm0
  movupd 0x30(%r9),%xmm7
  movups %xmm7,0x30(%r8)
  movups %xmm0,0x30(%r9)
  cmp    $0x5,%r15d
  je     L139
  mov    $0x40,%r11d
  mov    $0x5,%ebx
L409:
  movupd (%r12,%r11,1),%xmm0
  movupd (%r10,%r11,1),%xmm7
  add    $0x1,%ebx
  movups %xmm7,(%r12,%r11,1)
  movups %xmm0,(%r10,%r11,1)
  movupd (%r8,%r11,1),%xmm0
  movupd (%r9,%r11,1),%xmm7
  movups %xmm7,(%r8,%r11,1)
  movups %xmm0,(%r9,%r11,1)
  add    $0x10,%r11
  cmp    %r15d,%ebx
  jne    L409
  nopl   0x0(%rax)
L139:
  mov    -0x58(%rsp),%r11d
  cmp    %r11d,-0x44(%rsp)
  je     L103
  movsd  (%rdi,%rax,8),%xmm0
  movsd  (%rdx,%rax,8),%xmm1
  movsd  %xmm1,(%rdi,%rax,8)
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  (%rsi,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  movsd  %xmm1,(%rsi,%rax,8)
  movsd  %xmm0,(%rcx,%rax,8)
L103:
  mov    -0x20(%rsp),%rbx
  movsd  (%rbx),%xmm0
  xorpd  %xmm5,%xmm0
  movsd  %xmm0,(%rbx)
  mov    -0x68(%rsp),%rbx
  movsd  (%rbx),%xmm2
  movapd %xmm2,%xmm6
  andpd  %xmm3,%xmm6
  comisd %xmm6,%xmm4
  ja     L949
L488:
  mov    -0x20(%rsp),%rbx
  cmpl   $0x1,-0x58(%rsp)
  setne  -0x51(%rsp)
  cmp    %r12,%rsi
  mulsd  (%rbx),%xmm2
  setae  %cl
  cmp    %r8,%rdi
  setae  %dl
  or     %cl,%dl
  movsd  %xmm2,(%rbx)
  mov    -0x68(%rsp),%rbx
  movsd  (%rbx),%xmm1
  movzbl -0x51(%rsp),%ebx
  je     L380
  test   %bl,%bl
  je     L380
  movupd -0x10(%r12),%xmm2
  movapd %xmm1,%xmm0
  unpcklpd %xmm0,%xmm0
  divpd  %xmm0,%xmm2
  movups %xmm2,-0x10(%r12)
  movupd -0x10(%r8),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,-0x10(%r8)
  cmp    $0x1,%r15d
  jbe    L695
  movupd (%r12),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,(%r12)
  movupd (%r8),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,(%r8)
  cmp    $0x2,%r15d
  je     L695
  movupd 0x10(%r12),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,0x10(%r12)
  movupd 0x10(%r8),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,0x10(%r8)
  cmp    $0x3,%r15d
  je     L695
  movupd 0x20(%r12),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,0x20(%r12)
  movupd 0x20(%r8),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,0x20(%r8)
  cmp    $0x4,%r15d
  je     L695
  movupd 0x30(%r12),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,0x30(%r12)
  movupd 0x30(%r8),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,0x30(%r8)
  cmp    $0x5,%r15d
  je     L695
  mov    $0x40,%edx
  mov    $0x5,%ecx
L74:
  movupd (%r12,%rdx,1),%xmm2
  add    $0x1,%ecx
  divpd  %xmm0,%xmm2
  movups %xmm2,(%r12,%rdx,1)
  movupd (%r8,%rdx,1),%xmm2
  divpd  %xmm0,%xmm2
  movups %xmm2,(%r8,%rdx,1)
  add    $0x10,%rdx
  cmp    %r15d,%ecx
  jne    L74
  nopl   0x0(%rax,%rax,1)
L695:
  mov    -0x58(%rsp),%ecx
  cmp    %ecx,-0x44(%rsp)
  je     L2
  movsd  (%rdi,%rax,8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  movsd  (%rsi,%rax,8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
L2:
  mov    $0x10,%ebx
  mov    -0x10(%rsp),%rcx
  mov    -0x18(%rsp),%rdx
  xor    %r9d,%r9d
  sub    %r12,%rbx
  mov    %rbx,-0x40(%rsp)
  lea    -0x8(%r12),%rbx
  mov    %rbx,-0x38(%rsp)
  nopw   0x0(%rax,%rax,1)
L811:
  cmp    %r13d,%r9d
  je     L964
  mov    -0x40(%rsp),%r11
  lea    0x10(%rdx),%rbx
  lea    0x10(%rcx),%rbp
  movsd  (%rdx,%r13,8),%xmm0
  lea    (%r11,%rdx,1),%r10
  cmp    $0x8,%r10
  setne  %r10b
  cmp    -0x38(%rsp),%rcx
  setne  %r11b
  and    %r11d,%r10d
  and    -0x51(%rsp),%r10b
  cmp    %rbx,%rcx
  setae  %r11b
  cmp    %rbp,%rdx
  setae  -0x60(%rsp)
  or     -0x60(%rsp),%r11b
  test   %r11b,%r10b
  je     L590
  cmp    %rbx,%rsi
  setae  %r11b
  cmp    %r8,%rdx
  setae  %r10b
  or     %r11b,%r10b
  je     L590
  movupd -0x10(%r12),%xmm6
  movapd %xmm0,%xmm1
  movupd (%rdx),%xmm2
  unpcklpd %xmm1,%xmm1
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,(%rdx)
  movupd -0x10(%r8),%xmm6
  movupd (%rcx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,(%rcx)
  cmp    $0x1,%r15d
  jbe    L198
  movupd (%r12),%xmm6
  movupd 0x10(%rdx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x10(%rdx)
  movupd (%r8),%xmm6
  movupd 0x10(%rcx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x10(%rcx)
  cmp    $0x2,%r15d
  je     L198
  movupd 0x10(%r12),%xmm6
  movupd 0x20(%rdx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x20(%rdx)
  movupd 0x10(%r8),%xmm6
  movupd 0x20(%rcx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x20(%rcx)
  cmp    $0x3,%r15d
  je     L198
  movupd 0x20(%r12),%xmm6
  movupd 0x30(%rdx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x30(%rdx)
  movupd 0x20(%r8),%xmm6
  movupd 0x30(%rcx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x30(%rcx)
  cmp    $0x4,%r15d
  je     L198
  movupd 0x30(%r12),%xmm6
  movupd 0x40(%rdx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x40(%rdx)
  movupd 0x30(%r8),%xmm6
  movupd 0x40(%rcx),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x40(%rcx)
  cmp    $0x5,%r15d
  je     L198
  mov    $0x40,%r10d
  mov    $0x5,%r11d
L223:
  movupd (%r12,%r10,1),%xmm6
  movupd (%rbx,%r10,1),%xmm2
  add    $0x1,%r11d
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,(%rbx,%r10,1)
  movupd (%r8,%r10,1),%xmm6
  movupd 0x0(%rbp,%r10,1),%xmm2
  mulpd  %xmm1,%xmm6
  subpd  %xmm6,%xmm2
  movups %xmm2,0x0(%rbp,%r10,1)
  add    $0x10,%r10
  cmp    %r11d,%r15d
  jne    L223
  nopl   (%rax)
L198:
  mov    -0x58(%rsp),%r11d
  cmp    %r11d,-0x44(%rsp)
  je     L964
  movsd  (%rdi,%rax,8),%xmm2
  movsd  (%rdx,%rax,8),%xmm1
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  mulsd  (%rsi,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  subsd  %xmm0,%xmm1
  movsd  %xmm1,(%rcx,%rax,8)
L964:
  lea    0x1(%r9),%r10d
  add    $0x50,%rdx
  add    $0x50,%rcx
  cmp    %r14d,%r9d
  je     L461
  mov    %r10d,%r9d
  jmp    L811
  nopl   0x0(%rax,%rax,1)
L590:
  mov    -0x30(%rsp),%r11
  xor    %r10d,%r10d
L614:
  movsd  (%rdi,%r10,8),%xmm2
  movsd  (%rdx,%r10,8),%xmm1
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movsd  %xmm1,(%rdx,%r10,8)
  movsd  (%rsi,%r10,8),%xmm2
  movsd  (%rcx,%r10,8),%xmm1
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movsd  %xmm1,(%rcx,%r10,8)
  add    $0x1,%r10
  cmp    %r10,%r11
  jne    L614
  jmp    L964
L781:
  movsd  %xmm0,0x30(%rax)
  cmp    $0x7,%edi
  jne    L391
  jmp    L295
L75:
  movsd  %xmm0,0x38(%rax)
  cmp    $0x8,%edi
  jne    L817
  jmp    L295
L65:
  movsd  %xmm0,0x40(%rax)
  pxor   %xmm2,%xmm2
  cmp    $0x9,%edi
  jne    L106
  jmp    L295
L72:
  mov    -0x30(%rsp),%r10
  xor    %r9d,%r9d
  nopl   0x0(%rax)
L405:
  movsd  (%rdi,%r9,8),%xmm0
  movsd  (%rdx,%r9,8),%xmm1
  movsd  %xmm1,(%rdi,%r9,8)
  movsd  %xmm0,(%rdx,%r9,8)
  movsd  (%rsi,%r9,8),%xmm0
  movsd  (%rcx,%r9,8),%xmm1
  movsd  %xmm1,(%rsi,%r9,8)
  movsd  %xmm0,(%rcx,%r9,8)
  add    $0x1,%r9
  cmp    %r10,%r9
  jne    L405
  jmp    L103
L881:
  movsd  %xmm0,0x48(%rax)
  pxor   %xmm1,%xmm1
  cmp    $0xa,%edi
  jne    L361
  jmp    L295
L119:
  movsd  %xmm0,(%rax,%rdx,8)
  add    $0x1,%rdx
  cmp    %edx,%edi
  jg     L532
  jmp    L295
L380:
  movsd  -0x10(%r12),%xmm0
  mov    -0x58(%rsp),%ebx
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%r12)
  movsd  -0x10(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%r8)
  cmp    $0x1,%ebx
  je     L2
  movsd  -0x8(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%r12)
  movsd  -0x8(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%r8)
  cmp    $0x2,%ebx
  je     L2
  movsd  (%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%r12)
  movsd  (%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%r8)
  cmp    $0x3,%ebx
  je     L2
  movsd  0x8(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%r12)
  movsd  0x8(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x8(%r8)
  cmp    $0x4,%ebx
  je     L2
  movsd  0x10(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%r12)
  movsd  0x10(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%r8)
  cmp    $0x5,%ebx
  je     L2
  movsd  0x18(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%r12)
  movsd  0x18(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x18(%r8)
  cmp    $0x6,%ebx
  je     L2
  movsd  0x20(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x20(%r12)
  movsd  0x20(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x20(%r8)
  cmp    $0x7,%ebx
  je     L2
  movsd  0x28(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%r12)
  movsd  0x28(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x28(%r8)
  cmp    $0x8,%ebx
  je     L2
  movsd  0x30(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x30(%r12)
  movsd  0x30(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x30(%r8)
  cmp    $0x9,%ebx
  je     L2
  movsd  0x38(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%r12)
  movsd  0x38(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%r8)
  cmp    $0xa,%ebx
  je     L2
  movsd  0x40(%r12),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x40(%r12)
  movsd  0x40(%r8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,0x40(%r8)
  cmp    $0xb,%ebx
  je     L2
  mov    $0xb,%edx
L567:
  movsd  (%rdi,%rdx,8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdi,%rdx,8)
  movsd  (%rsi,%rdx,8),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rsi,%rdx,8)
  add    $0x1,%rdx
  cmp    %edx,-0x58(%rsp)
  jg     L567
  jmp    L2
L777:
  mov    D25(%rip),%rsi
  mov    -0x28(%rsp),%rax
  mov    %rsi,(%rcx)
  movl   $0x0,(%rax)
  jmp    L376
```

tool_calls: name: extract_symbolic_data
arguments: label: D25
type_infered: f64
name: extract_symbolic_data
arguments: label: D37
type_infered: qword
name: extract_symbolic_data
arguments: label: D31
type_infered: f32[2]

tool: D25: 1

tool: D37: 9223372036854775807

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

assistant: ```c
void invers(int n, double a[10][10], double eps, double b[10][10], double *det_a, int *err) {
  int i, j, k, pozmax;
  double amax, aux;
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
      if (i == j)
        b[i][j] = 1.0;
      else
        b[i][j] = 0.0;
  *det_a = 1.0;
  k = 0;
  *err = 0;
  while ((k < n) && (*err == 0)) {
    amax = fabs(a[k][k]);
    pozmax = k;
    for (i = k + 1; i < n; i++)
      if (fabs(a[i][k]) > amax) {
        amax = fabs(a[i][k]);
        pozmax = i;
      };
    if (k != pozmax) {
      for (j = 0; j < n; j++) {
        aux = a[k][j];
        a[k][j] = a[pozmax][j];
        a[pozmax][j] = aux;
        aux = b[k][j];
        b[k][j] = b[pozmax][j];
        b[pozmax][j] = aux;
      };
      *det_a = -*det_a;
    };
    if (fabs(a[k][k]) < eps)
      *err = 1;
    else {
      *det_a = *det_a * a[k][k];
      aux = a[k][k];
      for (j = 0; j < n; j++) {
        a[k][j] = a[k][j] / aux;
        b[k][j] = b[k][j] / aux;
      };
      for (i = 0; i < n; i++)
        if (i != k) {
          aux = a[i][k];
          for (j = 0; j < n; j++) {
            a[i][j] = a[i][j] - a[k][j] * aux;
            b[i][j] = b[i][j] - b[k][j] * aux;
          }
        }
    }
    k++;
  }
}
```