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

```asm
<mat4_adjoint>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x48(%rbp)
  mov    -0x48(%rbp),%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x40(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x4(%rax),%xmm0
  movss  %xmm0,-0x3c(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x8(%rax),%xmm0
  movss  %xmm0,-0x38(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0xc(%rax),%xmm0
  movss  %xmm0,-0x34(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x10(%rax),%xmm0
  movss  %xmm0,-0x30(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x14(%rax),%xmm0
  movss  %xmm0,-0x2c(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x18(%rax),%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x1c(%rax),%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x20(%rax),%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x24(%rax),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x28(%rax),%xmm0
  movss  %xmm0,-0x18(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x2c(%rax),%xmm0
  movss  %xmm0,-0x14(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x30(%rax),%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x34(%rax),%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x38(%rax),%xmm0
  movss  %xmm0,-0x8(%rbp)
  mov    -0x48(%rbp),%rax
  movss  0x3c(%rax),%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x18(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x2c(%rbp),%xmm0
  movss  -0x28(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x24(%rbp),%xmm2
  mulss  -0x8(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x1c(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x28(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0xc(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  movss  %xmm0,(%rax)
  movss  -0x18(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x3c(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x8(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x1c(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x38(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0xc(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x4,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x28(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x3c(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x8(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x2c(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x38(%rbp),%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x28(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0xc(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x8,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x28(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x3c(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x14(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x18(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x2c(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x38(%rbp),%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x28(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x1c(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0xc,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x18(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x30(%rbp),%xmm0
  movss  -0x28(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x24(%rbp),%xmm2
  mulss  -0x8(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x20(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x28(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x10,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x18(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x8(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x20(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x38(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x14,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x28(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x8(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x30(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x38(%rbp),%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x28(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x18,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x28(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x14(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x18(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x30(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x38(%rbp),%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x28(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x20(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x1c,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x1c(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  -0xc(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x30(%rbp),%xmm0
  movss  -0x2c(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x24(%rbp),%xmm2
  mulss  -0xc(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x20(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x1c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x20,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x1c(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x14(%rbp),%xmm1
  mulss  -0xc(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x3c(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0xc(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x20(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x1c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x24,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0xc(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x3c(%rbp),%xmm1
  mulss  -0x4(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0xc(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x30(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x2c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x28,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x14(%rbp),%xmm0
  movss  -0x24(%rbp),%xmm1
  mulss  -0x1c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x3c(%rbp),%xmm1
  mulss  -0x14(%rbp),%xmm1
  movss  -0x34(%rbp),%xmm2
  mulss  -0x1c(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x30(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x24(%rbp),%xmm0
  movss  -0x34(%rbp),%xmm1
  mulss  -0x2c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x20(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x2c,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x1c(%rbp),%xmm0
  mulss  -0x8(%rbp),%xmm0
  movss  -0x18(%rbp),%xmm1
  mulss  -0xc(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x30(%rbp),%xmm0
  movss  -0x2c(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  movss  -0x28(%rbp),%xmm2
  mulss  -0xc(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x20(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  -0x28(%rbp),%xmm1
  mulss  -0x1c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x30,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x1c(%rbp),%xmm0
  mulss  -0x8(%rbp),%xmm0
  movss  -0x18(%rbp),%xmm1
  mulss  -0xc(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x3c(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  movss  -0x38(%rbp),%xmm2
  mulss  -0xc(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x20(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x1c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x34,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x8(%rbp),%xmm0
  movss  -0x28(%rbp),%xmm1
  mulss  -0xc(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x3c(%rbp),%xmm1
  mulss  -0x8(%rbp),%xmm1
  movss  -0x38(%rbp),%xmm2
  mulss  -0xc(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x30(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x28(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x2c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x10(%rbp),%xmm0
  addss  %xmm2,%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x38,%rax
  movss  D31(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x2c(%rbp),%xmm0
  mulss  -0x18(%rbp),%xmm0
  movss  -0x28(%rbp),%xmm1
  mulss  -0x1c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x40(%rbp),%xmm0
  movss  -0x3c(%rbp),%xmm1
  mulss  -0x18(%rbp),%xmm1
  movss  -0x38(%rbp),%xmm2
  mulss  -0x1c(%rbp),%xmm2
  subss  %xmm2,%xmm1
  mulss  -0x30(%rbp),%xmm1
  movaps %xmm0,%xmm2
  subss  %xmm1,%xmm2
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x28(%rbp),%xmm0
  movss  -0x38(%rbp),%xmm1
  mulss  -0x2c(%rbp),%xmm1
  subss  %xmm1,%xmm0
  mulss  -0x20(%rbp),%xmm0
  mov    -0x48(%rbp),%rax
  add    $0x3c,%rax
  addss  %xmm2,%xmm0
  movss  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D31
type_guessed: byte[4]

tool: {"D31": [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));
}
```