user: Converte this assembly snippet into its equivalent C code:

```asm
<harmonicDiffuse>:
  endbr64
  movss  (%rdx),%xmm0
  movss  0x4(%rdx),%xmm9
  pxor   %xmm7,%xmm7
  pxor   %xmm4,%xmm4
  cvtss2sd 0x1c(%rsi),%xmm7
  movsd  D5(%rip),%xmm6
  movapd %xmm7,%xmm3
  movss  0x8(%rdx),%xmm8
  movaps %xmm0,%xmm2
  movaps %xmm9,%xmm1
  pxor   %xmm10,%xmm10
  movsd  D40(%rip),%xmm5
  mulss  %xmm9,%xmm1
  cvtss2sd %xmm8,%xmm4
  pxor   %xmm12,%xmm12
  mulss  %xmm0,%xmm2
  subss  %xmm1,%xmm2
  pxor   %xmm1,%xmm1
  cvtss2sd 0x20(%rsi),%xmm1
  mulsd  %xmm6,%xmm1
  cvtss2sd %xmm2,%xmm2
  mulsd  %xmm1,%xmm2
  movsd  D38(%rip),%xmm1
  mulsd  %xmm1,%xmm3
  mulsd  %xmm4,%xmm3
  mulsd  %xmm4,%xmm3
  movsd  D21(%rip),%xmm4
  mulsd  %xmm4,%xmm7
  addsd  %xmm3,%xmm2
  pxor   %xmm3,%xmm3
  cvtss2sd (%rsi),%xmm3
  mulsd  %xmm5,%xmm3
  addsd  %xmm3,%xmm2
  movss  0x14(%rsi),%xmm3
  mulss  %xmm9,%xmm3
  subsd  %xmm7,%xmm2
  movss  0x10(%rsi),%xmm7
  mulss  %xmm0,%xmm7
  mulss  %xmm8,%xmm3
  mulss  %xmm9,%xmm7
  mulss  0x8(%rsi),%xmm9
  addss  %xmm3,%xmm7
  movss  0x18(%rsi),%xmm3
  mulss  %xmm8,%xmm3
  mulss  0xc(%rsi),%xmm8
  mulss  %xmm0,%xmm3
  mulss  0x4(%rsi),%xmm0
  addss  %xmm3,%xmm7
  movsd  D35(%rip),%xmm3
  addss  %xmm9,%xmm0
  cvtss2sd %xmm7,%xmm7
  mulsd  %xmm3,%xmm7
  addss  %xmm8,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm2,%xmm7
  movsd  D54(%rip),%xmm2
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm7
  cvtsd2ss %xmm7,%xmm7
  movss  %xmm7,(%rdi)
  movss  (%rdx),%xmm0
  movss  0x4(%rdx),%xmm9
  cvtss2sd 0x40(%rsi),%xmm10
  movss  0x8(%rdx),%xmm8
  movaps %xmm0,%xmm7
  movaps %xmm9,%xmm11
  mulss  %xmm9,%xmm11
  cvtss2sd %xmm8,%xmm12
  mulss  %xmm0,%xmm7
  subss  %xmm11,%xmm7
  pxor   %xmm11,%xmm11
  cvtss2sd 0x44(%rsi),%xmm11
  mulsd  %xmm6,%xmm11
  cvtss2sd %xmm7,%xmm7
  mulsd  %xmm11,%xmm7
  movapd %xmm10,%xmm11
  mulsd  %xmm1,%xmm11
  mulsd  %xmm4,%xmm10
  mulsd  %xmm12,%xmm11
  mulsd  %xmm12,%xmm11
  addsd  %xmm11,%xmm7
  pxor   %xmm11,%xmm11
  cvtss2sd 0x24(%rsi),%xmm11
  mulsd  %xmm5,%xmm11
  addsd  %xmm11,%xmm7
  movss  0x38(%rsi),%xmm11
  mulss  %xmm9,%xmm11
  subsd  %xmm10,%xmm7
  movapd %xmm7,%xmm10
  movss  0x34(%rsi),%xmm7
  mulss  %xmm8,%xmm11
  mulss  %xmm0,%xmm7
  mulss  %xmm9,%xmm7
  mulss  0x2c(%rsi),%xmm9
  addss  %xmm11,%xmm7
  movss  0x3c(%rsi),%xmm11
  mulss  %xmm8,%xmm11
  mulss  0x30(%rsi),%xmm8
  mulss  %xmm0,%xmm11
  mulss  0x28(%rsi),%xmm0
  addss  %xmm11,%xmm7
  pxor   %xmm11,%xmm11
  addss  %xmm9,%xmm0
  cvtss2sd %xmm7,%xmm7
  mulsd  %xmm3,%xmm7
  addss  %xmm8,%xmm0
  cvtss2sd %xmm0,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm10,%xmm7
  pxor   %xmm10,%xmm10
  addsd  %xmm0,%xmm7
  cvtsd2ss %xmm7,%xmm7
  movss  %xmm7,0x4(%rdi)
  movss  (%rdx),%xmm0
  movss  0x4(%rdx),%xmm8
  cvtss2sd 0x64(%rsi),%xmm10
  mulsd  %xmm10,%xmm1
  movss  0x8(%rdx),%xmm7
  mulsd  %xmm4,%xmm10
  movaps %xmm0,%xmm9
  movaps %xmm8,%xmm12
  mulss  %xmm8,%xmm12
  cvtss2sd %xmm7,%xmm11
  mulss  %xmm0,%xmm9
  mulsd  %xmm11,%xmm1
  subss  %xmm12,%xmm9
  pxor   %xmm12,%xmm12
  cvtss2sd 0x68(%rsi),%xmm12
  mulsd  %xmm12,%xmm6
  mulsd  %xmm11,%xmm1
  cvtss2sd %xmm9,%xmm9
  mulsd  %xmm9,%xmm6
  addsd  %xmm6,%xmm1
  pxor   %xmm6,%xmm6
  cvtss2sd 0x48(%rsi),%xmm6
  mulsd  %xmm6,%xmm5
  addsd  %xmm5,%xmm1
  movss  0x5c(%rsi),%xmm5
  mulss  %xmm8,%xmm5
  movapd %xmm1,%xmm4
  movss  0x58(%rsi),%xmm1
  subsd  %xmm10,%xmm4
  mulss  %xmm0,%xmm1
  mulss  %xmm7,%xmm5
  mulss  %xmm8,%xmm1
  mulss  0x50(%rsi),%xmm8
  addss  %xmm5,%xmm1
  movss  0x60(%rsi),%xmm5
  mulss  %xmm7,%xmm5
  mulss  0x54(%rsi),%xmm7
  mulss  %xmm0,%xmm5
  mulss  0x4c(%rsi),%xmm0
  addss  %xmm5,%xmm1
  addss  %xmm8,%xmm0
  cvtss2sd %xmm1,%xmm1
  mulsd  %xmm3,%xmm1
  addss  %xmm7,%xmm0
  cvtss2sd %xmm0,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm4,%xmm1
  addsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x8(%rdi)
  ret
```

