user: What is the c source code of the assembly code below?

```asm
<display_help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D9(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D122(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D119(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D131(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D44(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D83(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D103(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D68(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D15(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D9
data_type: string
name: unpack_data
arguments: data_label: D122
data_type: string
name: unpack_data
arguments: data_label: D84
data_type: string
name: unpack_data
arguments: data_label: D119
data_type: string
name: unpack_data
arguments: data_label: D131
data_type: string
name: unpack_data
arguments: data_label: D44
data_type: string
name: unpack_data
arguments: data_label: D83
data_type: string
name: unpack_data
arguments: data_label: D78
data_type: string
name: unpack_data
arguments: data_label: D103
data_type: string
name: unpack_data
arguments: data_label: D68
data_type: string
name: unpack_data
arguments: data_label: D29
data_type: string
name: unpack_data
arguments: data_label: D58
data_type: string
name: unpack_data
arguments: data_label: D0
data_type: string
name: unpack_data
arguments: data_label: D15
data_type: string

tool: D9: Usage: %s [options]


tool: D122:   -i file   : set input file.

tool: D84:   -W int    : set the width of the crosswords.

tool: D119:   -H int    : set the height of the crosswords.

tool: D131:   -t string : set the title of the crosswords.

tool: D44:   -n int    : number of runs, best crossword kept.

tool: D83:   -v        : verbose mode.

tool: D78:   -l        : latex format.

tool: D103:   -w        : web format.

tool: D68:   -h        : display this help message.

tool: D29: Examples:

tool: D58:   %s -i words.txt > crossword.txt


tool: D0:   %s -li words.txt | rubber-pipe --pdf > crossword.pdf


tool: D15:   %s -wi words.txt > crossword.html


assistant: ```c
void display_help(char *pname) {
  printf("\n");
  printf("Usage: %s [options]\n", pname);
  printf("  -i file   : set input file.\n");
  printf("  -W int    : set the width of the crosswords.\n");
  printf("  -H int    : set the height of the crosswords.\n");
  printf("  -t string : set the title of the crosswords.\n");
  printf("  -n int    : number of runs, best crossword kept.\n");
  printf("  -v        : verbose mode.\n");
  printf("  -l        : latex format.\n");
  printf("  -w        : web format.\n");
  printf("  -h        : display this help message.");
  printf("\n");
  printf("Examples:\n");
  printf("  %s -i words.txt > crossword.txt\n", pname);
  printf("  %s -li words.txt | rubber-pipe --pdf > crossword.pdf\n", pname);
  printf("  %s -wi words.txt > crossword.html\n", pname);
  printf("\n");
}
```