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

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D122(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D130(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D102(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D100(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D45(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D143(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D133(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D164(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D37(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D122
datatype: string
name: unpack_data
arguments: data_label: D84
datatype: string
name: unpack_data
arguments: data_label: D130
datatype: string
name: unpack_data
arguments: data_label: D35
datatype: string
name: unpack_data
arguments: data_label: D102
datatype: string
name: unpack_data
arguments: data_label: D42
datatype: string
name: unpack_data
arguments: data_label: D13
datatype: string
name: unpack_data
arguments: data_label: D100
datatype: string
name: unpack_data
arguments: data_label: D45
datatype: string
name: unpack_data
arguments: data_label: D143
datatype: string
name: unpack_data
arguments: data_label: D133
datatype: string
name: unpack_data
arguments: data_label: D164
datatype: string
name: unpack_data
arguments: data_label: D81
datatype: string
name: unpack_data
arguments: data_label: D0
datatype: string
name: unpack_data
arguments: data_label: D87
datatype: string
name: unpack_data
arguments: data_label: D64
datatype: string
name: unpack_data
arguments: data_label: D37
datatype: string

tool: D122: UCP commands:


tool: D84: ?|help


tool: D130: exit|quit


tool: D35: dir|ls [path]


tool: D102: cd path


tool: D42: mkdir dirname


tool: D13: mknod name mode dev#


tool: D100: chmod mode path


tool: D45: [b]get sourcefile [destfile]


tool: D143: [b]put uzifile


tool: D133: type|cat filename


tool: D164: dump filename


tool: D81: rm path


tool: D0: rmdir dirname


tool: D87: df


tool: D64: mount dev# path


tool: D37: umount path


assistant: ```c
void usage(void) {
  printf("UCP commands:\n");
  printf("?|help\n");
  printf("exit|quit\n");
  printf("dir|ls [path]\n");
  printf("cd path\n");
  printf("mkdir dirname\n");
  printf("mknod name mode dev#\n");
  printf("chmod mode path\n");
  printf("[b]get sourcefile [destfile]\n");
  printf("[b]put uzifile\n");
  printf("type|cat filename\n");
  printf("dump filename\n");
  printf("rm path\n");
  printf("rmdir dirname\n");
  printf("df\n");
  printf("mount dev# path\n");
  printf("umount path\n");
}
```