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

```asm
<show_usage>:
  endbr64
  sub    $0x8,%rsp
  lea    D125(%rip),%rdi
  call   <printf@plt>
  lea    D58(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D4(%rip),%rdi
  call   <printf@plt>
  lea    D26(%rip),%rdi
  call   <printf@plt>
  lea    D91(%rip),%rdi
  call   <printf@plt>
  lea    D109(%rip),%rdi
  call   <printf@plt>
  lea    D28(%rip),%rdi
  call   <printf@plt>
  lea    D79(%rip),%rdi
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D77(%rip),%rdi
  call   <printf@plt>
  lea    D27(%rip),%rdi
  call   <printf@plt>
  lea    D132(%rip),%rdi
  call   <printf@plt>
  lea    D146(%rip),%rdi
  call   <printf@plt>
  lea    D48(%rip),%rdi
  call   <printf@plt>
  lea    D145(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D125
type_infered: string
name: retrieve_data
arguments: data_tag: D58
type_infered: string
name: retrieve_data
arguments: data_tag: D74
type_infered: string
name: retrieve_data
arguments: data_tag: D40
type_infered: string
name: retrieve_data
arguments: data_tag: D4
type_infered: string
name: retrieve_data
arguments: data_tag: D26
type_infered: string
name: retrieve_data
arguments: data_tag: D91
type_infered: string
name: retrieve_data
arguments: data_tag: D109
type_infered: string
name: retrieve_data
arguments: data_tag: D28
type_infered: string
name: retrieve_data
arguments: data_tag: D79
type_infered: string
name: retrieve_data
arguments: data_tag: D151
type_infered: string
name: retrieve_data
arguments: data_tag: D77
type_infered: string
name: retrieve_data
arguments: data_tag: D27
type_infered: string
name: retrieve_data
arguments: data_tag: D132
type_infered: string
name: retrieve_data
arguments: data_tag: D146
type_infered: string
name: retrieve_data
arguments: data_tag: D48
type_infered: string
name: retrieve_data
arguments: data_tag: D145
type_infered: string

tool: D125: usage:


tool: D58: 	fnc -s: run the interactive shell


tool: D74: 	fnc -h: shows this help


tool: D40: 	fnc -r module function [argumens*]: runs function from module passing optional arguments


tool: D4: options:


tool: D26: 	-t: type, can be beam (the default), lex, tree, ast, mod, erl or erl2ast


tool: D91: 	-o: output path, the path where the compiled files will be written


tool: D109: 	-T: test, instead of running the command print it to the screen


tool: D28: 	-a: append a path to look for modules


tool: D79: 	-p: prepend a path to look for modules


tool: D151: examples:


tool: D77: 	fnc foo.ifn: compile foo.ifn, write the result in the current directory


tool: D27: 	fnc foo.ifn bar.fn baz.ifn: same as before but multiple files compiled


tool: D132: 	fnc foo.ifn -o /tmp: compile foo.ifn, write the result in /tmp


tool: D146: 	fnc -t beam -o /tmp foo.ifn: same as before but with the type set


tool: D48: 	fnc -t erl foo.ifn: translate foo.ifn to erlang


tool: D145: 	fnc -r foo run: runs the run function in the foo module


assistant: ```c
void show_usage() {
  printf("usage:\n");
  printf("\tfnc -s: run the interactive shell\n");
  printf("\tfnc -h: shows this help\n");
  printf("\tfnc -r module function [argumens*]: runs function from module passing optional arguments\n");
  printf("options:\n");
  printf("\t-t: type, can be beam (the default), lex, tree, ast, mod, erl or erl2ast\n");
  printf("\t-o: output path, the path where the compiled files will be written\n");
  printf("\t-T: test, instead of running the command print it to the screen\n");
  printf("\t-a: append a path to look for modules\n");
  printf("\t-p: prepend a path to look for modules\n");
  printf("examples:\n");
  printf("\tfnc foo.ifn: compile foo.ifn, write the result in the current directory\n");
  printf("\tfnc foo.ifn bar.fn baz.ifn: same as before but multiple files compiled\n");
  printf("\tfnc foo.ifn -o /tmp: compile foo.ifn, write the result in /tmp\n");
  printf("\tfnc -t beam -o /tmp foo.ifn: same as before but with the type set\n");
  printf("\tfnc -t erl foo.ifn: translate foo.ifn to erlang\n");
  printf("\tfnc -r foo run: runs the run function in the foo module\n");
}
```