user: Converte this assembly snippet into its equivalent C code:

```asm
<help_message>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D1(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x17,%ecx
  mov    $0x0,%edx
  mov    $0x5,%esi
  lea    D57(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D189(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D88(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D82(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D184(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D119(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D165(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D32(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D106(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D100(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: label: D91
datatype: string
name: retrieve_data
arguments: label: D1
datatype: string
name: retrieve_data
arguments: label: D57
datatype: string
name: retrieve_data
arguments: label: D28
datatype: string
name: retrieve_data
arguments: label: D189
datatype: string
name: retrieve_data
arguments: label: D88
datatype: string
name: retrieve_data
arguments: label: D82
datatype: string
name: retrieve_data
arguments: label: D184
datatype: string
name: retrieve_data
arguments: label: D86
datatype: string
name: retrieve_data
arguments: label: D119
datatype: string
name: retrieve_data
arguments: label: D48
datatype: string
name: retrieve_data
arguments: label: D165
datatype: string
name: retrieve_data
arguments: label: D32
datatype: string
name: retrieve_data
arguments: label: D118
datatype: string
name: retrieve_data
arguments: label: D51
datatype: string
name: retrieve_data
arguments: label: D106
datatype: string
name: retrieve_data
arguments: label: D100
datatype: string
name: retrieve_data
arguments: label: D53
datatype: string

tool: D91: ********************************************************************************

tool: D1: 
lifer - A Windows link file (a.k.a. shortcut) analyser

tool: D57: Version: %u.%u.%u



tool: D28: Usage: lifer  [-vhs] [-o csv|tsv|txt|xml] file(s)|directory

tool: D189:        lifer   -i    [-o txt|xml]         file(s)|directory


tool: D88: Options:

tool: D82:   -v    print version number

tool: D184:   -h    print this help

tool: D86:   -s    shortened output (default is to output all fields)

tool: D119:   -o    output type (choose from csv, tsv, txt or xml). 

tool: D48:         The default is txt.

tool: D165:   -i    print idlist information (only with output type: 'txt' or 'xml')


tool: D32: Output is to standard output, therefore to send to a file, use the

tool: D118: redirection operator '>'.


tool: D51: Example:
  lifer -o csv {DIRECTORY} > Links.csv


tool: D106: This will create a comma seperated file named Links.csv in the current

tool: D100: directory. The file can be viewed in a spreadsheet and will contain details

tool: D53: of all the link files found in the named directory.


assistant: ```c
void help_message() {
  printf("********************************************************************************\n");
  printf("\nlifer - A Windows link file (a.k.a. shortcut) analyser\n");
  printf("Version: %u.%u.%u\n\n", 5, 0, 23);
  printf("Usage: lifer  [-vhs] [-o csv|tsv|txt|xml] file(s)|directory\n");
  printf("       lifer   -i    [-o txt|xml]         file(s)|directory\n\n");
  printf("Options:\n");
  printf("  -v    print version number\n");
  printf("  -h    print this help\n");
  printf("  -s    shortened output (default is to output all fields)\n");
  printf("  -o    output type (choose from csv, tsv, txt or xml). \n");
  printf("        The default is txt.\n");
  printf("  -i    print idlist information (only with output type: 'txt' or 'xml')\n\n");
  printf("Output is to standard output, therefore to send to a file, use the\n");
  printf("redirection operator '>'.\n\n");
  printf("Example:\n  lifer -o csv {DIRECTORY} > Links.csv\n\n");
  printf("This will create a comma seperated file named Links.csv in the current\n");
  printf("directory. The file can be viewed in a spreadsheet and will contain details\n");
  printf("of all the link files found in the named directory.\n\n");
  printf("********************************************************************************\n");
}
```