tool_calls: name: parse_data
arguments: tag: D5
type_guessed: f64
name: parse_data
arguments: tag: D40
type_guessed: f64
name: parse_data
arguments: tag: D38
type_guessed: f64
name: parse_data
arguments: tag: D21
type_guessed: f64
name: parse_data
arguments: tag: D35
type_guessed: byte[8]
name: parse_data
arguments: tag: D54
type_guessed: byte[8]

tool: D5: 0.429043

tool: D40: 0.886227

tool: D38: 0.743125

tool: D21: 0.247708

tool: {"D35": [0x7f,0xf9,0x64,0xc5,0x70,0x75,0xeb,0x3f]}

tool: {"D54": [0x23,0x4c,0x51,0x2e,0x8d,0x5f,0xf0,0x3f]}

assistant: ```c
void harmonicDiffuse(float *C, const float *Y, const float *D) {
  C[0] = (float)(0.429043 * Y[0 * 9 + 8] * (D[0] * D[0] - D[1] * D[1]) + 0.743125 * Y[0 * 9 + 7] * D[2] * D[2] + 0.886227 * Y[0 * 9 + 0] - 0.247708 * Y[0 * 9 + 7] + 0.429043 * 2 * (Y[0 * 9 + 4] * D[0] * D[1] + Y[0 * 9 + 5] * D[1] * D[2] + Y[0 * 9 + 6] * D[2] * D[0]) + 0.511664 * 2 * (Y[0 * 9 + 1] * D[0] + Y[0 * 9 + 2] * D[1] + Y[0 * 9 + 3] * D[2]));
  C[1] = (float)(0.429043 * Y[1 * 9 + 8] * (D[0] * D[0] - D[1] * D[1]) + 0.743125 * Y[1 * 9 + 7] * D[2] * D[2] + 0.886227 * Y[1 * 9 + 0] - 0.247708 * Y[1 * 9 + 7] + 0.429043 * 2 * (Y[1 * 9 + 4] * D[0] * D[1] + Y[1 * 9 + 5] * D[1] * D[2] + Y[1 * 9 + 6] * D[2] * D[0]) + 0.511664 * 2 * (Y[1 * 9 + 1] * D[0] + Y[1 * 9 + 2] * D[1] + Y[1 * 9 + 3] * D[2]));
  C[2] = (float)(0.429043 * Y[2 * 9 + 8] * (D[0] * D[0] - D[1] * D[1]) + 0.743125 * Y[2 * 9 + 7] * D[2] * D[2] + 0.886227 * Y[2 * 9 + 0] - 0.247708 * Y[2 * 9 + 7] + 0.429043 * 2 * (Y[2 * 9 + 4] * D[0] * D[1] + Y[2 * 9 + 5] * D[1] * D[2] + Y[2 * 9 + 6] * D[2] * D[0]) + 0.511664 * 2 * (Y[2 * 9 + 1] * D[0] + Y[2 * 9 + 2] * D[1] + Y[2 * 9 + 3] * D[2]));
}
```