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

```asm
<print_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D27(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D80(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D39(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D98(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D55(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D161(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D75(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D97(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D124(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D106(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D102(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D114(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D190(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D196(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D107(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D211(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: tag: D27
type: string
name: disassemble_data
arguments: tag: D80
type: string
name: disassemble_data
arguments: tag: D39
type: string
name: disassemble_data
arguments: tag: D98
type: string
name: disassemble_data
arguments: tag: D118
type: string
name: disassemble_data
arguments: tag: D55
type: string
name: disassemble_data
arguments: tag: D161
type: string
name: disassemble_data
arguments: tag: D79
type: string
name: disassemble_data
arguments: tag: D75
type: string
name: disassemble_data
arguments: tag: D97
type: string
name: disassemble_data
arguments: tag: D124
type: string
name: disassemble_data
arguments: tag: D106
type: string
name: disassemble_data
arguments: tag: D102
type: string
name: disassemble_data
arguments: tag: D114
type: string
name: disassemble_data
arguments: tag: D190
type: string
name: disassemble_data
arguments: tag: D196
type: string
name: disassemble_data
arguments: tag: D65
type: string
name: disassemble_data
arguments: tag: D107
type: string
name: disassemble_data
arguments: tag: D211
type: string
name: disassemble_data
arguments: tag: D147
type: string

tool: D27: plpc - plp c toolchain



tool: D80: usage: plpc <options> <input files>


tool: D39: global options:


tool: D98: -o <filename>		output filename


tool: D118: -d [0,1,2]		debug level (0=off (default), 1=on, 2=verbose)


tool: D55: -e 			do not stop on errors, even if crazy things happen


tool: D161: --nocleanup		leave intermediate files


tool: D79: 


tool: D75: preprocessor options:


tool: D97: --define		print defines


tool: D124: compiler options:


tool: D106: --symbol		print symbol table to <output name>.symbol


tool: D102: --parse			print parse tree to <output name>.parse


tool: D114: --graph			create a visual graph of the parse tree to <output name>.png


tool: D190: --front			run the front end only, do not call handle() on the parse tree


tool: D196: --noannotate		do not annotate output with original source


tool: D65: binary builder options:


tool: D107: --entry <filename>	use alternate entry point


tool: D211: --metafile <filename>	use alternate metafile


tool: D147: --builtin		print builtin entry point and metafile and exit


assistant: ```c
void print_usage(void) {
  printf("plpc - plp c toolchain\n\n");
  printf("usage: plpc <options> <input files>\n");
  printf("global options:\n");
  printf("-o <filename>		output filename\n");
  printf("-d [0,1,2]		debug level (0=off (default), 1=on, 2=verbose)\n");
  printf("-e 			do not stop on errors, even if crazy things happen\n");
  printf("--nocleanup		leave intermediate files\n");
  printf("\n");
  printf("preprocessor options:\n");
  printf("--define		print defines\n");
  printf("\n");
  printf("compiler options:\n");
  printf("--symbol		print symbol table to <output name>.symbol\n");
  printf("--parse			print parse tree to <output name>.parse\n");
  printf("--graph			create a visual graph of the parse tree to <output name>.png\n");
  printf("--front			run the front end only, do not call handle() on the parse tree\n");
  printf("--noannotate		do not annotate output with original source\n");
  printf("\n");
  printf("binary builder options:\n");
  printf("--entry <filename>	use alternate entry point\n");
  printf("--metafile <filename>	use alternate metafile\n");
  printf("--builtin		print builtin entry point and metafile and exit\n");
}
```