user: 请从给定的汇编指令推导出C源代码：

```asm
<show_help>:
  endbr64
  sub    $0x8,%rsp
  lea    D80(%rip),%rdi
  call   <printf@plt>
  lea    D10(%rip),%rdi
  call   <printf@plt>
  lea    D47(%rip),%rdi
  call   <printf@plt>
  lea    D67(%rip),%rdi
  call   <printf@plt>
  lea    D36(%rip),%rdi
  call   <printf@plt>
  lea    D21(%rip),%rdi
  call   <printf@plt>
  lea    D121(%rip),%rdi
  call   <printf@plt>
  lea    D125(%rip),%rdi
  call   <printf@plt>
  lea    D62(%rip),%rdi
  call   <printf@plt>
  lea    D122(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  lea    D143(%rip),%rdi
  call   <printf@plt>
  lea    D109(%rip),%rdi
  call   <printf@plt>
  lea    D66(%rip),%rdi
  call   <printf@plt>
  lea    D56(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  add    $0x8,%rsp
  jmp    1070 <exit@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D80
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D10
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D47
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D67
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D36
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D21
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D121
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D125
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D62
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D122
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D74
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D143
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D109
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D66
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D56
type_infered: string

tool: D80: Usage: doctool [-m] [-i] [-d dir] [-o outfile] [-s prefix] \


tool: D10:                 [-b book_id] infile


tool: D47:   -m   means to adjust Makefile to include new dependencies


tool: D67:   -i   means to include internal snippets


tool: D36:   -d   means to recursively scan directory for snippets


tool: D21:   -o   means to output to file (else stdout)


tool: D121:   -s   means to suppress source dir prefix


tool: D125:   -b   means to change the <book id="book_id">


tool: D62: 


tool: D122: doctool looks for DOCTOOL-START and DOCTOOL-END lines in source,


tool: D74: saves <foo id="bar"> blocks, and looks for DOCTOOL-INSERT-bar


tool: D143: commands to insert selected sections.  IDs starting with int-


tool: D109: are internal only, add- are added at the end of relevant sections


tool: D66: or add-int- for both.  Inserted sections are chosen by prefix,


tool: D56: and sorted when inserted.


assistant: ```c
void show_help() {
  printf("Usage: doctool [-m] [-i] [-d dir] [-o outfile] [-s prefix] \\\n");
  printf("                [-b book_id] infile\n");
  printf("  -m   means to adjust Makefile to include new dependencies\n");
  printf("  -i   means to include internal snippets\n");
  printf("  -d   means to recursively scan directory for snippets\n");
  printf("  -o   means to output to file (else stdout)\n");
  printf("  -s   means to suppress source dir prefix\n");
  printf("  -b   means to change the <book id=\"book_id\">\n");
  printf("\n");
  printf("doctool looks for DOCTOOL-START and DOCTOOL-END lines in source,\n");
  printf("saves <foo id=\"bar\"> blocks, and looks for DOCTOOL-INSERT-bar\n");
  printf("commands to insert selected sections.  IDs starting with int-\n");
  printf("are internal only, add- are added at the end of relevant sections\n");
  printf("or add-int- for both.  Inserted sections are chosen by prefix,\n");
  printf("and sorted when inserted.\n");
  exit(1);
}
```