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

```asm
<nest3>:
  endbr64
  sub    $0x8,%rsp
  mov    $0x3c,%esi
  lea    D107(%rip),%rdi
  call   <printf@plt>
  mov    $0x78,%esi
  lea    D81(%rip),%rdi
  call   <printf@plt>
  mov    $0x8,%esi
  lea    D49(%rip),%rdi
  call   <printf@plt>
  mov    $0x78,%esi
  lea    D20(%rip),%rdi
  call   <printf@plt>
  mov    $0x18,%esi
  lea    D59(%rip),%rdi
  call   <printf@plt>
  mov    $0x14,%esi
  lea    D4(%rip),%rdi
  call   <printf@plt>
  mov    $0x28,%esi
  lea    D36(%rip),%rdi
  call   <printf@plt>
  mov    $0x3c,%esi
  lea    D152(%rip),%rdi
  call   <printf@plt>
  mov    $0x28,%esi
  lea    D22(%rip),%rdi
  call   <printf@plt>
  mov    $0x8,%esi
  lea    D108(%rip),%rdi
  call   <printf@plt>
  mov    $0x4,%esi
  lea    D33(%rip),%rdi
  call   <printf@plt>
  mov    $0x8,%esi
  lea    D54(%rip),%rdi
  call   <printf@plt>
  mov    $0x14,%esi
  lea    D78(%rip),%rdi
  call   <printf@plt>
  mov    $0x8,%esi
  lea    D26(%rip),%rdi
  call   <printf@plt>
  mov    $0x14,%esi
  lea    D135(%rip),%rdi
  call   <printf@plt>
  mov    $0x4,%esi
  lea    D148(%rip),%rdi
  call   <printf@plt>
  mov    $0x4,%esi
  lea    D131(%rip),%rdi
  call   <printf@plt>
  mov    $0x4,%esi
  lea    D11(%rip),%rdi
  call   <printf@plt>
  mov    $0x4,%esi
  lea    D132(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: read_data
arguments: data_label: D107
type_infered: string
name: read_data
arguments: data_label: D81
type_infered: string
name: read_data
arguments: data_label: D49
type_infered: string
name: read_data
arguments: data_label: D20
type_infered: string
name: read_data
arguments: data_label: D59
type_infered: string
name: read_data
arguments: data_label: D4
type_infered: string
name: read_data
arguments: data_label: D36
type_infered: string
name: read_data
arguments: data_label: D152
type_infered: string
name: read_data
arguments: data_label: D22
type_infered: string
name: read_data
arguments: data_label: D108
type_infered: string
name: read_data
arguments: data_label: D33
type_infered: string
name: read_data
arguments: data_label: D54
type_infered: string
name: read_data
arguments: data_label: D78
type_infered: string
name: read_data
arguments: data_label: D26
type_infered: string
name: read_data
arguments: data_label: D135
type_infered: string
name: read_data
arguments: data_label: D148
type_infered: string
name: read_data
arguments: data_label: D131
type_infered: string
name: read_data
arguments: data_label: D11
type_infered: string
name: read_data
arguments: data_label: D132
type_infered: string

tool: D107: A1 -> %d


tool: D81: A2 -> %d


tool: D49: A3 -> %d


tool: D20: A4 -> %d


tool: D59: A5 -> %d


tool: D4: *A1 -> %d


tool: D36: *A2 -> %d


tool: D152: *A3 -> %d


tool: D22: *A4 -> %d


tool: D108: *A5 -> %d


tool: D33: **A1 -> %d


tool: D54: **A2 -> %d


tool: D78: **A3 -> %d


tool: D26: **A4 -> %d


tool: D135: **A5 -> %d


tool: D148: ***A2 -> %d


tool: D131: ***A3 -> %d


tool: D11: ***A4 -> %d


tool: D132: ***A5 -> %d


assistant: ```c
void nest3() {
  int A1[3][5];
  int *A2[3][5];
  int(*A3)[3][5];
  int *(A4[3][5]);
  int(*A5[3])[5];
  printf("A1 -> %d\n", sizeof(A1));
  printf("A2 -> %d\n", sizeof(A2));
  printf("A3 -> %d\n", sizeof(A3));
  printf("A4 -> %d\n", sizeof(A4));
  printf("A5 -> %d\n", sizeof(A5));
  printf("*A1 -> %d\n", sizeof(*A1));
  printf("*A2 -> %d\n", sizeof(*A2));
  printf("*A3 -> %d\n", sizeof(*A3));
  printf("*A4 -> %d\n", sizeof(*A4));
  printf("*A5 -> %d\n", sizeof(*A5));
  printf("**A1 -> %d\n", sizeof(**A1));
  printf("**A2 -> %d\n", sizeof(**A2));
  printf("**A3 -> %d\n", sizeof(**A3));
  printf("**A4 -> %d\n", sizeof(**A4));
  printf("**A5 -> %d\n", sizeof(**A5));
  printf("***A2 -> %d\n", sizeof(***A2));
  printf("***A3 -> %d\n", sizeof(***A3));
  printf("***A4 -> %d\n", sizeof(***A4));
  printf("***A5 -> %d\n", sizeof(***A5));
}
```