user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<usage>:
  endbr64
  sub    $0x8,%rsp
  mov    %rdi,%rsi
  lea    D129(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D159(%rip),%rdi
  call   <puts@plt>
  lea    D111(%rip),%rdi
  call   <puts@plt>
  lea    D25(%rip),%rdi
  call   <puts@plt>
  lea    D141(%rip),%rdi
  call   <puts@plt>
  lea    D14(%rip),%rdi
  call   <puts@plt>
  lea    D108(%rip),%rdi
  call   <puts@plt>
  lea    D52(%rip),%rdi
  call   <puts@plt>
  lea    D82(%rip),%rdi
  call   <puts@plt>
  lea    D126(%rip),%rdi
  call   <puts@plt>
  lea    D182(%rip),%rdi
  call   <puts@plt>
  lea    D76(%rip),%rdi
  call   <puts@plt>
  lea    D142(%rip),%rdi
  call   <puts@plt>
  lea    D69(%rip),%rdi
  call   <puts@plt>
  lea    D79(%rip),%rdi
  call   <puts@plt>
  lea    D72(%rip),%rdi
  call   <puts@plt>
  lea    D4(%rip),%rdi
  call   <puts@plt>
  lea    D43(%rip),%rdi
  call   <puts@plt>
  lea    D154(%rip),%rdi
  add    $0x8,%rsp
  jmp    1060 <puts@plt>
```

tool_calls: name: unpack_data
arguments: label: D129
type_guessed: string
name: unpack_data
arguments: label: D159
type_guessed: string
name: unpack_data
arguments: label: D111
type_guessed: string
name: unpack_data
arguments: label: D25
type_guessed: string
name: unpack_data
arguments: label: D141
type_guessed: string
name: unpack_data
arguments: label: D14
type_guessed: string
name: unpack_data
arguments: label: D108
type_guessed: string
name: unpack_data
arguments: label: D52
type_guessed: string
name: unpack_data
arguments: label: D82
type_guessed: string
name: unpack_data
arguments: label: D126
type_guessed: string
name: unpack_data
arguments: label: D182
type_guessed: string
name: unpack_data
arguments: label: D76
type_guessed: string
name: unpack_data
arguments: label: D142
type_guessed: string
name: unpack_data
arguments: label: D69
type_guessed: string
name: unpack_data
arguments: label: D79
type_guessed: string
name: unpack_data
arguments: label: D72
type_guessed: string
name: unpack_data
arguments: label: D4
type_guessed: string
name: unpack_data
arguments: label: D43
type_guessed: string
name: unpack_data
arguments: label: D154
type_guessed: string

tool: D129: usage: %s


tool: D159:         -c rx              select rx [0..8]

tool: D111:         -r rxfreq          set rx freq

tool: D25:         -a rx rate         set rx rate

tool: D141:         -t rxfreq          set tx freq

tool: D14:         -b tx rate         set rx rate

tool: D108:         -s samplerate      use sample rate

tool: D52:         -u                 init clock chip

tool: D82:         -p                 init adc and dac

tool: D126:         -g gain (-9 ..32)  rx 1 gain

tool: D182:         -k gain (-9 ..32)  rx 2 gain

tool: D76:         -i att  (0..31)    rx 1 att

tool: D142:         -j att  (0..31)    rx 2 att

tool: D69:         -e                 read rx data to stdout

tool: D79:         -f                 write 2 tone signal to tx data

tool: D72:         -d reg             select reg

tool: D4:         -l cnt             read from selected reg to reg+cnt

tool: D43:         -w val             write val to selected reg

tool: D154:         -h                 this usage

assistant: ```c
void usage(char *proc) {
  printf("usage: %s\n", proc);
  printf("        -c rx              select rx [0..8]\n");
  printf("        -r rxfreq          set rx freq\n");
  printf("        -a rx rate         set rx rate\n");
  printf("        -t rxfreq          set tx freq\n");
  printf("        -b tx rate         set rx rate\n");
  printf("        -s samplerate      use sample rate\n");
  printf("        -u                 init clock chip\n");
  printf("        -p                 init adc and dac\n");
  printf("        -g gain (-9 ..32)  rx 1 gain\n");
  printf("        -k gain (-9 ..32)  rx 2 gain\n");
  printf("        -i att  (0..31)    rx 1 att\n");
  printf("        -j att  (0..31)    rx 2 att\n");
  printf("        -e                 read rx data to stdout\n");
  printf("        -f                 write 2 tone signal to tx data\n");
  printf("        -d reg             select reg\n");
  printf("        -l cnt             read from selected reg to reg+cnt\n");
  printf("        -w val             write val to selected reg\n");
  printf("        -h                 this usage\n");
}
```