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

```asm
<show_help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D94(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D279(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D63(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D52(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D25(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D18(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D254(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D105(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D54(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D220(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D107(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D38(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D72(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D281(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D26(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D75(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D90(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D252(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D173(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D286(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D213(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D244(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D112(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D94
type: string
name: unpack_data
arguments: data_tag: D279
type: string
name: unpack_data
arguments: data_tag: D63
type: string
name: unpack_data
arguments: data_tag: D52
type: string
name: unpack_data
arguments: data_tag: D195
type: string
name: unpack_data
arguments: data_tag: D25
type: string
name: unpack_data
arguments: data_tag: D65
type: string
name: unpack_data
arguments: data_tag: D91
type: string
name: unpack_data
arguments: data_tag: D18
type: string
name: unpack_data
arguments: data_tag: D3
type: string
name: unpack_data
arguments: data_tag: D254
type: string
name: unpack_data
arguments: data_tag: D105
type: string
name: unpack_data
arguments: data_tag: D54
type: string
name: unpack_data
arguments: data_tag: D147
type: string
name: unpack_data
arguments: data_tag: D220
type: string
name: unpack_data
arguments: data_tag: D141
type: string
name: unpack_data
arguments: data_tag: D107
type: string
name: unpack_data
arguments: data_tag: D38
type: string
name: unpack_data
arguments: data_tag: D72
type: string
name: unpack_data
arguments: data_tag: D281
type: string
name: unpack_data
arguments: data_tag: D26
type: string
name: unpack_data
arguments: data_tag: D104
type: string
name: unpack_data
arguments: data_tag: D75
type: string
name: unpack_data
arguments: data_tag: D28
type: string
name: unpack_data
arguments: data_tag: D90
type: string
name: unpack_data
arguments: data_tag: D252
type: string
name: unpack_data
arguments: data_tag: D173
type: string
name: unpack_data
arguments: data_tag: D286
type: string
name: unpack_data
arguments: data_tag: D59
type: string
name: unpack_data
arguments: data_tag: D213
type: string
name: unpack_data
arguments: data_tag: D50
type: string
name: unpack_data
arguments: data_tag: D244
type: string
name: unpack_data
arguments: data_tag: D112
type: string

tool: D94: usage: %s [-a|-b]


tool: D279:   -a             init DAB mode

tool: D63:   -b             init fm mode

tool: D52:   -c frequency   tune frequency in FM mode

tool: D195:   -d             fm status

tool: D25:   -e             dab status

tool: D65:   -f service     start service of dab service list

tool: D91:   -g             get dab service list

tool: D18:   -i channel     tune to channel in dab frequency list

tool: D3:   -j region      set frequency list

tool: D254:                     0   Baden-Wuertemberg

tool: D105:                     1   Bayern

tool: D54:                     2   Berlin-Brandenburg

tool: D147:                     3   Bremen

tool: D220:                     4   Hamburg

tool: D141:                     5   Hessen

tool: D107:                     6   Mecklenburg-Vorpommern

tool: D38:                     7   Niedersachsen

tool: D72:                     8   Nordrhein-Westfalen

tool: D281:                     9   Rheinland-Pfalz

tool: D26:                     10  Saarland

tool: D104:                     11  Sachsen

tool: D75:                     12  Sachsen-Anhalt

tool: D28:                     13  Schleswig-Holstein

tool: D90:                     14  Thueringen

tool: D252:                     15  Suedtirol (Italien)

tool: D173:   -k region      scan frequency list

tool: D286:   -l up|down     fm seek next station

tool: D59:   -m             fm rds status

tool: D213:   -n             dab get audio info

tool: D50:   -o             dab get subchannel info

tool: D244:   -s             get sys state (fm,dab,am...)

tool: D112:   -h             this help

assistant: ```c
void show_help(char *prog_name) {
  printf("usage: %s [-a|-b]\n", prog_name);
  printf("  -a             init DAB mode\n");
  printf("  -b             init fm mode\n");
  printf("  -c frequency   tune frequency in FM mode\n");
  printf("  -d             fm status\n");
  printf("  -e             dab status\n");
  printf("  -f service     start service of dab service list\n");
  printf("  -g             get dab service list\n");
  printf("  -i channel     tune to channel in dab frequency list\n");
  printf("  -j region      set frequency list\n");
  printf("                    0   Baden-Wuertemberg\r\n");
  printf("                    1   Bayern\r\n");
  printf("                    2   Berlin-Brandenburg\r\n");
  printf("                    3   Bremen\r\n");
  printf("                    4   Hamburg\r\n");
  printf("                    5   Hessen\r\n");
  printf("                    6   Mecklenburg-Vorpommern\r\n");
  printf("                    7   Niedersachsen\r\n");
  printf("                    8   Nordrhein-Westfalen\r\n");
  printf("                    9   Rheinland-Pfalz\r\n");
  printf("                    10  Saarland\r\n");
  printf("                    11  Sachsen\r\n");
  printf("                    12  Sachsen-Anhalt\r\n");
  printf("                    13  Schleswig-Holstein\r\n");
  printf("                    14  Thueringen\r\n");
  printf("                    15  Suedtirol (Italien)\r\n");
  printf("  -k region      scan frequency list\r\n");
  printf("  -l up|down     fm seek next station\r\n");
  printf("  -m             fm rds status\r\n");
  printf("  -n             dab get audio info\r\n");
  printf("  -o             dab get subchannel info\r\n");
  printf("  -s             get sys state (fm,dab,am...)\r\n");
  printf("  -h             this help\n");
}
```