user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<TransformVertex>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    -0x18(%rbp),%rax
  movss  (%rax),%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  movss  0x4(%rax),%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x18(%rbp),%rax
  movss  0x8(%rax),%xmm0
  movss  %xmm0,-0x8(%rbp)
  mov    -0x18(%rbp),%rax
  movss  0xc(%rax),%xmm0
  movss  %xmm0,-0x4(%rbp)
  mov    -0x20(%rbp),%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x10(%rbp),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mulss  -0xc(%rbp),%xmm0
  addss  %xmm0,%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  (%rax),%xmm0
  mulss  -0x8(%rbp),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movss  0x4(%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x10(%rbp),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  0x4(%rax),%xmm0
  mulss  -0xc(%rbp),%xmm0
  addss  %xmm0,%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  0x4(%rax),%xmm0
  mulss  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movss  0x8(%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x10(%rbp),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  0x8(%rax),%xmm0
  mulss  -0xc(%rbp),%xmm0
  addss  %xmm0,%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  0x8(%rax),%xmm0
  mulss  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x20(%rbp),%rax
  movss  0xc(%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x10(%rbp),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  0xc(%rax),%xmm0
  mulss  -0xc(%rbp),%xmm0
  addss  %xmm0,%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  0xc(%rax),%xmm0
  mulss  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  mov    -0x18(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  0x4(%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x4,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  0x8(%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0x8,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  0xc(%rax),%xmm0
  mov    -0x18(%rbp),%rax
  add    $0xc,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

assistant: ```c
void TransformVertex(float vtx[4], float mtx[4][4]) {
  float x, y, z, w;
  x = vtx[0];
  y = vtx[1];
  z = vtx[2];
  w = vtx[3];
  vtx[0] = x * mtx[0][0] + y * mtx[1][0] + z * mtx[2][0];
  vtx[1] = x * mtx[0][1] + y * mtx[1][1] + z * mtx[2][1];
  vtx[2] = x * mtx[0][2] + y * mtx[1][2] + z * mtx[2][2];
  vtx[3] = x * mtx[0][3] + y * mtx[1][3] + z * mtx[2][3];
  vtx[0] += mtx[3][0];
  vtx[1] += mtx[3][1];
  vtx[2] += mtx[3][2];
  vtx[3] += mtx[3][3];
}
```