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

```asm
<printMatrixClockwisely>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %esi,-0x2c(%rbp)
  mov    %edx,-0x30(%rbp)
  movl   $0x0,-0x14(%rbp)
  mov    -0x30(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0x10(%rbp)
  mov    -0x2c(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xc(%rbp)
  movl   $0x0,-0x8(%rbp)
  movl   $0xffffffff,-0x4(%rbp)
  jmp    L3
L88:
  addl   $0x1,-0x4(%rbp)
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    %eax,%esi
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L32:
  mov    -0x4(%rbp),%eax
  cmp    -0x10(%rbp),%eax
  jl     L88
  subl   $0x1,-0x10(%rbp)
  jmp    L87
L64:
  addl   $0x1,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    %eax,%esi
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L87:
  mov    -0x8(%rbp),%eax
  cmp    -0xc(%rbp),%eax
  jl     L64
  subl   $0x1,-0xc(%rbp)
  jmp    L68
L8:
  subl   $0x1,-0x4(%rbp)
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    %eax,%esi
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L68:
  mov    -0x4(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jg     L8
  addl   $0x1,-0x14(%rbp)
  jmp    L31
L50:
  subl   $0x1,-0x8(%rbp)
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    %eax,%esi
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L31:
  mov    -0x8(%rbp),%eax
  cmp    -0x14(%rbp),%eax
  jg     L50
L3:
  mov    -0x10(%rbp),%edx
  mov    -0xc(%rbp),%eax
  cmp    %eax,%edx
  cmovle %edx,%eax
  cmp    %eax,-0x14(%rbp)
  jl     L32
  mov    $0xa,%edi
  call   <putchar@plt>
  nop
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: tag: D10
type_guessed: string

tool: D10: %d 

assistant: ```c
void printMatrixClockwisely(int matrix[][5], int row, int col) {
  int min = 0;
  int maxCol = col - 1;
  int maxRow = row - 1;
  int i = 0, j = -1;
  while (min < (maxRow < maxCol ? maxRow : maxCol)) {
    while (j < maxCol) {
      ++j;
      printf("%d ", matrix[i][j]);
    }
    --maxCol;
    while (i < maxRow) {
      ++i;
      printf("%d ", matrix[i][j]);
    }
    --maxRow;
    while (j > min) {
      --j;
      printf("%d ", matrix[i][j]);
    }
    ++min;
    while (i > min) {
      --i;
      printf("%d ", matrix[i][j]);
    }
  }
  printf("\n");
}
```