user: Converte this assembly snippet into its equivalent C code:

```asm
<mat4_adjoint>:
  endbr64
  movss  0x28(%rdi),%xmm9
  movss  0x2c(%rdi),%xmm13
  movss  0x20(%rdi),%xmm4
  movss  0x24(%rdi),%xmm15
  movss  0x38(%rdi),%xmm10
  movss  0x3c(%rdi),%xmm14
  movss  %xmm15,-0x3c(%rsp)
  movaps %xmm9,%xmm15
  movss  0x8(%rdi),%xmm7
  movss  0x18(%rdi),%xmm8
  movss  %xmm4,-0x40(%rsp)
  movaps %xmm13,%xmm4
  movss  (%rdi),%xmm6
  movss  0x1c(%rdi),%xmm12
  mulss  %xmm10,%xmm4
  movss  0xc(%rdi),%xmm11
  movss  0x34(%rdi),%xmm3
  mulss  %xmm14,%xmm15
  movss  0x14(%rdi),%xmm2
  movss  0x4(%rdi),%xmm0
  movss  0x10(%rdi),%xmm5
  subss  %xmm4,%xmm15
  movaps %xmm8,%xmm4
  mulss  %xmm14,%xmm4
  movss  %xmm15,-0x38(%rsp)
  movaps %xmm4,%xmm15
  movaps %xmm12,%xmm4
  mulss  %xmm10,%xmm4
  subss  %xmm4,%xmm15
  movaps %xmm8,%xmm4
  mulss  %xmm13,%xmm4
  movss  %xmm15,-0x34(%rsp)
  movaps %xmm4,%xmm15
  movaps %xmm12,%xmm4
  mulss  %xmm9,%xmm4
  movaps %xmm4,%xmm1
  movaps %xmm15,%xmm4
  movaps %xmm7,%xmm15
  subss  %xmm1,%xmm4
  mulss  %xmm14,%xmm15
  movaps %xmm11,%xmm1
  mulss  %xmm10,%xmm1
  subss  %xmm1,%xmm15
  movaps %xmm7,%xmm1
  mulss  %xmm13,%xmm1
  movss  %xmm15,-0x30(%rsp)
  movaps %xmm1,%xmm15
  movaps %xmm11,%xmm1
  mulss  %xmm9,%xmm1
  subss  %xmm1,%xmm15
  movaps %xmm7,%xmm1
  mulss  %xmm12,%xmm1
  movss  %xmm15,-0x2c(%rsp)
  movaps %xmm1,%xmm15
  movaps %xmm11,%xmm1
  mulss  %xmm8,%xmm1
  subss  %xmm1,%xmm15
  movss  -0x3c(%rsp),%xmm1
  mulss  %xmm14,%xmm1
  movss  %xmm15,-0x28(%rsp)
  movaps %xmm1,%xmm15
  movaps %xmm13,%xmm1
  mulss  %xmm3,%xmm1
  subss  %xmm1,%xmm15
  movaps %xmm2,%xmm1
  mulss  %xmm14,%xmm1
  mulss  %xmm0,%xmm14
  movss  %xmm15,-0x1c(%rsp)
  movaps %xmm1,%xmm15
  movaps %xmm12,%xmm1
  mulss  %xmm3,%xmm1
  subss  %xmm1,%xmm15
  movaps %xmm2,%xmm1
  mulss  %xmm13,%xmm1
  mulss  %xmm0,%xmm13
  movss  %xmm15,-0x18(%rsp)
  movaps %xmm1,%xmm15
  movss  -0x3c(%rsp),%xmm1
  mulss  %xmm12,%xmm1
  mulss  %xmm0,%xmm12
  subss  %xmm1,%xmm15
  movaps %xmm11,%xmm1
  mulss  %xmm3,%xmm1
  movss  %xmm15,-0x14(%rsp)
  movss  -0x3c(%rsp),%xmm15
  subss  %xmm1,%xmm14
  movaps %xmm11,%xmm1
  mulss  %xmm15,%xmm1
  mulss  %xmm2,%xmm11
  movss  %xmm14,-0x10(%rsp)
  movaps %xmm2,%xmm14
  mulss  %xmm9,%xmm14
  subss  %xmm1,%xmm13
  movaps %xmm15,%xmm1
  mulss  %xmm10,%xmm1
  subss  %xmm11,%xmm12
  movaps %xmm9,%xmm11
  mulss  %xmm3,%xmm11
  movss  %xmm13,-0x24(%rsp)
  mulss  %xmm0,%xmm9
  movss  %xmm12,-0xc(%rsp)
  movaps %xmm15,%xmm12
  movaps %xmm1,%xmm15
  movaps %xmm12,%xmm1
  subss  %xmm11,%xmm15
  movaps %xmm2,%xmm11
  mulss  %xmm10,%xmm11
  mulss  %xmm0,%xmm10
  movaps %xmm11,%xmm13
  movaps %xmm8,%xmm11
  mulss  %xmm3,%xmm11
  subss  %xmm11,%xmm13
  movaps %xmm8,%xmm11
  mulss  %xmm12,%xmm11
  mulss  %xmm0,%xmm8
  subss  %xmm11,%xmm14
  movaps %xmm7,%xmm11
  mulss  %xmm3,%xmm11
  subss  %xmm11,%xmm10
  movaps %xmm9,%xmm11
  movss  -0x38(%rsp),%xmm9
  movaps %xmm10,%xmm12
  movaps %xmm7,%xmm10
  mulss  %xmm1,%xmm10
  mulss  %xmm2,%xmm7
  subss  %xmm10,%xmm11
  movaps %xmm8,%xmm10
  movss  -0x34(%rsp),%xmm8
  movss  %xmm4,-0x20(%rsp)
  subss  %xmm7,%xmm10
  movaps %xmm9,%xmm7
  mulss  %xmm1,%xmm8
  movss  -0x30(%rsp),%xmm1
  mulss  %xmm2,%xmm7
  subss  %xmm8,%xmm7
  movaps %xmm4,%xmm8
  movaps %xmm1,%xmm4
  mulss  %xmm3,%xmm8
  mulss  %xmm2,%xmm4
  mulss  -0x2c(%rsp),%xmm2
  addss  %xmm8,%xmm7
  movaps %xmm9,%xmm8
  movss  -0x2c(%rsp),%xmm9
  mulss  %xmm0,%xmm8
  mulss  %xmm3,%xmm9
  movd   %xmm7,%edx
  movss  -0x3c(%rsp),%xmm7
  mulss  %xmm1,%xmm7
  movss  -0x28(%rsp),%xmm1
  mulss  %xmm1,%xmm3
  subss  %xmm7,%xmm8
  movss  D1(%rip),%xmm7
  addss  %xmm8,%xmm9
  movss  -0x34(%rsp),%xmm8
  mulss  %xmm0,%xmm8
  xorps  %xmm7,%xmm9
  subss  %xmm4,%xmm8
  movss  -0x20(%rsp),%xmm4
  mulss  %xmm4,%xmm0
  addss  %xmm3,%xmm8
  movss  -0x38(%rsp),%xmm3
  subss  %xmm2,%xmm0
  movaps %xmm1,%xmm2
  movss  -0x3c(%rsp),%xmm1
  mulss  %xmm2,%xmm1
  movss  -0x40(%rsp),%xmm2
  addss  %xmm1,%xmm0
  movss  -0x40(%rsp),%xmm1
  xorps  %xmm7,%xmm0
  unpcklps %xmm0,%xmm8
  movd   %edx,%xmm0
  unpcklps %xmm9,%xmm0
  movss  -0x34(%rsp),%xmm9
  movlhps %xmm8,%xmm0
  movaps %xmm4,%xmm8
  movups %xmm0,(%rdi)
  mulss  %xmm9,%xmm1
  movaps %xmm3,%xmm0
  mulss  %xmm5,%xmm0
  mulss  %xmm6,%xmm3
  subss  %xmm1,%xmm0
  movss  0x30(%rdi),%xmm1
  mulss  %xmm4,%xmm1
  movss  -0x2c(%rsp),%xmm4
  addss  %xmm1,%xmm0
  movaps %xmm3,%xmm1
  movss  -0x30(%rsp),%xmm3
  mulss  %xmm3,%xmm2
  mulss  %xmm5,%xmm3
  xorps  %xmm7,%xmm0
  subss  %xmm2,%xmm1
  movss  0x30(%rdi),%xmm2
  mulss  %xmm4,%xmm2
  mulss  %xmm5,%xmm4
  addss  %xmm2,%xmm1
  movaps %xmm9,%xmm2
  movss  -0x28(%rsp),%xmm9
  mulss  %xmm6,%xmm2
  unpcklps %xmm1,%xmm0
  subss  %xmm3,%xmm2
  movss  0x30(%rdi),%xmm3
  mulss  %xmm9,%xmm3
  mulss  -0x40(%rsp),%xmm9
  addss  %xmm3,%xmm2
  movaps %xmm8,%xmm3
  movss  -0x14(%rsp),%xmm8
  mulss  %xmm6,%xmm3
  xorps  %xmm7,%xmm2
  subss  %xmm4,%xmm3
  movss  -0x1c(%rsp),%xmm4
  addss  %xmm9,%xmm3
  movss  -0x40(%rsp),%xmm9
  unpcklps %xmm3,%xmm2
  movlhps %xmm2,%xmm0
  movss  -0x18(%rsp),%xmm2
  movups %xmm0,0x10(%rdi)
  movaps %xmm4,%xmm0
  mulss  %xmm5,%xmm0
  movaps %xmm2,%xmm1
  mulss  %xmm9,%xmm1
  mulss  %xmm6,%xmm4
  mulss  %xmm6,%xmm2
  subss  %xmm1,%xmm0
  movss  0x30(%rdi),%xmm1
  mulss  %xmm8,%xmm1
  movaps %xmm0,%xmm3
  movaps %xmm4,%xmm0
  movss  -0x10(%rsp),%xmm4
  addss  %xmm1,%xmm3
  movaps %xmm4,%xmm1
  mulss  %xmm9,%xmm1
  mulss  %xmm5,%xmm4
  subss  %xmm1,%xmm0
  movss  -0x24(%rsp),%xmm1
  mulss  0x30(%rdi),%xmm1
  addss  %xmm1,%xmm0
  movaps %xmm2,%xmm1
  subss  %xmm4,%xmm1
  movss  -0xc(%rsp),%xmm4
  movss  0x30(%rdi),%xmm2
  mulss  %xmm4,%xmm2
  xorps  %xmm7,%xmm0
  movaps %xmm0,%xmm9
  movaps %xmm3,%xmm0
  unpcklps %xmm9,%xmm0
  addss  %xmm2,%xmm1
  movaps %xmm8,%xmm2
  movss  -0x24(%rsp),%xmm8
  mulss  %xmm6,%xmm2
  mulss  %xmm5,%xmm8
  subss  %xmm8,%xmm2
  movss  -0x40(%rsp),%xmm8
  mulss  %xmm8,%xmm4
  addss  %xmm4,%xmm2
  xorps  %xmm7,%xmm2
  unpcklps %xmm2,%xmm1
  movlhps %xmm1,%xmm0
  movaps %xmm13,%xmm1
  movups %xmm0,0x20(%rdi)
  mulss  %xmm8,%xmm1
  movaps %xmm15,%xmm0
  mulss  %xmm5,%xmm0
  mulss  %xmm6,%xmm15
  mulss  %xmm6,%xmm13
  subss  %xmm1,%xmm0
  movss  0x30(%rdi),%xmm1
  mulss  %xmm14,%xmm1
  mulss  %xmm6,%xmm14
  addss  %xmm1,%xmm0
  movaps %xmm12,%xmm1
  mulss  %xmm8,%xmm1
  mulss  %xmm5,%xmm12
  xorps  %xmm7,%xmm0
  subss  %xmm1,%xmm15
  movss  0x30(%rdi),%xmm1
  subss  %xmm12,%xmm13
  mulss  %xmm11,%xmm1
  mulss  %xmm5,%xmm11
  addss  %xmm1,%xmm15
  movss  0x30(%rdi),%xmm1
  subss  %xmm11,%xmm14
  mulss  %xmm10,%xmm1
  mulss  %xmm8,%xmm10
  unpcklps %xmm15,%xmm0
  addss  %xmm1,%xmm13
  addss  %xmm10,%xmm14
  xorps  %xmm7,%xmm13
  unpcklps %xmm14,%xmm13
  movlhps %xmm13,%xmm0
  movups %xmm0,0x30(%rdi)
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D1
datatype: byte[4]

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

assistant: ```c
void mat4_adjoint(float *dst) {
  float a00 = dst[0], a01 = dst[1], a02 = dst[2], a03 = dst[3];
  float a10 = dst[4], a11 = dst[5], a12 = dst[6], a13 = dst[7];
  float a20 = dst[8], a21 = dst[9], a22 = dst[10], a23 = dst[11];
  float a30 = dst[12], a31 = dst[13], a32 = dst[14], a33 = dst[15];
  dst[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22));
  dst[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));
  dst[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12));
  dst[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));
  dst[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));
  dst[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22));
  dst[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));
  dst[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12));
  dst[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21));
  dst[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));
  dst[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11));
  dst[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));
  dst[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));
  dst[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21));
  dst[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));
  dst[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11));
}
```