user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<show_usage>:
  endbr64
  sub    $0x8,%rsp
  lea    D76(%rip),%rdi
  call   <printf@plt>
  lea    D75(%rip),%rdi
  call   <printf@plt>
  lea    D96(%rip),%rdi
  call   <printf@plt>
  lea    D99(%rip),%rdi
  call   <printf@plt>
  lea    D140(%rip),%rdi
  call   <printf@plt>
  lea    D88(%rip),%rdi
  call   <printf@plt>
  lea    D165(%rip),%rdi
  call   <printf@plt>
  lea    D98(%rip),%rdi
  call   <printf@plt>
  lea    D2(%rip),%rdi
  call   <printf@plt>
  lea    D117(%rip),%rdi
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D168(%rip),%rdi
  call   <printf@plt>
  lea    D104(%rip),%rdi
  call   <printf@plt>
  lea    D159(%rip),%rdi
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <printf@plt>
  lea    D144(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: unpack_data
arguments: tag: D76
type: string
name: unpack_data
arguments: tag: D75
type: string
name: unpack_data
arguments: tag: D96
type: string
name: unpack_data
arguments: tag: D99
type: string
name: unpack_data
arguments: tag: D140
type: string
name: unpack_data
arguments: tag: D88
type: string
name: unpack_data
arguments: tag: D165
type: string
name: unpack_data
arguments: tag: D98
type: string
name: unpack_data
arguments: tag: D2
type: string
name: unpack_data
arguments: tag: D117
type: string
name: unpack_data
arguments: tag: D118
type: string
name: unpack_data
arguments: tag: D151
type: string
name: unpack_data
arguments: tag: D168
type: string
name: unpack_data
arguments: tag: D104
type: string
name: unpack_data
arguments: tag: D159
type: string
name: unpack_data
arguments: tag: D46
type: string
name: unpack_data
arguments: tag: D144
type: string

tool: D76: usage:


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


tool: D96: 	fnc -h: shows this help


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


tool: D140: options:


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


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


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


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


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


tool: D118: examples:


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


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


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


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


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


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