user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<mtxSRT>:
  endbr64
  push   %r14
  movd   %xmm6,%r14d
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%rbx
  sub    $0x38,%rsp
  lea    0x2c(%rsp),%rbp
  lea    0x28(%rsp),%r12
  movss  %xmm0,0x24(%rsp)
  movaps %xmm5,%xmm0
  mov    %r12,%rsi
  mov    %rbp,%rdi
  movss  %xmm1,0x20(%rsp)
  movss  %xmm2,0x1c(%rsp)
  movss  %xmm7,0x14(%rsp)
  movss  %xmm3,0x18(%rsp)
  movss  %xmm4,0x4(%rsp)
  call   <sincosf@plt>
  movss  0x4(%rsp),%xmm4
  mov    %r12,%rsi
  mov    %rbp,%rdi
  movss  0x28(%rsp),%xmm12
  movss  0x2c(%rsp),%xmm5
  movaps %xmm4,%xmm0
  movss  %xmm12,0x10(%rsp)
  movss  %xmm5,0xc(%rsp)
  call   <sincosf@plt>
  movss  0x18(%rsp),%xmm3
  mov    %r12,%rsi
  mov    %rbp,%rdi
  movss  0x28(%rsp),%xmm9
  movss  0x2c(%rsp),%xmm4
  movaps %xmm3,%xmm0
  movss  %xmm9,0x8(%rsp)
  movss  %xmm4,0x4(%rsp)
  call   <sincosf@plt>
  movss  0x2c(%rsp),%xmm8
  mov    %r14d,0x30(%rbx)
  movss  D2(%rip),%xmm11
  movss  0xc(%rsp),%xmm5
  movss  0x8(%rsp),%xmm9
  movl   $0x0,0xc(%rbx)
  movaps %xmm8,%xmm14
  movss  0x4(%rsp),%xmm4
  movss  0x10(%rsp),%xmm12
  movl   $0x0,0x1c(%rbx)
  mulss  %xmm5,%xmm14
  movaps %xmm9,%xmm6
  movss  0x28(%rsp),%xmm13
  movss  0x24(%rsp),%xmm10
  mulss  %xmm12,%xmm6
  movaps %xmm4,%xmm15
  movss  0x1c(%rsp),%xmm2
  movss  0x20(%rsp),%xmm1
  movaps %xmm13,%xmm0
  movss  0x14(%rsp),%xmm7
  movl   $0x0,0x2c(%rbx)
  mulss  %xmm1,%xmm13
  xorps  %xmm11,%xmm0
  movl   $0x3f800000,0x3c(%rbx)
  movss  %xmm7,0x34(%rbx)
  mulss  %xmm14,%xmm15
  mulss  %xmm9,%xmm14
  movaps %xmm6,%xmm3
  mulss  %xmm8,%xmm6
  mulss  %xmm12,%xmm13
  subss  %xmm15,%xmm3
  movaps %xmm0,%xmm15
  mulss  %xmm10,%xmm15
  mulss  %xmm2,%xmm0
  mulss  %xmm10,%xmm3
  movss  %xmm13,0x14(%rbx)
  mulss  %xmm5,%xmm15
  unpcklps %xmm15,%xmm3
  movlps %xmm3,(%rbx)
  movaps %xmm4,%xmm3
  mulss  %xmm12,%xmm3
  addss  %xmm14,%xmm3
  mulss  %xmm10,%xmm3
  movaps %xmm9,%xmm10
  mulss  %xmm5,%xmm10
  mulss  %xmm4,%xmm5
  movss  %xmm3,0x8(%rbx)
  movaps %xmm8,%xmm3
  mulss  %xmm12,%xmm3
  subss  %xmm6,%xmm5
  mulss  %xmm2,%xmm8
  mulss  %xmm1,%xmm5
  mulss  %xmm4,%xmm3
  mulss  %xmm0,%xmm4
  xorps  %xmm11,%xmm0
  movss  %xmm8,0x24(%rbx)
  mulss  %xmm9,%xmm0
  movss  %xmm5,0x18(%rbx)
  addss  %xmm10,%xmm3
  movss  %xmm4,0x20(%rbx)
  movss  %xmm0,0x28(%rbx)
  movss  0x60(%rsp),%xmm0
  mulss  %xmm1,%xmm3
  movss  %xmm0,0x38(%rbx)
  movss  %xmm3,0x10(%rbx)
  add    $0x38,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r14
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D2
type_guessed: byte[4]

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

assistant: ```c
void mtxSRT(float *_result, float _sx, float _sy, float _sz, float _ax, float _ay, float _az, float _tx, float _ty, float _tz) {
  const float sx = sinf(_ax);
  const float cx = cosf(_ax);
  const float sy = sinf(_ay);
  const float cy = cosf(_ay);
  const float sz = sinf(_az);
  const float cz = cosf(_az);
  const float sxsz = sx * sz;
  const float cycz = cy * cz;
  _result[0] = _sx * (cycz - sxsz * sy);
  _result[1] = _sx * -cx * sz;
  _result[2] = _sx * (cz * sy + cy * sxsz);
  _result[3] = 0.0f;
  _result[4] = _sy * (cz * sx * sy + cy * sz);
  _result[5] = _sy * cx * cz;
  _result[6] = _sy * (sy * sz - cycz * sx);
  _result[7] = 0.0f;
  _result[8] = _sz * -cx * sy;
  _result[9] = _sz * sx;
  _result[10] = _sz * cx * cy;
  _result[11] = 0.0f;
  _result[12] = _tx;
  _result[13] = _ty;
  _result[14] = _tz;
  _result[15] = 1.0f;
}
```