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

```asm
<showuse>:
  endbr64
  push   %rbx
  lea    D89(%rip),%rdi
  call   <printf@plt>
  lea    D122(%rip),%rdi
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <printf@plt>
  lea    D72(%rip),%rdi
  call   <printf@plt>
  lea    D31(%rip),%rbx
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D184(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D178(%rip),%rdi
  call   <printf@plt>
  lea    D173(%rip),%rdi
  call   <printf@plt>
  lea    D149(%rip),%rdi
  call   <printf@plt>
  lea    D152(%rip),%rdi
  call   <printf@plt>
  lea    D130(%rip),%rdi
  call   <printf@plt>
  lea    D39(%rip),%rdi
  call   <printf@plt>
  lea    D6(%rip),%rdi
  call   <printf@plt>
  lea    D30(%rip),%rdi
  call   <printf@plt>
  lea    D58(%rip),%rdi
  call   <printf@plt>
  lea    D98(%rip),%rdi
  call   <printf@plt>
  lea    D117(%rip),%rdi
  call   <printf@plt>
  lea    D101(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  lea    D69(%rip),%rdi
  call   <printf@plt>
  mov    %rbx,%rdi
  call   <printf@plt>
  pop    %rbx
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D89
datatype: string
name: parse_data
arguments: data_tag: D122
datatype: string
name: parse_data
arguments: data_tag: D118
datatype: string
name: parse_data
arguments: data_tag: D72
datatype: string
name: parse_data
arguments: data_tag: D31
datatype: string
name: parse_data
arguments: data_tag: D184
datatype: string
name: parse_data
arguments: data_tag: D178
datatype: string
name: parse_data
arguments: data_tag: D173
datatype: string
name: parse_data
arguments: data_tag: D149
datatype: string
name: parse_data
arguments: data_tag: D152
datatype: string
name: parse_data
arguments: data_tag: D130
datatype: string
name: parse_data
arguments: data_tag: D39
datatype: string
name: parse_data
arguments: data_tag: D6
datatype: string
name: parse_data
arguments: data_tag: D30
datatype: string
name: parse_data
arguments: data_tag: D58
datatype: string
name: parse_data
arguments: data_tag: D98
datatype: string
name: parse_data
arguments: data_tag: D117
datatype: string
name: parse_data
arguments: data_tag: D101
datatype: string
name: parse_data
arguments: data_tag: D69
datatype: string

tool: D89: 		File Transfer System


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


tool: D118: User commands:


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


tool: D31: -------------------------------------------------------------------------------


tool: D184: 	SYNOPSIS	DESCRIPTION		OTHER


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


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


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


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


tool: D130: 	connect arg1 	connect server  	arg1:IP address


tool: D39: 	cd  arg1      	change local dir  	arg1:local dir


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


tool: D30: 	pwd           	display local path


tool: D58: 	!pwd           	display server path


tool: D98: 	bye           	disconnect


tool: D117: 	help          	help


tool: D101: 	exit          	quit system


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