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

```asm
<invertMatrix>:
  endbr64
  push   %r14
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  pxor   %xmm3,%xmm3
  push   %r13
  pxor   %xmm4,%xmm4
  pxor   %xmm5,%xmm5
  pxor   %xmm6,%xmm6
  push   %r12
  mov    %rdi,%r14
  push   %rbp
  push   %rbx
  sub    $0x140,%rsp
  mov    %fs:0x28,%rdx
  mov    %rdx,0x138(%rsp)
  xor    %edx,%edx
  cvtss2sd 0x4(%rsi),%xmm0
  movsd  %xmm0,0x38(%rsp)
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsi),%xmm0
  cvtss2sd 0x14(%rsi),%xmm1
  movsd  %xmm0,0x40(%rsp)
  pxor   %xmm0,%xmm0
  movsd  %xmm1,0x78(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0xc(%rsi),%xmm0
  cvtss2sd (%rsi),%xmm3
  cvtss2sd 0x18(%rsi),%xmm1
  movsd  %xmm0,0x48(%rsp)
  movsd  D61(%rip),%xmm0
  cvtss2sd 0x10(%rsi),%xmm4
  movsd  %xmm1,0x80(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0x1c(%rsi),%xmm1
  movsd  %xmm3,0x30(%rsp)
  movsd  %xmm1,0x88(%rsp)
  pxor   %xmm1,%xmm1
  movq   $0x0,0x68(%rsp)
  movq   $0x0,0x60(%rsp)
  movq   $0x0,0x58(%rsp)
  movq   $0x0,0xa8(%rsp)
  movq   $0x0,0xa0(%rsp)
  movsd  %xmm0,0x50(%rsp)
  movsd  %xmm4,0x70(%rsp)
  movsd  %xmm0,0x98(%rsp)
  movq   $0x0,0x90(%rsp)
  cvtss2sd 0x24(%rsi),%xmm1
  movq   D30(%rip),%xmm2
  cvtss2sd 0x20(%rsi),%xmm5
  movsd  %xmm1,0xb8(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0x30(%rsi),%xmm6
  movapd %xmm5,%xmm7
  cvtss2sd 0x28(%rsi),%xmm1
  andpd  %xmm2,%xmm7
  movsd  %xmm1,0xc0(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0x2c(%rsi),%xmm1
  movsd  %xmm1,0xc8(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0x34(%rsi),%xmm1
  movsd  %xmm1,0xf8(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0x38(%rsi),%xmm1
  movsd  %xmm1,0x100(%rsp)
  pxor   %xmm1,%xmm1
  cvtss2sd 0x3c(%rsi),%xmm1
  movsd  %xmm1,0x108(%rsp)
  movapd %xmm6,%xmm1
  movq   $0x0,0xe8(%rsp)
  andpd  %xmm2,%xmm1
  movq   $0x0,0xd8(%rsp)
  comisd %xmm7,%xmm1
  movq   $0x0,0xd0(%rsp)
  movq   $0x0,0x120(%rsp)
  movq   $0x0,0x118(%rsp)
  movq   $0x0,0x110(%rsp)
  movsd  %xmm5,0xb0(%rsp)
  movsd  %xmm0,0xe0(%rsp)
  movsd  %xmm6,0xf0(%rsp)
  movsd  %xmm0,0x128(%rsp)
  ja     L278
  movapd %xmm7,%xmm1
  movapd %xmm5,%xmm6
  lea    0xf0(%rsp),%rbx
  lea    0xb0(%rsp),%r13
L63:
  movapd %xmm4,%xmm5
  lea    0x70(%rsp),%rbp
  andpd  %xmm2,%xmm5
  comisd %xmm5,%xmm1
  ja     L199
  mov    %r13,%rbp
  movapd %xmm5,%xmm1
  movapd %xmm4,%xmm6
  lea    0x70(%rsp),%r13
L199:
  movapd %xmm3,%xmm4
  lea    0x30(%rsp),%r12
  andpd  %xmm2,%xmm4
  comisd %xmm4,%xmm1
  ja     L107
  mov    %r13,%r12
  movapd %xmm3,%xmm6
  lea    0x30(%rsp),%r13
L107:
  pxor   %xmm1,%xmm1
  ucomisd %xmm1,%xmm6
  jp     L294
  je     L237
L294:
  movsd  (%r12),%xmm5
  movsd  0x0(%rbp),%xmm4
  movsd  (%rbx),%xmm3
  movsd  0x8(%r12),%xmm7
  divsd  %xmm6,%xmm5
  divsd  %xmm6,%xmm4
  movapd %xmm5,%xmm8
  divsd  %xmm6,%xmm3
  movsd  0x8(%r13),%xmm6
  mulsd  %xmm6,%xmm8
  subsd  %xmm8,%xmm7
  movapd %xmm4,%xmm8
  mulsd  %xmm6,%xmm8
  movsd  %xmm7,0x8(%r12)
  movsd  0x8(%rbp),%xmm7
  subsd  %xmm8,%xmm7
  movapd %xmm5,%xmm8
  movsd  %xmm7,0x8(%rbp)
  movsd  0x8(%rbx),%xmm7
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm7
  movsd  %xmm7,0x8(%rbx)
  movsd  0x10(%r13),%xmm6
  movsd  0x10(%r12),%xmm7
  mulsd  %xmm6,%xmm8
  subsd  %xmm8,%xmm7
  movapd %xmm4,%xmm8
  mulsd  %xmm6,%xmm8
  mulsd  %xmm3,%xmm6
  movsd  %xmm7,0x10(%r12)
  movsd  0x10(%rbp),%xmm7
  subsd  %xmm8,%xmm7
  movapd %xmm5,%xmm8
  movsd  %xmm7,0x10(%rbp)
  movsd  0x10(%rbx),%xmm7
  subsd  %xmm6,%xmm7
  movsd  %xmm7,0x10(%rbx)
  movsd  0x18(%r13),%xmm6
  movsd  0x18(%r12),%xmm7
  mulsd  %xmm6,%xmm8
  subsd  %xmm8,%xmm7
  movapd %xmm4,%xmm8
  mulsd  %xmm6,%xmm8
  mulsd  %xmm3,%xmm6
  movsd  %xmm7,0x18(%r12)
  movsd  0x18(%rbp),%xmm7
  subsd  %xmm8,%xmm7
  movsd  %xmm7,0x18(%rbp)
  movsd  0x18(%rbx),%xmm7
  subsd  %xmm6,%xmm7
  movsd  %xmm7,0x18(%rbx)
  movsd  0x20(%r13),%xmm6
  ucomisd %xmm1,%xmm6
  jp     L258
  jne    L258
L262:
  movsd  0x28(%r13),%xmm6
  ucomisd %xmm1,%xmm6
  jp     L321
  jne    L321
L406:
  movsd  0x30(%r13),%xmm6
  ucomisd %xmm1,%xmm6
  jp     L86
  jne    L86
L268:
  movsd  0x38(%r13),%xmm6
  ucomisd %xmm1,%xmm6
  jp     L24
  jne    L24
L113:
  movsd  0x8(%rbx),%xmm5
  movsd  0x8(%rbp),%xmm4
  movapd %xmm5,%xmm6
  movapd %xmm4,%xmm3
  andpd  %xmm2,%xmm6
  andpd  %xmm2,%xmm3
  comisd %xmm3,%xmm6
  jbe    L139
  mov    %rbp,%rax
  movapd %xmm6,%xmm3
  movapd %xmm5,%xmm4
  mov    %rbx,%rbp
  mov    %rax,%rbx
L139:
  movsd  0x8(%r12),%xmm5
  movapd %xmm5,%xmm6
  andpd  %xmm2,%xmm6
  comisd %xmm6,%xmm3
  jbe    L241
  mov    %r12,%rax
  movapd %xmm4,%xmm5
  mov    %rbp,%r12
  mov    %rax,%rbp
L241:
  ucomisd %xmm1,%xmm5
  jp     L160
  je     L286
L160:
  movsd  0x8(%rbp),%xmm4
  movsd  0x8(%rbx),%xmm3
  movsd  0x10(%r12),%xmm6
  divsd  %xmm5,%xmm4
  divsd  %xmm5,%xmm3
  movsd  0x10(%rbp),%xmm5
  mulsd  %xmm4,%xmm6
  subsd  %xmm6,%xmm5
  movsd  %xmm5,0x10(%rbp)
  movsd  0x10(%r12),%xmm6
  movsd  0x10(%rbx),%xmm5
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm5
  movsd  %xmm5,0x10(%rbx)
  movsd  0x18(%r12),%xmm6
  movsd  0x18(%rbp),%xmm5
  mulsd  %xmm4,%xmm6
  subsd  %xmm6,%xmm5
  movsd  %xmm5,0x18(%rbp)
  movsd  0x18(%r12),%xmm6
  movsd  0x18(%rbx),%xmm5
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm5
  movsd  %xmm5,0x18(%rbx)
  movsd  0x20(%r12),%xmm5
  ucomisd %xmm1,%xmm5
  jp     L124
  jne    L124
L336:
  movsd  0x28(%r12),%xmm5
  ucomisd %xmm1,%xmm5
  jp     L421
  jne    L421
L283:
  movsd  0x30(%r12),%xmm5
  ucomisd %xmm1,%xmm5
  jp     L194
  jne    L194
L301:
  movsd  0x38(%r12),%xmm5
  ucomisd %xmm1,%xmm5
  jp     L175
  jne    L175
L152:
  movsd  0x10(%rbx),%xmm3
  movsd  0x10(%rbp),%xmm4
  movapd %xmm3,%xmm5
  andpd  %xmm2,%xmm5
  andpd  %xmm4,%xmm2
  comisd %xmm2,%xmm5
  jbe    L143
  mov    %rbp,%rax
  movapd %xmm3,%xmm4
  mov    %rbx,%rbp
  mov    %rax,%rbx
L143:
  ucomisd %xmm1,%xmm4
  jp     L424
  je     L137
L424:
  movsd  0x10(%rbx),%xmm3
  movsd  0x18(%rbp),%xmm2
  movsd  0x18(%rbx),%xmm7
  movsd  0x28(%rbx),%xmm5
  divsd  %xmm4,%xmm3
  mulsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm7
  movsd  0x20(%rbx),%xmm2
  movsd  %xmm7,0x18(%rbx)
  movsd  0x20(%rbp),%xmm4
  ucomisd %xmm1,%xmm7
  mulsd  %xmm3,%xmm4
  subsd  %xmm4,%xmm2
  movsd  %xmm2,0x20(%rbx)
  movsd  0x28(%rbp),%xmm4
  mulsd  %xmm3,%xmm4
  subsd  %xmm4,%xmm5
  movsd  0x30(%rbx),%xmm4
  movsd  %xmm5,0x28(%rbx)
  movsd  0x30(%rbp),%xmm6
  mulsd  %xmm3,%xmm6
  subsd  %xmm6,%xmm4
  movsd  0x38(%rbx),%xmm6
  movsd  %xmm4,0x30(%rbx)
  mulsd  0x38(%rbp),%xmm3
  subsd  %xmm3,%xmm6
  jp     L428
  je     L38
L428:
  movapd %xmm0,%xmm1
  divsd  %xmm7,%xmm1
  mulsd  %xmm1,%xmm2
  mulsd  %xmm1,%xmm5
  mulsd  %xmm1,%xmm4
  mulsd  %xmm1,%xmm6
  movsd  %xmm2,0x20(%rbx)
  movsd  %xmm5,0x28(%rbx)
  movsd  %xmm4,0x30(%rbx)
  movapd %xmm0,%xmm4
  movsd  %xmm6,0x38(%rbx)
  movsd  0x18(%rbp),%xmm1
  movsd  0x20(%rbp),%xmm3
  divsd  0x10(%rbp),%xmm4
  mulsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm3
  movsd  0x28(%rbp),%xmm2
  mulsd  %xmm4,%xmm3
  movsd  %xmm3,0x20(%rbp)
  movsd  0x28(%rbx),%xmm3
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  mulsd  %xmm4,%xmm2
  movsd  %xmm2,0x28(%rbp)
  movsd  0x30(%rbx),%xmm3
  movsd  0x30(%rbp),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  mulsd  %xmm4,%xmm2
  movsd  %xmm2,0x30(%rbp)
  mulsd  0x38(%rbx),%xmm1
  movsd  0x38(%rbp),%xmm2
  subsd  %xmm1,%xmm2
  mulsd  %xmm4,%xmm2
  movsd  %xmm2,0x38(%rbp)
  movsd  0x20(%rbx),%xmm3
  movsd  0x18(%r12),%xmm1
  movsd  0x20(%r12),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  movsd  %xmm2,0x20(%r12)
  movsd  0x28(%rbx),%xmm3
  movsd  0x28(%r12),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  movsd  %xmm2,0x28(%r12)
  movsd  0x30(%rbx),%xmm3
  movsd  0x30(%r12),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  movsd  %xmm2,0x30(%r12)
  mulsd  0x38(%rbx),%xmm1
  movsd  0x38(%r12),%xmm2
  subsd  %xmm1,%xmm2
  movsd  %xmm2,0x38(%r12)
  movsd  0x18(%r13),%xmm1
  movsd  0x20(%rbx),%xmm3
  movsd  0x20(%r13),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  movsd  %xmm2,0x20(%r13)
  movsd  0x28(%rbx),%xmm3
  movsd  0x28(%r13),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  movsd  %xmm2,0x28(%r13)
  movsd  0x30(%rbx),%xmm3
  movsd  0x30(%r13),%xmm2
  mulsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm2
  movapd %xmm0,%xmm3
  movsd  %xmm2,0x30(%r13)
  mulsd  0x38(%rbx),%xmm1
  movsd  0x38(%r13),%xmm2
  subsd  %xmm1,%xmm2
  movsd  %xmm2,0x38(%r13)
  movsd  0x20(%rbp),%xmm4
  movsd  0x10(%r12),%xmm1
  divsd  0x8(%r12),%xmm3
  movsd  0x20(%r12),%xmm2
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x20(%r12)
  movsd  0x28(%rbp),%xmm4
  movsd  0x28(%r12),%xmm2
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x28(%r12)
  movsd  0x30(%rbp),%xmm4
  movsd  0x30(%r12),%xmm2
  mulsd  %xmm1,%xmm4
  subsd  %xmm4,%xmm2
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x30(%r12)
  mulsd  0x38(%rbp),%xmm1
  movsd  0x38(%r12),%xmm2
  subsd  %xmm1,%xmm2
  mulsd  %xmm3,%xmm2
  movsd  %xmm2,0x38(%r12)
  movsd  0x10(%r13),%xmm1
  movsd  0x20(%rbp),%xmm2
  movsd  0x20(%r13),%xmm4
  movsd  0x28(%r13),%xmm3
  mulsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm4
  movsd  %xmm4,0x20(%r13)
  movsd  0x28(%rbp),%xmm2
  mulsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm3
  movsd  %xmm3,0x28(%r13)
  movsd  0x30(%rbp),%xmm5
  movsd  0x30(%r13),%xmm2
  divsd  0x0(%r13),%xmm0
  mulsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm2
  movsd  %xmm2,0x30(%r13)
  movsd  0x38(%rbp),%xmm5
  mulsd  %xmm1,%xmm5
  movsd  0x38(%r13),%xmm1
  subsd  %xmm5,%xmm1
  movsd  0x8(%r13),%xmm5
  movsd  %xmm1,0x38(%r13)
  movsd  0x20(%r12),%xmm6
  mulsd  %xmm5,%xmm6
  subsd  %xmm6,%xmm4
  mulsd  %xmm0,%xmm4
  movsd  %xmm4,0x20(%r13)
  movsd  0x28(%r12),%xmm6
  cvtsd2ss %xmm4,%xmm4
  movss  %xmm4,(%r14)
  mulsd  %xmm5,%xmm6
  subsd  %xmm6,%xmm3
  mulsd  %xmm0,%xmm3
  movsd  %xmm3,0x28(%r13)
  movsd  0x30(%r12),%xmm6
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,0x4(%r14)
  mulsd  %xmm5,%xmm6
  subsd  %xmm6,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  %xmm2,0x30(%r13)
  mulsd  0x38(%r12),%xmm5
  cvtsd2ss %xmm2,%xmm2
  movss  %xmm2,0x8(%r14)
  subsd  %xmm5,%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,0x38(%r13)
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0xc(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x20(%r12),%xmm0
  movss  %xmm0,0x10(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x28(%r12),%xmm0
  movss  %xmm0,0x14(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x30(%r12),%xmm0
  movss  %xmm0,0x18(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x38(%r12),%xmm0
  movss  %xmm0,0x1c(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x20(%rbp),%xmm0
  movss  %xmm0,0x20(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x28(%rbp),%xmm0
  movss  %xmm0,0x24(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x30(%rbp),%xmm0
  movss  %xmm0,0x28(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x38(%rbp),%xmm0
  movss  %xmm0,0x2c(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x20(%rbx),%xmm0
  movss  %xmm0,0x30(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x28(%rbx),%xmm0
  movss  %xmm0,0x34(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x30(%rbx),%xmm0
  movss  %xmm0,0x38(%r14)
  pxor   %xmm0,%xmm0
  cvtsd2ss 0x38(%rbx),%xmm0
  movss  %xmm0,0x3c(%r14)
  mov    0x138(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L382
  add    $0x140,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L175:
  mulsd  %xmm5,%xmm4
  movsd  0x38(%rbp),%xmm6
  mulsd  %xmm5,%xmm3
  subsd  %xmm4,%xmm6
  movsd  %xmm6,0x38(%rbp)
  movsd  0x38(%rbx),%xmm4
  subsd  %xmm3,%xmm4
  movsd  %xmm4,0x38(%rbx)
  jmp    L152
  nopl   0x0(%rax)
L194:
  movapd %xmm4,%xmm7
  movsd  0x30(%rbp),%xmm6
  mulsd  %xmm5,%xmm7
  mulsd  %xmm3,%xmm5
  subsd  %xmm7,%xmm6
  movsd  %xmm6,0x30(%rbp)
  movsd  0x30(%rbx),%xmm6
  subsd  %xmm5,%xmm6
  movsd  %xmm6,0x30(%rbx)
  jmp    L301
  nopl   (%rax)
L421:
  movapd %xmm4,%xmm7
  movsd  0x28(%rbp),%xmm6
  mulsd  %xmm5,%xmm7
  mulsd  %xmm3,%xmm5
  subsd  %xmm7,%xmm6
  movsd  %xmm6,0x28(%rbp)
  movsd  0x28(%rbx),%xmm6
  subsd  %xmm5,%xmm6
  movsd  %xmm6,0x28(%rbx)
  jmp    L283
  nopl   (%rax)
L124:
  movapd %xmm4,%xmm7
  movsd  0x20(%rbp),%xmm6
  mulsd  %xmm5,%xmm7
  mulsd  %xmm3,%xmm5
  subsd  %xmm7,%xmm6
  movsd  %xmm6,0x20(%rbp)
  movsd  0x20(%rbx),%xmm6
  subsd  %xmm5,%xmm6
  movsd  %xmm6,0x20(%rbx)
  jmp    L336
  nopl   (%rax)
L24:
  mulsd  %xmm6,%xmm5
  movsd  0x38(%r12),%xmm7
  mulsd  %xmm6,%xmm4
  mulsd  %xmm6,%xmm3
  subsd  %xmm5,%xmm7
  movsd  %xmm7,0x38(%r12)
  movsd  0x38(%rbp),%xmm5
  subsd  %xmm4,%xmm5
  movsd  %xmm5,0x38(%rbp)
  movsd  0x38(%rbx),%xmm4
  subsd  %xmm3,%xmm4
  movsd  %xmm4,0x38(%rbx)
  jmp    L113
  nop
L86:
  movapd %xmm5,%xmm8
  movsd  0x30(%r12),%xmm7
  mulsd  %xmm6,%xmm8
  subsd  %xmm8,%xmm7
  movapd %xmm4,%xmm8
  mulsd  %xmm6,%xmm8
  mulsd  %xmm3,%xmm6
  movsd  %xmm7,0x30(%r12)
  movsd  0x30(%rbp),%xmm7
  subsd  %xmm8,%xmm7
  movsd  %xmm7,0x30(%rbp)
  movsd  0x30(%rbx),%xmm7
  subsd  %xmm6,%xmm7
  movsd  %xmm7,0x30(%rbx)
  jmp    L268
  nopl   (%rax)
L321:
  movapd %xmm5,%xmm8
  movsd  0x28(%r12),%xmm7
  mulsd  %xmm6,%xmm8
  subsd  %xmm8,%xmm7
  movapd %xmm4,%xmm8
  mulsd  %xmm6,%xmm8
  mulsd  %xmm3,%xmm6
  movsd  %xmm7,0x28(%r12)
  movsd  0x28(%rbp),%xmm7
  subsd  %xmm8,%xmm7
  movsd  %xmm7,0x28(%rbp)
  movsd  0x28(%rbx),%xmm7
  subsd  %xmm6,%xmm7
  movsd  %xmm7,0x28(%rbx)
  jmp    L406
  nopl   (%rax)
L258:
  movapd %xmm5,%xmm8
  movsd  0x20(%r12),%xmm7
  mulsd  %xmm6,%xmm8
  subsd  %xmm8,%xmm7
  movapd %xmm4,%xmm8
  mulsd  %xmm6,%xmm8
  mulsd  %xmm3,%xmm6
  movsd  %xmm7,0x20(%r12)
  movsd  0x20(%rbp),%xmm7
  subsd  %xmm8,%xmm7
  movsd  %xmm7,0x20(%rbp)
  movsd  0x20(%rbx),%xmm7
  subsd  %xmm6,%xmm7
  movsd  %xmm7,0x20(%rbx)
  jmp    L262
  nopl   (%rax)
L278:
  lea    0xb0(%rsp),%rbx
  lea    0xf0(%rsp),%r13
  jmp    L63
  nopl   (%rax)
L237:
  xor    %edi,%edi
  xor    %eax,%eax
  movsd  %xmm6,0x8(%rsp)
  call   <assert@plt>
  mov    D61(%rip),%rax
  movsd  0x8(%rsp),%xmm6
  pxor   %xmm1,%xmm1
  movq   D30(%rip),%xmm2
  movq   %rax,%xmm0
  jmp    L294
  nopw   0x0(%rax,%rax,1)
L38:
  xor    %edi,%edi
  xor    %eax,%eax
  movsd  %xmm6,0x28(%rsp)
  movsd  %xmm4,0x20(%rsp)
  movsd  %xmm5,0x18(%rsp)
  movsd  %xmm2,0x10(%rsp)
  movsd  %xmm7,0x8(%rsp)
  call   <assert@plt>
  mov    D61(%rip),%rax
  movsd  0x28(%rsp),%xmm6
  movsd  0x20(%rsp),%xmm4
  movsd  0x18(%rsp),%xmm5
  movsd  0x10(%rsp),%xmm2
  movsd  0x8(%rsp),%xmm7
  movq   %rax,%xmm0
  jmp    L428
  cs nopw 0x0(%rax,%rax,1)
L137:
  xor    %edi,%edi
  xor    %eax,%eax
  movsd  %xmm4,0x8(%rsp)
  call   <assert@plt>
  mov    D61(%rip),%rax
  movsd  0x8(%rsp),%xmm4
  pxor   %xmm1,%xmm1
  movq   %rax,%xmm0
  jmp    L424
  nopw   0x0(%rax,%rax,1)
L286:
  xor    %edi,%edi
  xor    %eax,%eax
  movsd  %xmm5,0x8(%rsp)
  call   <assert@plt>
  mov    D61(%rip),%rax
  movsd  0x8(%rsp),%xmm5
  pxor   %xmm1,%xmm1
  movq   D30(%rip),%xmm2
  movq   %rax,%xmm0
  jmp    L160
L382:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D61
type_infered: f64
name: extract_symbolic_data
arguments: data_label: D30
type_infered: qword

tool: D61: 1

tool: D30: 9223372036854775807

assistant: ```c
void invertMatrix(float *out, const float *m) {
  double wtmp[4][8];
  double m0, m1, m2, m3, s;
  double *r0, *r1, *r2, *r3;
  r0 = wtmp[0], r1 = wtmp[1], r2 = wtmp[2], r3 = wtmp[3];
  r0[0] = (m)[(0) * 4 + (0)], r0[1] = (m)[(0) * 4 + (1)], r0[2] = (m)[(0) * 4 + (2)], r0[3] = (m)[(0) * 4 + (3)], r0[4] = 1.0, r0[5] = r0[6] = r0[7] = 0.0, r1[0] = (m)[(1) * 4 + (0)], r1[1] = (m)[(1) * 4 + (1)], r1[2] = (m)[(1) * 4 + (2)], r1[3] = (m)[(1) * 4 + (3)], r1[5] = 1.0, r1[4] = r1[6] = r1[7] = 0.0, r2[0] = (m)[(2) * 4 + (0)], r2[1] = (m)[(2) * 4 + (1)], r2[2] = (m)[(2) * 4 + (2)], r2[3] = (m)[(2) * 4 + (3)], r2[6] = 1.0, r2[4] = r2[5] = r2[7] = 0.0, r3[0] = (m)[(3) * 4 + (0)], r3[1] = (m)[(3) * 4 + (1)], r3[2] = (m)[(3) * 4 + (2)], r3[3] = (m)[(3) * 4 + (3)], r3[7] = 1.0, r3[4] = r3[5] = r3[6] = 0.0;
  if (fabs(r3[0]) > fabs(r2[0])) {
    double *_tmp = r3;
    (r3) = (r2);
    (r2) = _tmp;
  };
  if (fabs(r2[0]) > fabs(r1[0])) {
    double *_tmp = r2;
    (r2) = (r1);
    (r1) = _tmp;
  };
  if (fabs(r1[0]) > fabs(r0[0])) {
    double *_tmp = r1;
    (r1) = (r0);
    (r0) = _tmp;
  };
  if (0.0 == r0[0]) {
    assert(!"could not invert matrix");
  }
  m1 = r1[0] / r0[0];
  m2 = r2[0] / r0[0];
  m3 = r3[0] / r0[0];
  s = r0[1];
  r1[1] -= m1 * s;
  r2[1] -= m2 * s;
  r3[1] -= m3 * s;
  s = r0[2];
  r1[2] -= m1 * s;
  r2[2] -= m2 * s;
  r3[2] -= m3 * s;
  s = r0[3];
  r1[3] -= m1 * s;
  r2[3] -= m2 * s;
  r3[3] -= m3 * s;
  s = r0[4];
  if (s != 0.0) {
    r1[4] -= m1 * s;
    r2[4] -= m2 * s;
    r3[4] -= m3 * s;
  }
  s = r0[5];
  if (s != 0.0) {
    r1[5] -= m1 * s;
    r2[5] -= m2 * s;
    r3[5] -= m3 * s;
  }
  s = r0[6];
  if (s != 0.0) {
    r1[6] -= m1 * s;
    r2[6] -= m2 * s;
    r3[6] -= m3 * s;
  }
  s = r0[7];
  if (s != 0.0) {
    r1[7] -= m1 * s;
    r2[7] -= m2 * s;
    r3[7] -= m3 * s;
  }
  if (fabs(r3[1]) > fabs(r2[1])) {
    double *_tmp = r3;
    (r3) = (r2);
    (r2) = _tmp;
  };
  if (fabs(r2[1]) > fabs(r1[1])) {
    double *_tmp = r2;
    (r2) = (r1);
    (r1) = _tmp;
  };
  if (0.0 == r1[1]) {
    assert(!"could not invert matrix");
  }
  m2 = r2[1] / r1[1];
  m3 = r3[1] / r1[1];
  r2[2] -= m2 * r1[2];
  r3[2] -= m3 * r1[2];
  r2[3] -= m2 * r1[3];
  r3[3] -= m3 * r1[3];
  s = r1[4];
  if (0.0 != s) {
    r2[4] -= m2 * s;
    r3[4] -= m3 * s;
  }
  s = r1[5];
  if (0.0 != s) {
    r2[5] -= m2 * s;
    r3[5] -= m3 * s;
  }
  s = r1[6];
  if (0.0 != s) {
    r2[6] -= m2 * s;
    r3[6] -= m3 * s;
  }
  s = r1[7];
  if (0.0 != s) {
    r2[7] -= m2 * s;
    r3[7] -= m3 * s;
  }
  if (fabs(r3[2]) > fabs(r2[2])) {
    double *_tmp = r3;
    (r3) = (r2);
    (r2) = _tmp;
  };
  if (0.0 == r2[2]) {
    assert(!"could not invert matrix");
  }
  m3 = r3[2] / r2[2];
  r3[3] -= m3 * r2[3], r3[4] -= m3 * r2[4], r3[5] -= m3 * r2[5], r3[6] -= m3 * r2[6], r3[7] -= m3 * r2[7];
  if (0.0 == r3[3]) {
    assert(!"could not invert matrix");
  }
  s = 1.0 / r3[3];
  r3[4] *= s;
  r3[5] *= s;
  r3[6] *= s;
  r3[7] *= s;
  m2 = r2[3];
  s = 1.0 / r2[2];
  r2[4] = s * (r2[4] - r3[4] * m2), r2[5] = s * (r2[5] - r3[5] * m2), r2[6] = s * (r2[6] - r3[6] * m2), r2[7] = s * (r2[7] - r3[7] * m2);
  m1 = r1[3];
  r1[4] -= r3[4] * m1, r1[5] -= r3[5] * m1, r1[6] -= r3[6] * m1, r1[7] -= r3[7] * m1;
  m0 = r0[3];
  r0[4] -= r3[4] * m0, r0[5] -= r3[5] * m0, r0[6] -= r3[6] * m0, r0[7] -= r3[7] * m0;
  m1 = r1[2];
  s = 1.0 / r1[1];
  r1[4] = s * (r1[4] - r2[4] * m1), r1[5] = s * (r1[5] - r2[5] * m1), r1[6] = s * (r1[6] - r2[6] * m1), r1[7] = s * (r1[7] - r2[7] * m1);
  m0 = r0[2];
  r0[4] -= r2[4] * m0, r0[5] -= r2[5] * m0, r0[6] -= r2[6] * m0, r0[7] -= r2[7] * m0;
  m0 = r0[1];
  s = 1.0 / r0[0];
  r0[4] = s * (r0[4] - r1[4] * m0), r0[5] = s * (r0[5] - r1[5] * m0), r0[6] = s * (r0[6] - r1[6] * m0), r0[7] = s * (r0[7] - r1[7] * m0);
  (out)[(0) * 4 + (0)] = (float)r0[4];
  (out)[(0) * 4 + (1)] = (float)r0[5], (out)[(0) * 4 + (2)] = (float)r0[6];
  (out)[(0) * 4 + (3)] = (float)r0[7], (out)[(1) * 4 + (0)] = (float)r1[4];
  (out)[(1) * 4 + (1)] = (float)r1[5], (out)[(1) * 4 + (2)] = (float)r1[6];
  (out)[(1) * 4 + (3)] = (float)r1[7], (out)[(2) * 4 + (0)] = (float)r2[4];
  (out)[(2) * 4 + (1)] = (float)r2[5], (out)[(2) * 4 + (2)] = (float)r2[6];
  (out)[(2) * 4 + (3)] = (float)r2[7], (out)[(3) * 4 + (0)] = (float)r3[4];
  (out)[(3) * 4 + (1)] = (float)r3[5], (out)[(3) * 4 + (2)] = (float)r3[6];
  (out)[(3) * 4 + (3)] = (float)r3[7];
}
```