user: What would the C source look like for the assembly code provided here:

```asm
<MultMatrix>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x18(%rbp)
  mov    %rsi,-0x20(%rbp)
  mov    %rdx,-0x28(%rbp)
  movl   $0x0,-0x4(%rbp)
  jmp    L6
L15:
  mov    -0x18(%rbp),%rax
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  movss  (%rax,%rdx,4),%xmm1
  mov    -0x20(%rbp),%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x10(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  movss  0x4(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x20(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  movss  0x8(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x30(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  movss  0xc(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm1,%xmm0
  mov    -0x28(%rbp),%rax
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  movss  %xmm0,(%rax,%rdx,4)
  mov    -0x18(%rbp),%rax
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  movss  (%rax,%rdx,4),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x10(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  0x4(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x20(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  0x8(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x30(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movss  0xc(%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x28(%rbp),%rax
  lea    0x10(%rax),%rdx
  addss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  mov    -0x18(%rbp),%rax
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  movss  (%rax,%rdx,4),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x10(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  0x4(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x20(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  0x8(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x30(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movss  0xc(%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x28(%rbp),%rax
  lea    0x20(%rax),%rdx
  addss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  mov    -0x18(%rbp),%rax
  lea    0x30(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm1
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  0xc(%rax),%xmm0
  mulss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x20(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  0x8(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  lea    0x10(%rax),%rdx
  mov    -0x4(%rbp),%eax
  cltq
  movss  (%rdx,%rax,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  0x4(%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x18(%rbp),%rax
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  movss  (%rax,%rdx,4),%xmm2
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x28(%rbp),%rax
  lea    0x30(%rax),%rdx
  addss  %xmm1,%xmm0
  mov    -0x4(%rbp),%eax
  cltq
  movss  %xmm0,(%rdx,%rax,4)
  addl   $0x1,-0x4(%rbp)
L6:
  cmpl   $0x3,-0x4(%rbp)
  jle    L15
  nop
  nop
  pop    %rbp
  ret
```

assistant: ```c
void MultMatrix(float m0[4][4], float m1[4][4], float dest[4][4]) {
  int i;
  for (i = 0; i < 4; i++) {
    dest[0][i] = m0[0][i] * m1[0][0] + m0[1][i] * m1[0][1] + m0[2][i] * m1[0][2] + m0[3][i] * m1[0][3];
    dest[1][i] = m0[0][i] * m1[1][0] + m0[1][i] * m1[1][1] + m0[2][i] * m1[1][2] + m0[3][i] * m1[1][3];
    dest[2][i] = m0[0][i] * m1[2][0] + m0[1][i] * m1[2][1] + m0[2][i] * m1[2][2] + m0[3][i] * m1[2][3];
    dest[3][i] = m0[3][i] * m1[3][3] + m0[2][i] * m1[3][2] + m0[1][i] * m1[3][1] + m0[0][i] * m1[3][0];
  }
}
```