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

```asm
<invert8>:
  endbr64
  mov    %rsi,%rdx
  movss  0x8(%rdi),%xmm8
  movss  0x1c(%rdi),%xmm6
  movss  0x18(%rdi),%xmm4
  movss  0xc(%rdi),%xmm7
  movaps %xmm8,%xmm9
  mulss  %xmm6,%xmm9
  movaps %xmm4,%xmm0
  mulss  %xmm7,%xmm0
  subss  %xmm0,%xmm9
  movss  0x2c(%rdi),%xmm0
  movss  0x28(%rdi),%xmm5
  movaps %xmm8,%xmm10
  mulss  %xmm0,%xmm10
  movaps %xmm7,%xmm1
  mulss  %xmm5,%xmm1
  subss  %xmm1,%xmm10
  movss  0x3c(%rdi),%xmm12
  movss  0x38(%rdi),%xmm3
  movaps %xmm8,%xmm2
  mulss  %xmm12,%xmm2
  mulss  %xmm3,%xmm7
  subss  %xmm7,%xmm2
  movaps %xmm4,%xmm11
  mulss  %xmm0,%xmm11
  movaps %xmm6,%xmm7
  mulss  %xmm5,%xmm7
  subss  %xmm7,%xmm11
  mulss  %xmm12,%xmm4
  mulss  %xmm3,%xmm6
  subss  %xmm6,%xmm4
  mulss  %xmm12,%xmm5
  mulss  %xmm3,%xmm0
  subss  %xmm0,%xmm5
  movaps %xmm5,%xmm1
  movaps %xmm5,%xmm0
  mulss  0x14(%rdi),%xmm0
  movaps %xmm4,%xmm3
  mulss  0x24(%rdi),%xmm3
  subss  %xmm3,%xmm0
  movaps %xmm11,%xmm3
  mulss  0x34(%rdi),%xmm3
  addss  %xmm3,%xmm0
  movss  %xmm0,(%rsi)
  movaps %xmm2,%xmm7
  mulss  0x24(%rdi),%xmm7
  movaps %xmm10,%xmm3
  mulss  0x34(%rdi),%xmm3
  subss  %xmm3,%xmm7
  movaps %xmm5,%xmm3
  mulss  0x4(%rdi),%xmm3
  subss  %xmm3,%xmm7
  movss  %xmm7,0x4(%rsi)
  movaps %xmm9,%xmm6
  mulss  0x34(%rdi),%xmm6
  movaps %xmm2,%xmm3
  mulss  0x14(%rdi),%xmm3
  subss  %xmm3,%xmm6
  movaps %xmm4,%xmm3
  mulss  0x4(%rdi),%xmm3
  addss  %xmm3,%xmm6
  movss  %xmm6,0x8(%rsi)
  movaps %xmm10,%xmm5
  mulss  0x14(%rdi),%xmm5
  movaps %xmm11,%xmm3
  mulss  0x4(%rdi),%xmm3
  subss  %xmm3,%xmm5
  movaps %xmm9,%xmm3
  mulss  0x24(%rdi),%xmm3
  subss  %xmm3,%xmm5
  movss  %xmm5,0xc(%rsi)
  movaps %xmm4,%xmm8
  mulss  0x20(%rdi),%xmm8
  movaps %xmm1,%xmm3
  mulss  0x10(%rdi),%xmm3
  subss  %xmm3,%xmm8
  movaps %xmm11,%xmm3
  mulss  0x30(%rdi),%xmm3
  subss  %xmm3,%xmm8
  movss  %xmm8,0x10(%rsi)
  movaps %xmm1,%xmm3
  mulss  (%rdi),%xmm3
  movaps %xmm2,%xmm1
  mulss  0x20(%rdi),%xmm1
  subss  %xmm1,%xmm3
  movaps %xmm10,%xmm1
  mulss  0x30(%rdi),%xmm1
  addss  %xmm1,%xmm3
  movss  %xmm3,0x14(%rsi)
  mulss  0x10(%rdi),%xmm2
  movaps %xmm9,%xmm1
  mulss  0x30(%rdi),%xmm1
  subss  %xmm1,%xmm2
  mulss  (%rdi),%xmm4
  subss  %xmm4,%xmm2
  movss  %xmm2,0x18(%rsi)
  movaps %xmm11,%xmm1
  mulss  (%rdi),%xmm1
  movaps %xmm10,%xmm3
  mulss  0x10(%rdi),%xmm3
  subss  %xmm3,%xmm1
  movaps %xmm9,%xmm2
  mulss  0x20(%rdi),%xmm2
  addss  %xmm2,%xmm1
  movss  %xmm1,0x1c(%rsi)
  movss  (%rdi),%xmm1
  movss  0x14(%rdi),%xmm11
  movss  0x10(%rdi),%xmm4
  movss  0x4(%rdi),%xmm14
  movaps %xmm1,%xmm8
  mulss  %xmm11,%xmm8
  movaps %xmm4,%xmm3
  mulss  %xmm14,%xmm3
  subss  %xmm3,%xmm8
  movss  0x24(%rdi),%xmm10
  movss  0x20(%rdi),%xmm2
  movaps %xmm1,%xmm9
  mulss  %xmm10,%xmm9
  movaps %xmm14,%xmm12
  mulss  %xmm2,%xmm12
  subss  %xmm12,%xmm9
  movss  0x34(%rdi),%xmm13
  movss  0x30(%rdi),%xmm12
  mulss  %xmm13,%xmm1
  movaps %xmm14,%xmm3
  mulss  %xmm12,%xmm3
  subss  %xmm3,%xmm1
  movaps %xmm4,%xmm3
  mulss  %xmm10,%xmm3
  movaps %xmm11,%xmm14
  mulss  %xmm2,%xmm14
  subss  %xmm14,%xmm3
  mulss  %xmm13,%xmm4
  mulss  %xmm12,%xmm11
  subss  %xmm11,%xmm4
  mulss  %xmm13,%xmm2
  mulss  %xmm12,%xmm10
  subss  %xmm10,%xmm2
  movaps %xmm2,%xmm10
  mulss  0x1c(%rdi),%xmm10
  movaps %xmm4,%xmm11
  mulss  0x2c(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movaps %xmm3,%xmm11
  mulss  0x3c(%rdi),%xmm11
  addss  %xmm11,%xmm10
  movss  %xmm10,0x20(%rsi)
  movaps %xmm1,%xmm10
  mulss  0x2c(%rdi),%xmm10
  movaps %xmm9,%xmm11
  mulss  0x3c(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movaps %xmm2,%xmm11
  mulss  0xc(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movss  %xmm10,0x24(%rsi)
  movaps %xmm8,%xmm10
  mulss  0x3c(%rdi),%xmm10
  movaps %xmm1,%xmm11
  mulss  0x1c(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movaps %xmm4,%xmm11
  mulss  0xc(%rdi),%xmm11
  addss  %xmm11,%xmm10
  movss  %xmm10,0x28(%rsi)
  movaps %xmm9,%xmm10
  mulss  0x1c(%rdi),%xmm10
  movaps %xmm3,%xmm11
  mulss  0xc(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movaps %xmm8,%xmm11
  mulss  0x2c(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movss  %xmm10,0x2c(%rsi)
  movaps %xmm4,%xmm10
  mulss  0x28(%rdi),%xmm10
  movaps %xmm2,%xmm11
  mulss  0x18(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movaps %xmm3,%xmm11
  mulss  0x38(%rdi),%xmm11
  subss  %xmm11,%xmm10
  movss  %xmm10,0x30(%rsi)
  mulss  0x8(%rdi),%xmm2
  movaps %xmm1,%xmm10
  mulss  0x28(%rdi),%xmm10
  subss  %xmm10,%xmm2
  movaps %xmm9,%xmm10
  mulss  0x38(%rdi),%xmm10
  addss  %xmm10,%xmm2
  movss  %xmm2,0x34(%rsi)
  movaps %xmm1,%xmm2
  mulss  0x18(%rdi),%xmm2
  movaps %xmm8,%xmm1
  mulss  0x38(%rdi),%xmm1
  subss  %xmm1,%xmm2
  mulss  0x8(%rdi),%xmm4
  subss  %xmm4,%xmm2
  movss  %xmm2,0x38(%rsi)
  mulss  0x8(%rdi),%xmm3
  movaps %xmm3,%xmm1
  movaps %xmm9,%xmm3
  mulss  0x18(%rdi),%xmm3
  subss  %xmm3,%xmm1
  movaps %xmm8,%xmm2
  mulss  0x28(%rdi),%xmm2
  addss  %xmm2,%xmm1
  movss  %xmm1,0x3c(%rsi)
  mulss  (%rdi),%xmm0
  mulss  0x10(%rdi),%xmm7
  addss  %xmm7,%xmm0
  mulss  0x20(%rdi),%xmm6
  addss  %xmm6,%xmm0
  mulss  0x30(%rdi),%xmm5
  addss  %xmm5,%xmm0
  ucomiss D7(%rip),%xmm0
  jp     L18
  je     L17
L18:
  movss  D14(%rip),%xmm2
  divss  %xmm0,%xmm2
  mov    %rdx,%rax
  add    $0x40,%rdx
L19:
  movaps %xmm2,%xmm1
  mulss  (%rax),%xmm1
  movss  %xmm1,(%rax)
  add    $0x4,%rax
  cmp    %rdx,%rax
  jne    L19
  ret
L17:
  pxor   %xmm0,%xmm0
  ret
```

