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

```asm
<pencil_dgemm_ttt>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  mov    %edi,-0x54(%rbp)
  mov    %esi,-0x58(%rbp)
  mov    %edx,-0x5c(%rbp)
  movsd  %xmm0,-0x68(%rbp)
  mov    %ecx,-0x60(%rbp)
  mov    %r8,-0x70(%rbp)
  mov    %r9d,-0x74(%rbp)
  movsd  %xmm1,-0x80(%rbp)
  mov    -0x5c(%rbp),%edx
  movslq %edx,%rax
  sub    $0x1,%rax
  mov    %rax,-0x38(%rbp)
  movslq %edx,%rax
  mov    %rax,%r14
  mov    $0x0,%r15d
  mov    -0x58(%rbp),%ecx
  movslq %ecx,%rax
  sub    $0x1,%rax
  mov    %rax,-0x30(%rbp)
  movslq %ecx,%rax
  mov    %rax,%r12
  mov    $0x0,%r13d
  mov    -0x58(%rbp),%eax
  movslq %eax,%rsi
  sub    $0x1,%rsi
  mov    %rsi,-0x28(%rbp)
  movslq %eax,%rsi
  mov    %rsi,%r10
  mov    $0x0,%r11d
  movl   $0x0,-0x4c(%rbp)
  jmp    L19
L42:
  movl   $0x0,-0x48(%rbp)
  jmp    L37
L65:
  mov    -0x4c(%rbp),%esi
  movslq %esi,%rdi
  movslq %eax,%rsi
  imul   %rdi,%rsi
  lea    0x0(,%rsi,8),%rdi
  mov    0x20(%rbp),%rsi
  add    %rsi,%rdi
  mov    -0x48(%rbp),%esi
  movslq %esi,%rsi
  movsd  (%rdi,%rsi,8),%xmm0
  mov    -0x4c(%rbp),%esi
  movslq %esi,%rdi
  movslq %eax,%rsi
  imul   %rdi,%rsi
  lea    0x0(,%rsi,8),%rdi
  mov    0x20(%rbp),%rsi
  add    %rsi,%rdi
  mulsd  -0x80(%rbp),%xmm0
  mov    -0x48(%rbp),%esi
  movslq %esi,%rsi
  movsd  %xmm0,(%rdi,%rsi,8)
  addl   $0x1,-0x48(%rbp)
L37:
  mov    -0x54(%rbp),%esi
  cmp    -0x48(%rbp),%esi
  jg     L65
  addl   $0x1,-0x4c(%rbp)
L19:
  mov    -0x58(%rbp),%esi
  cmp    -0x4c(%rbp),%esi
  jg     L42
  movl   $0x0,-0x44(%rbp)
  jmp    L75
L68:
  movl   $0x0,-0x40(%rbp)
  jmp    L88
L17:
  movl   $0x0,-0x3c(%rbp)
  jmp    L67
L3:
  mov    -0x3c(%rbp),%esi
  movslq %esi,%rdi
  movslq %eax,%rsi
  imul   %rdi,%rsi
  lea    0x0(,%rsi,8),%rdi
  mov    0x20(%rbp),%rsi
  add    %rsi,%rdi
  mov    -0x40(%rbp),%esi
  movslq %esi,%rsi
  movsd  (%rdi,%rsi,8),%xmm1
  mov    -0x44(%rbp),%esi
  movslq %esi,%rdi
  movslq %edx,%rsi
  imul   %rdi,%rsi
  lea    0x0(,%rsi,8),%rdi
  mov    -0x70(%rbp),%rsi
  add    %rsi,%rdi
  mov    -0x40(%rbp),%esi
  movslq %esi,%rsi
  movsd  (%rdi,%rsi,8),%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0x68(%rbp),%xmm2
  mov    -0x3c(%rbp),%esi
  movslq %esi,%rdi
  movslq %ecx,%rsi
  imul   %rdi,%rsi
  lea    0x0(,%rsi,8),%rdi
  mov    0x10(%rbp),%rsi
  add    %rsi,%rdi
  mov    -0x44(%rbp),%esi
  movslq %esi,%rsi
  movsd  (%rdi,%rsi,8),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x3c(%rbp),%esi
  movslq %esi,%rdi
  movslq %eax,%rsi
  imul   %rdi,%rsi
  lea    0x0(,%rsi,8),%rdi
  mov    0x20(%rbp),%rsi
  add    %rsi,%rdi
  addsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%esi
  movslq %esi,%rsi
  movsd  %xmm0,(%rdi,%rsi,8)
  addl   $0x1,-0x3c(%rbp)
L67:
  mov    -0x58(%rbp),%esi
  cmp    -0x3c(%rbp),%esi
  jg     L3
  addl   $0x1,-0x40(%rbp)
L88:
  mov    -0x54(%rbp),%esi
  cmp    -0x40(%rbp),%esi
  jg     L17
  addl   $0x1,-0x44(%rbp)
L75:
  mov    -0x5c(%rbp),%esi
  cmp    -0x44(%rbp),%esi
  jg     L68
  nop
  nop
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
```

assistant: ```c
void pencil_dgemm_ttt(int m_3367_3469, int n_3368_3470, int k_3369_3471, double alpha_3370_3472, int ldA_3371_3473, double A_3372_3474[restrict const m_3367_3469][k_3369_3471], int ldB_3373_3475, double B_3374_3476[restrict const k_3369_3471][n_3368_3470], double beta_3375_3477, int ldC_3376_3478, double C_3377_3479[restrict const m_3367_3469][n_3368_3470]) {
#pragma scop
  {
#pragma pencil independent
    for (int i_1003_972_2194_5003 = 0; i_1003_972_2194_5003 <= (n_3368_3470 - 1); i_1003_972_2194_5003 += 1) {
#pragma pencil independent
      for (int i_1002_973_2195_5004 = 0; i_1002_973_2195_5004 <= (m_3367_3469 - 1); i_1002_973_2195_5004 += 1) {
        C_3377_3479[i_1003_972_2194_5003][i_1002_973_2195_5004] = (C_3377_3479[i_1003_972_2194_5003][i_1002_973_2195_5004] * beta_3375_3477);
      }
    }
    for (int i_1005_974_2196_5007 = 0; i_1005_974_2196_5007 <= (k_3369_3471 - 1); i_1005_974_2196_5007 += 1) {
      for (int i_1004_975_2197_5006 = 0; i_1004_975_2197_5006 <= (m_3367_3469 - 1); i_1004_975_2197_5006 += 1) {
        for (int i_1006_976_2198_5005 = 0; i_1006_976_2198_5005 <= (n_3368_3470 - 1); i_1006_976_2198_5005 += 1) {
          C_3377_3479[i_1006_976_2198_5005][i_1004_975_2197_5006] = (C_3377_3479[i_1006_976_2198_5005][i_1004_975_2197_5006] + ((alpha_3370_3472 * A_3372_3474[i_1005_974_2196_5007][i_1004_975_2197_5006]) * B_3374_3476[i_1006_976_2198_5005][i_1005_974_2196_5007]));
        }
      }
    }
  }
#pragma endscop
}
```