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

```asm
<rpy_to_T44_cov>:
  endbr64
  push   %rbp
  xor    %edi,%edi
  mov    %rdx,%rbp
  push   %rbx
  mov    %rcx,%rbx
  sub    $0x8,%rsp
  call   <assert@plt>
  movupd 0x0(%rbp),%xmm2
  pxor   %xmm1,%xmm1
  movupd 0x30(%rbp),%xmm0
  movupd 0x10(%rbp),%xmm3
  movupd 0x50(%rbp),%xmm4
  pxor   %xmm6,%xmm6
  mulpd  %xmm1,%xmm2
  mulpd  %xmm1,%xmm0
  mulpd  %xmm1,%xmm3
  mulpd  %xmm1,%xmm4
  addpd  %xmm1,%xmm2
  addpd  %xmm1,%xmm3
  addpd  %xmm0,%xmm2
  movupd 0x60(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm2
  movupd 0x90(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm2
  movupd 0xc0(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm2
  movupd 0xf0(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm2
  movupd 0x40(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm3
  movupd 0x70(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm3
  movupd 0xa0(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm3
  movupd 0xd0(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm3
  movupd 0x100(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  addpd  %xmm0,%xmm3
  movupd 0x20(%rbp),%xmm0
  mulpd  %xmm1,%xmm0
  movapd %xmm3,%xmm5
  unpckhpd %xmm3,%xmm3
  mulsd  %xmm6,%xmm5
  mulsd  %xmm6,%xmm3
  addpd  %xmm1,%xmm0
  addpd  %xmm4,%xmm0
  movupd 0x80(%rbp),%xmm4
  mulpd  %xmm1,%xmm4
  addpd  %xmm4,%xmm0
  movupd 0xb0(%rbp),%xmm4
  mulpd  %xmm1,%xmm4
  addpd  %xmm4,%xmm0
  movupd 0xe0(%rbp),%xmm4
  mulpd  %xmm1,%xmm4
  addpd  %xmm4,%xmm0
  movupd 0x110(%rbp),%xmm4
  mulpd  %xmm4,%xmm1
  addpd  %xmm1,%xmm0
  movapd %xmm2,%xmm1
  unpckhpd %xmm2,%xmm2
  mulsd  %xmm6,%xmm1
  mulsd  %xmm6,%xmm2
  movapd %xmm0,%xmm4
  unpckhpd %xmm0,%xmm0
  mulsd  %xmm6,%xmm4
  mulsd  %xmm6,%xmm0
  movsd  (%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,(%rbx)
  movsd  0x8(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x8(%rbx)
  movsd  0x10(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x10(%rbx)
  movsd  0x18(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x18(%rbx)
  movsd  0x20(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x20(%rbx)
  movsd  0x28(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x28(%rbx)
  movsd  0x30(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x30(%rbx)
  movsd  0x38(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x38(%rbx)
  movsd  0x40(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x40(%rbx)
  movsd  0x48(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x48(%rbx)
  movsd  0x50(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x50(%rbx)
  movsd  0x58(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x58(%rbx)
  movsd  0x60(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x60(%rbx)
  movsd  0x68(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  %xmm2,%xmm6
  addsd  %xmm5,%xmm6
  addsd  %xmm3,%xmm6
  addsd  %xmm4,%xmm6
  addsd  %xmm0,%xmm6
  movsd  %xmm6,0x68(%rbx)
  movsd  0x70(%rbx),%xmm6
  addsd  %xmm1,%xmm6
  addsd  0x78(%rbx),%xmm1
  addsd  %xmm2,%xmm6
  addsd  %xmm2,%xmm1
  addsd  %xmm5,%xmm6
  addsd  %xmm5,%xmm1
  addsd  %xmm3,%xmm6
  addsd  %xmm3,%xmm1
  addsd  %xmm4,%xmm6
  addsd  %xmm4,%xmm1
  addsd  %xmm0,%xmm6
  addsd  %xmm0,%xmm1
  movsd  %xmm6,0x70(%rbx)
  movsd  %xmm1,0x78(%rbx)
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  ret
```

assistant: ```c
void rpy_to_T44_cov(const double rpy_xyz[6], double T44[4][4], const double cov_rpy[6][6], double cov_T44[4][4]) {
  assert(0);
  double J[4][6] = {0};
  double tmp[4][6] = {0};
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 6; j++) {
      for (int k = 0; k < 6; k++) {
        tmp[i][j] += J[i][k] * cov_rpy[k][j];
      }
    }
  }
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
      for (int k = 0; k < 6; k++) {
        cov_T44[i][j] += tmp[i][k] * J[j][k];
      }
    }
  }
}
```