tool_calls: name: read_data
arguments: data_label: D7
type_guessed: byte[4]
name: read_data
arguments: data_label: D14
type_guessed: f32

tool: {"D7": [0x00,0x00,0x00,0x00]}

tool: D14: 1

assistant: ```c
float invert8(float const s[16], float d[16]) {
  float t[6], det, scale;
  unsigned i;
  t[0] = s[2] * s[7] - s[6] * s[3];
  t[1] = s[2] * s[11] - s[10] * s[3];
  t[2] = s[2] * s[15] - s[14] * s[3];
  t[3] = s[6] * s[11] - s[10] * s[7];
  t[4] = s[6] * s[15] - s[14] * s[7];
  t[5] = s[10] * s[15] - s[14] * s[11];
  d[0] = s[5] * t[5] - s[9] * t[4] + s[13] * t[3];
  d[1] = s[9] * t[2] - s[13] * t[1] - s[1] * t[5];
  d[2] = s[13] * t[0] - s[5] * t[2] + s[1] * t[4];
  d[3] = s[5] * t[1] - s[1] * t[3] - s[9] * t[0];
  d[4] = s[8] * t[4] - s[4] * t[5] - s[12] * t[3];
  d[5] = s[0] * t[5] - s[8] * t[2] + s[12] * t[1];
  d[6] = s[4] * t[2] - s[12] * t[0] - s[0] * t[4];
  d[7] = s[0] * t[3] - s[4] * t[1] + s[8] * t[0];
  t[0] = s[0] * s[5] - s[4] * s[1];
  t[1] = s[0] * s[9] - s[8] * s[1];
  t[2] = s[0] * s[13] - s[12] * s[1];
  t[3] = s[4] * s[9] - s[8] * s[5];
  t[4] = s[4] * s[13] - s[12] * s[5];
  t[5] = s[8] * s[13] - s[12] * s[9];
  d[8] = s[7] * t[5] - s[11] * t[4] + s[15] * t[3];
  d[9] = s[11] * t[2] - s[15] * t[1] - s[3] * t[5];
  d[10] = s[15] * t[0] - s[7] * t[2] + s[3] * t[4];
  d[11] = s[7] * t[1] - s[3] * t[3] - s[11] * t[0];
  d[12] = s[10] * t[4] - s[6] * t[5] - s[14] * t[3];
  d[13] = s[2] * t[5] - s[10] * t[2] + s[14] * t[1];
  d[14] = s[6] * t[2] - s[14] * t[0] - s[2] * t[4];
  d[15] = s[2] * t[3] - s[6] * t[1] + s[10] * t[0];
  det = s[0] * d[0] + s[4] * d[1] + s[8] * d[2] + s[12] * d[3];
  if (det == 0)
    return 0;
  scale = (float)1.0 / det;
  for (i = 0; i != 16; ++i) {
    d[i] *= scale;
  }
  return det;
}
```