user: Translate the below assembly code into C programming language:

```asm
<show_help>:
  endbr64
  sub    $0x8,%rsp
  lea    D57(%rip),%rdi
  call   <printf@plt>
  lea    D33(%rip),%rdi
  call   <printf@plt>
  lea    D94(%rip),%rdi
  call   <printf@plt>
  lea    D143(%rip),%rdi
  call   <printf@plt>
  lea    D30(%rip),%rdi
  call   <printf@plt>
  lea    D77(%rip),%rdi
  call   <printf@plt>
  lea    D82(%rip),%rdi
  call   <printf@plt>
  lea    D9(%rip),%rdi
  call   <printf@plt>
  lea    D139(%rip),%rdi
  call   <printf@plt>
  lea    D68(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  lea    D10(%rip),%rdi
  call   <printf@plt>
  lea    D61(%rip),%rdi
  call   <printf@plt>
  lea    D84(%rip),%rdi
  call   <printf@plt>
  lea    D47(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: parse_data
arguments: data_label: D57
type: string
name: parse_data
arguments: data_label: D33
type: string
name: parse_data
arguments: data_label: D94
type: string
name: parse_data
arguments: data_label: D143
type: string
name: parse_data
arguments: data_label: D30
type: string
name: parse_data
arguments: data_label: D77
type: string
name: parse_data
arguments: data_label: D82
type: string
name: parse_data
arguments: data_label: D9
type: string
name: parse_data
arguments: data_label: D139
type: string
name: parse_data
arguments: data_label: D68
type: string
name: parse_data
arguments: data_label: D74
type: string
name: parse_data
arguments: data_label: D10
type: string
name: parse_data
arguments: data_label: D61
type: string
name: parse_data
arguments: data_label: D84
type: string
name: parse_data
arguments: data_label: D47
type: string

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


tool: D33:                 [-b book_id] infile


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


tool: D143:   -i   means to include internal snippets


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


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


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


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


tool: D139: 


tool: D68: 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: D10: commands to insert selected sections.  IDs starting with int-


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


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


tool: D47: 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);
}
```