user: Demonstrate the C code that generates the assembly output below:

```asm
<showuse>:
  endbr64
  push   %rbp
  lea    D39(%rip),%rdi
  lea    D42(%rip),%rbp
  call   <printf@plt>
  lea    D120(%rip),%rdi
  call   <printf@plt>
  lea    D34(%rip),%rdi
  call   <printf@plt>
  lea    D178(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D121(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D43(%rip),%rdi
  call   <printf@plt>
  lea    D137(%rip),%rdi
  call   <printf@plt>
  lea    D18(%rip),%rdi
  call   <printf@plt>
  lea    D87(%rip),%rdi
  call   <printf@plt>
  lea    D93(%rip),%rdi
  call   <printf@plt>
  lea    D33(%rip),%rdi
  call   <printf@plt>
  lea    D91(%rip),%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D162(%rip),%rdi
  call   <printf@plt>
  lea    D32(%rip),%rdi
  call   <printf@plt>
  lea    D28(%rip),%rdi
  call   <printf@plt>
  lea    D15(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D152(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  pop    %rbp
  jmp    1050 <printf@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D39
data_type: string
name: extract_symbolic_data
arguments: label: D42
data_type: string
name: extract_symbolic_data
arguments: label: D120
data_type: string
name: extract_symbolic_data
arguments: label: D34
data_type: string
name: extract_symbolic_data
arguments: label: D178
data_type: string
name: extract_symbolic_data
arguments: label: D121
data_type: string
name: extract_symbolic_data
arguments: label: D43
data_type: string
name: extract_symbolic_data
arguments: label: D137
data_type: string
name: extract_symbolic_data
arguments: label: D18
data_type: string
name: extract_symbolic_data
arguments: label: D87
data_type: string
name: extract_symbolic_data
arguments: label: D93
data_type: string
name: extract_symbolic_data
arguments: label: D33
data_type: string
name: extract_symbolic_data
arguments: label: D91
data_type: string
name: extract_symbolic_data
arguments: label: D40
data_type: string
name: extract_symbolic_data
arguments: label: D162
data_type: string
name: extract_symbolic_data
arguments: label: D32
data_type: string
name: extract_symbolic_data
arguments: label: D28
data_type: string
name: extract_symbolic_data
arguments: label: D15
data_type: string
name: extract_symbolic_data
arguments: label: D152
data_type: string

tool: D39: 		File Transfer System


tool: D42: -------------------------------------------------------------------------------


tool: D120:            (C) Copr Team  2015-11   Version 1.0 


tool: D34: User commands:


tool: D178: Example: command -option1 option2 ...


tool: D121: 	SYNOPSIS	DESCRIPTION		OTHER


tool: D43: 	get arg1 arg2	download		arg1:src file arg2:local path


tool: D137: 	put arg1 arg2	upload			arg1:src file arg2:local path


tool: D18: 	!cd arg1      	change server dir  	arg1:server dir


tool: D87: 	!ls arg1      	list server dir  	arg1:server dir


tool: D93: 	connect arg1 	connect server  	arg1:IP address


tool: D33: 	cd  arg1      	change local dir  	arg1:local dir


tool: D91: 	ls  arg1      	list current dir  	arg1:localdir


tool: D40: 	pwd           	display local path


tool: D162: 	!pwd           	display server path


tool: D32: 	bye           	disconnect


tool: D28: 	help          	help


tool: D15: 	exit          	quit system


tool: D152:   Note:    AP(absolute path).


assistant: ```c
void showuse() {
  printf("\t\tFile Transfer System\n");
  printf("           (C) Copr Team  2015-11   Version 1.0 \n");
  printf("User commands:\n");
  printf("Example: command -option1 option2 ...\n");
  printf("-------------------------------------------------------------------------------\n");
  printf("\tSYNOPSIS\tDESCRIPTION\t\tOTHER\n");
  printf("-------------------------------------------------------------------------------\n");
  printf("\tget arg1 arg2\tdownload\t\targ1:src file arg2:local path\n");
  printf("\tput arg1 arg2\tupload\t\t\targ1:src file arg2:local path\n");
  printf("\t!cd arg1      \tchange server dir  \targ1:server dir\n");
  printf("\t!ls arg1      \tlist server dir  \targ1:server dir\n");
  printf("\tconnect arg1 \tconnect server  \targ1:IP address\n");
  printf("\tcd  arg1      \tchange local dir  \targ1:local dir\n");
  printf("\tls  arg1      \tlist current dir  \targ1:localdir\n");
  printf("\tpwd           \tdisplay local path\n");
  printf("\t!pwd           \tdisplay server path\n");
  printf("\tbye           \tdisconnect\n");
  printf("\thelp          \thelp\n");
  printf("\texit          \tquit system\n");
  printf("-------------------------------------------------------------------------------\n");
  printf("  Note:    AP(absolute path).\n");
  printf("-------------------------------------------------------------------------------\n");
}
```