user: What is the c source code of the assembly code below:

```asm
<minCost>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x50,%rsp
  mov    %rdi,-0x48(%rbp)
  mov    %esi,-0x4c(%rbp)
  mov    %edx,-0x50(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x48(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x30(%rbp)
  movl   $0x1,-0x38(%rbp)
  jmp    L46
L81:
  mov    -0x38(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x30,%rax
  mov    (%rax),%ecx
  mov    -0x38(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  add    %eax,%ecx
  mov    -0x38(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  add    %rbp,%rax
  sub    $0x30,%rax
  mov    %ecx,(%rax)
  addl   $0x1,-0x38(%rbp)
L46:
  mov    -0x38(%rbp),%eax
  cmp    -0x4c(%rbp),%eax
  jle    L81
  movl   $0x1,-0x34(%rbp)
  jmp    L57
L26:
  mov    -0x34(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    -0x30(%rbp,%rax,4),%ecx
  mov    -0x48(%rbp),%rax
  mov    -0x34(%rbp),%edx
  movslq %edx,%rdx
  mov    (%rax,%rdx,4),%eax
  lea    (%rcx,%rax,1),%edx
  mov    -0x34(%rbp),%eax
  cltq
  mov    %edx,-0x30(%rbp,%rax,4)
  addl   $0x1,-0x34(%rbp)
L57:
  mov    -0x34(%rbp),%eax
  cmp    -0x50(%rbp),%eax
  jle    L26
  movl   $0x1,-0x38(%rbp)
  jmp    L86
L9:
  movl   $0x1,-0x34(%rbp)
  jmp    L55
L31:
  mov    -0x34(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0x38(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rcx,%rax
  mov    -0x30(%rbp,%rax,4),%edx
  mov    -0x38(%rbp),%eax
  lea    -0x1(%rax),%ecx
  mov    -0x34(%rbp),%eax
  movslq %eax,%rsi
  movslq %ecx,%rcx
  mov    %rcx,%rax
  add    %rax,%rax
  add    %rcx,%rax
  add    %rsi,%rax
  mov    -0x30(%rbp,%rax,4),%ecx
  mov    -0x38(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x34(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rdi
  movslq %esi,%rsi
  mov    %rsi,%rax
  add    %rax,%rax
  add    %rsi,%rax
  add    %rdi,%rax
  mov    -0x30(%rbp,%rax,4),%eax
  mov    %ecx,%esi
  mov    %eax,%edi
  call   <min@plt>
  mov    %eax,%ecx
  mov    -0x38(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x48(%rbp),%rax
  add    %rax,%rdx
  mov    -0x34(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  add    %eax,%ecx
  mov    -0x34(%rbp),%eax
  movslq %eax,%rsi
  mov    -0x38(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0x30(%rbp,%rax,4)
  addl   $0x1,-0x34(%rbp)
L55:
  mov    -0x34(%rbp),%eax
  cmp    -0x50(%rbp),%eax
  jle    L31
  addl   $0x1,-0x38(%rbp)
L86:
  mov    -0x38(%rbp),%eax
  cmp    -0x4c(%rbp),%eax
  jle    L9
  mov    -0x50(%rbp),%eax
  movslq %eax,%rcx
  mov    -0x4c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rcx,%rax
  mov    -0x30(%rbp,%rax,4),%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L39
  call   <__stack_chk_fail@plt>
L39:
  leave
  ret
```

assistant: ```c
int minCost(int cost[3][3], int m, int n) {
  int i, j;
  int travellingCost[3][3];
  travellingCost[0][0] = cost[0][0];
  for (i = 1; i <= m; i++)
    travellingCost[i][0] = travellingCost[i - 1][0] + cost[i][0];
  for (j = 1; j <= n; j++)
    travellingCost[0][j] = travellingCost[0][j - 1] + cost[0][j];
  for (i = 1; i <= m; i++)
    for (j = 1; j <= n; j++)
      travellingCost[i][j] = min(travellingCost[i - 1][j - 1], travellingCost[i - 1][j], travellingCost[i][j - 1]) + cost[i][j];
  return (travellingCost[m][n]);
}
```