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

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D175(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D61(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D102(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D158(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D55(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D250(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D41(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D294(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D271(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D165(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D164(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D272(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D248(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D129(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D178(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D46(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D149(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D57(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D144(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D176(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D241(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D174(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D244(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D152(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D213(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D69
type: string
name: retrieve_data
arguments: data_label: D175
type: string
name: retrieve_data
arguments: data_label: D61
type: string
name: retrieve_data
arguments: data_label: D102
type: string
name: retrieve_data
arguments: data_label: D158
type: string
name: retrieve_data
arguments: data_label: D99
type: string
name: retrieve_data
arguments: data_label: D55
type: string
name: retrieve_data
arguments: data_label: D250
type: string
name: retrieve_data
arguments: data_label: D41
type: string
name: retrieve_data
arguments: data_label: D294
type: string
name: retrieve_data
arguments: data_label: D271
type: string
name: retrieve_data
arguments: data_label: D22
type: string
name: retrieve_data
arguments: data_label: D165
type: string
name: retrieve_data
arguments: data_label: D164
type: string
name: retrieve_data
arguments: data_label: D48
type: string
name: retrieve_data
arguments: data_label: D272
type: string
name: retrieve_data
arguments: data_label: D248
type: string
name: retrieve_data
arguments: data_label: D129
type: string
name: retrieve_data
arguments: data_label: D50
type: string
name: retrieve_data
arguments: data_label: D178
type: string
name: retrieve_data
arguments: data_label: D46
type: string
name: retrieve_data
arguments: data_label: D149
type: string
name: retrieve_data
arguments: data_label: D57
type: string
name: retrieve_data
arguments: data_label: D144
type: string
name: retrieve_data
arguments: data_label: D176
type: string
name: retrieve_data
arguments: data_label: D241
type: string
name: retrieve_data
arguments: data_label: D174
type: string
name: retrieve_data
arguments: data_label: D244
type: string
name: retrieve_data
arguments: data_label: D152
type: string
name: retrieve_data
arguments: data_label: D213
type: string

tool: D69: Usage: %s -m PCL -s size -t type -d density


tool: D175:        Where 'size' is in Megabytes

tool: D61:              'type' is data | clean | WORM

tool: D102:              'PCL' is Physical Cartridge Label (barcode)

tool: D158:              'density' is

tool: D99:                    AIT1

tool: D55:                    AIT2

tool: D250:                    AIT3

tool: D41:                    AIT4

tool: D294:                    DDS1

tool: D271:                    DDS2

tool: D22:                    DDS3

tool: D165:                    DDS4

tool: D164:                    DLT3

tool: D48:                    DLT4

tool: D272:                    LTO1

tool: D248:                    LTO2

tool: D129:                    LTO3

tool: D50:                    LTO4

tool: D178:                    LTO5

tool: D46:                    SDLT1

tool: D149:                    SDLT2

tool: D57:                    SDLT3

tool: D144:                    SDLT4

tool: D176:                    T10KA

tool: D241:                    T10KB

tool: D174:                    T10KC

tool: D244:                    J1A

tool: D152:                    E05

tool: D213:                    E06


assistant: ```c
void usage(char *progname) {
  printf("Usage: %s -m PCL -s size -t type -d density\n", progname);
  printf("       Where 'size' is in Megabytes\n");
  printf("             'type' is data | clean | WORM\n");
  printf("             'PCL' is Physical Cartridge Label (barcode)\n");
  printf("             'density' is\n");
  printf("                   AIT1\n");
  printf("                   AIT2\n");
  printf("                   AIT3\n");
  printf("                   AIT4\n");
  printf("                   DDS1\n");
  printf("                   DDS2\n");
  printf("                   DDS3\n");
  printf("                   DDS4\n");
  printf("                   DLT3\n");
  printf("                   DLT4\n");
  printf("                   LTO1\n");
  printf("                   LTO2\n");
  printf("                   LTO3\n");
  printf("                   LTO4\n");
  printf("                   LTO5\n");
  printf("                   SDLT1\n");
  printf("                   SDLT2\n");
  printf("                   SDLT3\n");
  printf("                   SDLT4\n");
  printf("                   T10KA\n");
  printf("                   T10KB\n");
  printf("                   T10KC\n");
  printf("                   J1A\n");
  printf("                   E05\n");
  printf("                   E06\n\n");
}
```