user: 请从给定的汇编指令推导出C源代码：

```asm
<right_multiply44f44f>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    -0x8(%rbp),%rax
  movss  (%rax),%xmm2
  mov    -0x8(%rbp),%rax
  movss  0x4(%rax),%xmm6
  mov    -0x8(%rbp),%rax
  movss  0x8(%rax),%xmm7
  mov    -0x8(%rbp),%rax
  movss  0xc(%rax),%xmm3
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm2,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  addss  %xmm1,%xmm0
  mov    -0x8(%rbp),%rax
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm2,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x24,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x34,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x4,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm2,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x8,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm2
  movaps %xmm2,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x2c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x3c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0xc,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movss  0x10(%rax),%xmm3
  mov    -0x8(%rbp),%rax
  movss  0x14(%rax),%xmm6
  mov    -0x8(%rbp),%rax
  movss  0x18(%rax),%xmm7
  mov    -0x8(%rbp),%rax
  movss  0x1c(%rax),%xmm2
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm3,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x10,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm3,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x24,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x34,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x14,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm3,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x18,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm3
  movaps %xmm3,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x2c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x3c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x1c,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movss  0x20(%rax),%xmm4
  mov    -0x8(%rbp),%rax
  movss  0x24(%rax),%xmm5
  mov    -0x8(%rbp),%rax
  movss  0x28(%rax),%xmm6
  mov    -0x8(%rbp),%rax
  movss  0x2c(%rax),%xmm7
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm4,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mulss  %xmm5,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x20,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm4,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  mulss  %xmm5,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x24,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x34,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x24,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm4,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  mulss  %xmm5,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x28,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm4
  movaps %xmm4,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm5,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x2c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm6,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x3c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm7,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x2c,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movss  0x30(%rax),%xmm5
  mov    -0x8(%rbp),%rax
  movss  0x34(%rax),%xmm4
  mov    -0x8(%rbp),%rax
  movss  0x38(%rax),%xmm2
  mov    -0x8(%rbp),%rax
  movss  0x3c(%rax),%xmm3
  mov    -0x10(%rbp),%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm5,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mulss  %xmm4,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x20,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x30,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x30,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm5,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  mulss  %xmm4,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x24,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x34,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x34,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  %xmm5,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  mulss  %xmm4,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x28,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x38,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x38,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x10(%rbp),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  mulss  %xmm0,%xmm5
  movaps %xmm5,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm4,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x2c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm2,%xmm0
  addss  %xmm0,%xmm1
  mov    -0x10(%rbp),%rax
  add    $0x3c,%rax
  movss  (%rax),%xmm0
  mulss  %xmm3,%xmm0
  mov    -0x8(%rbp),%rax
  add    $0x3c,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  nop
  pop    %rbp
  ret
```

assistant: ```c
void right_multiply44f44f(float *left, float *right) {
  register float cA = left[0];
  register float cB = left[1];
  register float cC = left[2];
  register float cD = left[3];
  left[0] = cA * right[0] + cB * right[4] + cC * right[8] + cD * right[12];
  left[1] = cA * right[1] + cB * right[5] + cC * right[9] + cD * right[13];
  left[2] = cA * right[2] + cB * right[6] + cC * right[10] + cD * right[14];
  left[3] = cA * right[3] + cB * right[7] + cC * right[11] + cD * right[15];
  cA = left[4];
  cB = left[5];
  cC = left[6];
  cD = left[7];
  left[4] = cA * right[0] + cB * right[4] + cC * right[8] + cD * right[12];
  left[5] = cA * right[1] + cB * right[5] + cC * right[9] + cD * right[13];
  left[6] = cA * right[2] + cB * right[6] + cC * right[10] + cD * right[14];
  left[7] = cA * right[3] + cB * right[7] + cC * right[11] + cD * right[15];
  cA = left[8];
  cB = left[9];
  cC = left[10];
  cD = left[11];
  left[8] = cA * right[0] + cB * right[4] + cC * right[8] + cD * right[12];
  left[9] = cA * right[1] + cB * right[5] + cC * right[9] + cD * right[13];
  left[10] = cA * right[2] + cB * right[6] + cC * right[10] + cD * right[14];
  left[11] = cA * right[3] + cB * right[7] + cC * right[11] + cD * right[15];
  cA = left[12];
  cB = left[13];
  cC = left[14];
  cD = left[15];
  left[12] = cA * right[0] + cB * right[4] + cC * right[8] + cD * right[12];
  left[13] = cA * right[1] + cB * right[5] + cC * right[9] + cD * right[13];
  left[14] = cA * right[2] + cB * right[6] + cC * right[10] + cD * right[14];
  left[15] = cA * right[3] + cB * right[7] + cC * right[11] + cD * right[15];
}
```