user: Please show me the C implementation that matches the assembly code listed below:

```asm
<mulMat_park>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x24(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    %rdx,-0x38(%rbp)
  mov    %rcx,-0x40(%rbp)
  movl   $0x0,-0x14(%rbp)
  jmp    L78
L127:
  movl   $0x0,-0xc(%rbp)
  jmp    L131
L80:
  movl   $0x0,-0x10(%rbp)
  jmp    L82
L145:
  mov    -0x14(%rbp),%eax
  imul   -0x24(%rbp),%eax
  mov    %eax,-0x8(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,-0x20(%rbp)
  jmp    L116
L146:
  mov    -0xc(%rbp),%eax
  imul   -0x24(%rbp),%eax
  mov    %eax,-0x4(%rbp)
  mov    -0xc(%rbp),%eax
  mov    %eax,-0x18(%rbp)
  jmp    L141
L6:
  mov    -0x10(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
  jmp    L110
L79:
  mov    -0x8(%rbp),%edx
  mov    -0x1c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%edx
  mov    -0x18(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x4(%rbp),%edx
  mov    -0x1c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x8(%rbp),%edx
  mov    -0x1c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x1c(%rbp)
L110:
  mov    -0x10(%rbp),%eax
  add    $0x1f,%eax
  cmp    %eax,-0x1c(%rbp)
  jg     L53
  mov    -0x1c(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L79
L53:
  mov    -0x24(%rbp),%eax
  add    %eax,-0x4(%rbp)
  addl   $0x1,-0x18(%rbp)
L141:
  mov    -0xc(%rbp),%eax
  add    $0x1f,%eax
  cmp    %eax,-0x18(%rbp)
  jg     L55
  mov    -0x18(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L6
L55:
  mov    -0x24(%rbp),%eax
  add    %eax,-0x8(%rbp)
  addl   $0x1,-0x20(%rbp)
L116:
  mov    -0x14(%rbp),%eax
  add    $0x1f,%eax
  cmp    %eax,-0x20(%rbp)
  jg     L70
  mov    -0x20(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L146
L70:
  addl   $0x20,-0x10(%rbp)
L82:
  mov    -0x10(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L145
  addl   $0x20,-0xc(%rbp)
L131:
  mov    -0xc(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L80
  addl   $0x20,-0x14(%rbp)
L78:
  mov    -0x14(%rbp),%eax
  cmp    -0x24(%rbp),%eax
  jl     L127
  nop
  pop    %rbp
  ret
```

assistant: ```c
void mulMat_park(const int matsize, const double *mata, const double *matb, double *matc) {
  int i, j, k, ii, jj, kk;
  int ixmatsize;
  int kxmatsize;
  for (ii = 0; ii < matsize; ii += 32) {
    for (kk = 0; kk < matsize; kk += 32) {
      for (jj = 0; jj < matsize; jj += 32) {
        ixmatsize = ii * matsize;
        for (i = ii; i < ii + 32 && i < matsize; i++) {
          kxmatsize = kk * matsize;
          for (k = kk; k < kk + 32 && k < matsize; k++) {
            for (j = jj; j < jj + 32 && j < matsize; j++) {
              matc[ixmatsize + j] += mata[ixmatsize + k] * matb[kxmatsize + j];
            }
            kxmatsize += matsize;
          }
          ixmatsize += matsize;
        }
      }
    }
  }
  return;
}
```