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

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rdi,%rbp
  call   <version@plt>
  lea    D99(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <synopsis@plt>
  lea    D81(%rip),%rdi
  call   <printf@plt>
  lea    D24(%rip),%rdi
  call   <printf@plt>
  lea    D43(%rip),%rdi
  call   <printf@plt>
  lea    D54(%rip),%rdi
  call   <printf@plt>
  lea    D44(%rip),%rdi
  call   <printf@plt>
  lea    D130(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D118(%rip),%rdi
  call   <printf@plt>
  lea    D48(%rip),%rdi
  call   <printf@plt>
  lea    D106(%rip),%rdi
  call   <printf@plt>
  lea    D80(%rip),%rdi
  call   <printf@plt>
  lea    D23(%rip),%rdi
  call   <printf@plt>
  lea    D146(%rip),%rdi
  call   <printf@plt>
  lea    D136(%rip),%rdi
  call   <printf@plt>
  lea    D4(%rip),%rdi
  call   <printf@plt>
  lea    D158(%rip),%rdi
  call   <printf@plt>
  lea    D171(%rip),%rdi
  pop    %rbp
  jmp    1080 <printf@plt>
```

tool_calls: name: unpack_data
arguments: data_label: D99
type: string
name: unpack_data
arguments: data_label: D81
type: string
name: unpack_data
arguments: data_label: D24
type: string
name: unpack_data
arguments: data_label: D43
type: string
name: unpack_data
arguments: data_label: D54
type: string
name: unpack_data
arguments: data_label: D44
type: string
name: unpack_data
arguments: data_label: D130
type: string
name: unpack_data
arguments: data_label: D85
type: string
name: unpack_data
arguments: data_label: D118
type: string
name: unpack_data
arguments: data_label: D48
type: string
name: unpack_data
arguments: data_label: D106
type: string
name: unpack_data
arguments: data_label: D80
type: string
name: unpack_data
arguments: data_label: D23
type: string
name: unpack_data
arguments: data_label: D146
type: string
name: unpack_data
arguments: data_label: D136
type: string
name: unpack_data
arguments: data_label: D4
type: string
name: unpack_data
arguments: data_label: D158
type: string
name: unpack_data
arguments: data_label: D171
type: string

tool: D99: Usage:


tool: D81: -r machinename		The remote machine name to connect to.  If not


tool: D24: 			specified, then this is the server side.


tool: D43: -p netport		Specifiy IP port# (default 23000)


tool: D54: -s "stty params"	If serial port, specify stty parameters, see man stty


tool: D44: -m max-connections	Maximum number of simultaneous client connections to allow


tool: D130: -d			Run as a daemon program


tool: D85: -e			Prints usage examples and exits.


tool: D118: -q			Quiet, no chatty messages that flood the console


tool: D48: -x debuglevel		Set debug level, 0 is default, 1,2 give more info


tool: D106: -l linkname		If the device name is a pseudo-tty, create a link to the slave


tool: D80: -t			print time stamps in hexview.


tool: D23: -? or -u       		Prints Usage (this) and exits.


tool: D146: -v          		Prints Version and exits


tool: D136: -w          		Only write to the device, no reading


tool: D4: -h          		Prints a Hexdump of the communication (in/out) to the console


tool: D158: -H          		Prints a Hexdump of the communication (in/out) to syslog


tool: D171: device			I/O device, either serial port or pseudo-tty master


assistant: ```c
void usage(char *progname) {
  version(progname);
  printf("Usage:\n");
  synopsis(progname);
  printf("-r machinename		The remote machine name to connect to.  If not\n");
  printf("			specified, then this is the server side.\n");
  printf("-p netport		Specifiy IP port# (default 23000)\n");
  printf("-s \"stty params\"	If serial port, specify stty parameters, see man stty\n");
  printf("-m max-connections	Maximum number of simultaneous client connections to allow\n");
  printf("-d			Run as a daemon program\n");
  printf("-e			Prints usage examples and exits.\n");
  printf("-q			Quiet, no chatty messages that flood the console\n");
  printf("-x debuglevel		Set debug level, 0 is default, 1,2 give more info\n");
  printf("-l linkname		If the device name is a pseudo-tty, create a link to the slave\n");
  printf("-t			print time stamps in hexview.\n");
  printf("-? or -u       		Prints Usage (this) and exits.\n");
  printf("-v          		Prints Version and exits\n");
  printf("-w          		Only write to the device, no reading\n");
  printf("-h          		Prints a Hexdump of the communication (in/out) to the console\n");
  printf("-H          		Prints a Hexdump of the communication (in/out) to syslog\n");
  printf("device			I/O device, either serial port or pseudo-tty master\n");
}
```