user: Please show me the C implementation that matches the assembly code listed below:

```asm
<display_help_page>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x0,%eax
  call   <show_gnu_banner@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D206(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D297(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D1(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D386(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D19(%rip),%rax
  mov    %rax,%rsi
  lea    D153(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D19(%rip),%rax
  mov    %rax,%rsi
  lea    D104(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D254(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D19(%rip),%rax
  mov    %rax,%rsi
  lea    D424(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D280(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D258(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D212(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D308(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D228(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D101(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D369(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D70(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D179(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D59(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D359(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D415(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D45(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D207(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D74(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D409(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D139(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D36(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D296(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D237(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D367(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D394(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D342(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D247(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D303(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D206
type_guessed: string
name: unpack_data
arguments: data_label: D297
type_guessed: string
name: unpack_data
arguments: data_label: D1
type_guessed: string
name: unpack_data
arguments: data_label: D386
type_guessed: string
name: unpack_data
arguments: data_label: D19
type_guessed: string
name: unpack_data
arguments: data_label: D153
type_guessed: string
name: unpack_data
arguments: data_label: D104
type_guessed: string
name: unpack_data
arguments: data_label: D145
type_guessed: string
name: unpack_data
arguments: data_label: D254
type_guessed: string
name: unpack_data
arguments: data_label: D424
type_guessed: string
name: unpack_data
arguments: data_label: D280
type_guessed: string
name: unpack_data
arguments: data_label: D258
type_guessed: string
name: unpack_data
arguments: data_label: D117
type_guessed: string
name: unpack_data
arguments: data_label: D212
type_guessed: string
name: unpack_data
arguments: data_label: D308
type_guessed: string
name: unpack_data
arguments: data_label: D228
type_guessed: string
name: unpack_data
arguments: data_label: D101
type_guessed: string
name: unpack_data
arguments: data_label: D369
type_guessed: string
name: unpack_data
arguments: data_label: D70
type_guessed: string
name: unpack_data
arguments: data_label: D179
type_guessed: string
name: unpack_data
arguments: data_label: D59
type_guessed: string
name: unpack_data
arguments: data_label: D128
type_guessed: string
name: unpack_data
arguments: data_label: D147
type_guessed: string
name: unpack_data
arguments: data_label: D359
type_guessed: string
name: unpack_data
arguments: data_label: D415
type_guessed: string
name: unpack_data
arguments: data_label: D45
type_guessed: string
name: unpack_data
arguments: data_label: D207
type_guessed: string
name: unpack_data
arguments: data_label: D74
type_guessed: string
name: unpack_data
arguments: data_label: D409
type_guessed: string
name: unpack_data
arguments: data_label: D86
type_guessed: string
name: unpack_data
arguments: data_label: D139
type_guessed: string
name: unpack_data
arguments: data_label: D36
type_guessed: string
name: unpack_data
arguments: data_label: D296
type_guessed: string
name: unpack_data
arguments: data_label: D237
type_guessed: string
name: unpack_data
arguments: data_label: D81
type_guessed: string
name: unpack_data
arguments: data_label: D367
type_guessed: string
name: unpack_data
arguments: data_label: D0
type_guessed: string
name: unpack_data
arguments: data_label: D394
type_guessed: string
name: unpack_data
arguments: data_label: D82
type_guessed: string
name: unpack_data
arguments: data_label: D342
type_guessed: string
name: unpack_data
arguments: data_label: D247
type_guessed: string
name: unpack_data
arguments: data_label: D303
type_guessed: string

tool: D206: Syntax:

tool: D297: -------

tool: D1: To perform forward DNS lookups the -i parameter must be specified. When reverse

tool: D386: DNS lookups shall be performed, the -r parameter must be specified additionally.


tool: D19: DNSNINJA

tool: D153: Forward DNS Lookups:     %s [OPTIONS] -i <file>


tool: D104: Reverse DNS lookups:     %s [OPTIONS] -r -i <file>


tool: D145: Parameters:

tool: D254: -----------

tool: D424: %s currently supports the following parameters:



tool: D280: --reverse, -r                              Do a reverse DNS lookup. If not

tool: D258:                                            specified, a forward DNS lookup will

tool: D117:                                            be performed

tool: D212: --server=<ip1,ip2,...>, -s <ip1,ip2,...>   List of DNS servers, which shall be

tool: D308:                                            used as targets for DNS queries.

tool: D228: --domain=<mydomain>, -d <mydomain>         Specify the domain to be queried. Only

tool: D101:                                            used when doing forward DNS lookups

tool: D369:                                            (e.g. -d foo.org).

tool: D70: --inputfile=<inputfile>, -i <inputfile>    The file containing either a list of

tool: D179:                                            ip addresses or host names, depending

tool: D59:                                            on the lookup mode (reverse, forward).

tool: D128: --outputfile=<outputfile>, -o <outputfile> Allows you to write the query results

tool: D147:                                            into a simple, comma-separated text

tool: D359:                                            file. This allows you to further process

tool: D415:                                            the results in other  tools.

tool: D45: --loglevel=<level>, -l <level>             Specifies the desired log level. The

tool: D207:                                            following levels are supported:

tool: D74:                                              1 = ERROR (Log errors only)

tool: D409:                                              2 = INFO (Log additional information)

tool: D86:                                              3 = DEBUG (Log debug level information)

tool: D139: --version, -v                              Displays version information.

tool: D36: --help, -h                                 Displays this help page.

tool: D296: Bug Reports and Other Comments:

tool: D237: -------------------------------

tool: D81: I'm glad to receive comments and bug reports on this tool. You can best reach me

tool: D367: by email or IM using Jabber:


tool: D0: + E-Mail:     andre.gasser@gmx.ch

tool: D394: + Jabber:     sh0ka@jabber.ccc.de

tool: D82: Source Code:

tool: D342: ------------

tool: D247: Fetch the latest version from:

tool: D303: + GitHub:     https://github.com/shoka/dnsninja


assistant: ```c
void display_help_page(void) {
  show_gnu_banner();
  printf("\n");
  printf("Syntax:\n");
  printf("-------\n");
  printf("To perform forward DNS lookups the -i parameter must be specified. When reverse\n");
  printf("DNS lookups shall be performed, the -r parameter must be specified additionally.\n\n");
  printf("Forward DNS Lookups:     %s [OPTIONS] -i <file>\n", "DNSNINJA");
  printf("Reverse DNS lookups:     %s [OPTIONS] -r -i <file>\n", "DNSNINJA");
  printf("\n");
  printf("Parameters:\n");
  printf("-----------\n");
  printf("%s currently supports the following parameters:\n\n", "DNSNINJA");
  printf("--reverse, -r                              Do a reverse DNS lookup. If not\n");
  printf("                                           specified, a forward DNS lookup will\n");
  printf("                                           be performed\n");
  printf("--server=<ip1,ip2,...>, -s <ip1,ip2,...>   List of DNS servers, which shall be\n");
  printf("                                           used as targets for DNS queries.\n");
  printf("--domain=<mydomain>, -d <mydomain>         Specify the domain to be queried. Only\n");
  printf("                                           used when doing forward DNS lookups\n");
  printf("                                           (e.g. -d foo.org).\n");
  printf("--inputfile=<inputfile>, -i <inputfile>    The file containing either a list of\n");
  printf("                                           ip addresses or host names, depending\n");
  printf("                                           on the lookup mode (reverse, forward).\n");
  printf("--outputfile=<outputfile>, -o <outputfile> Allows you to write the query results\n");
  printf("                                           into a simple, comma-separated text\n");
  printf("                                           file. This allows you to further process\n");
  printf("                                           the results in other  tools.\n");
  printf("--loglevel=<level>, -l <level>             Specifies the desired log level. The\n");
  printf("                                           following levels are supported:\n");
  printf("                                             1 = ERROR (Log errors only)\n");
  printf("                                             2 = INFO (Log additional information)\n");
  printf("                                             3 = DEBUG (Log debug level information)\n");
  printf("--version, -v                              Displays version information.\n");
  printf("--help, -h                                 Displays this help page.\n");
  printf("\n");
  printf("Bug Reports and Other Comments:\n");
  printf("-------------------------------\n");
  printf("I'm glad to receive comments and bug reports on this tool. You can best reach me\n");
  printf("by email or IM using Jabber:\n\n");
  printf("+ E-Mail:     andre.gasser@gmx.ch\n");
  printf("+ Jabber:     sh0ka@jabber.ccc.de\n");
  printf("\n");
  printf("Source Code:\n");
  printf("------------\n");
  printf("Fetch the latest version from:\n");
  printf("+ GitHub:     https://github.com/shoka/dnsninja\n\n");
}
```