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

```asm
<usage>:
  endbr64
  sub    $0x8,%rsp
  lea    D27(%rip),%rdi
  call   <printf@plt>
  lea    D128(%rip),%rdi
  call   <printf@plt>
  lea    D139(%rip),%rdi
  call   <printf@plt>
  lea    D95(%rip),%rdi
  call   <printf@plt>
  lea    D168(%rip),%rdi
  call   <printf@plt>
  lea    D39(%rip),%rdi
  call   <printf@plt>
  lea    D199(%rip),%rdi
  call   <printf@plt>
  lea    D74(%rip),%rdi
  call   <printf@plt>
  lea    D173(%rip),%rdi
  call   <printf@plt>
  lea    D140(%rip),%rdi
  call   <printf@plt>
  lea    D14(%rip),%rdi
  call   <printf@plt>
  lea    D185(%rip),%rdi
  call   <printf@plt>
  lea    D88(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D112(%rip),%rdi
  call   <printf@plt>
  lea    D64(%rip),%rdi
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D96(%rip),%rdi
  call   <printf@plt>
  lea    D47(%rip),%rdi
  call   <printf@plt>
  lea    D124(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D27
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D128
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D139
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D95
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D168
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D39
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D199
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D74
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D173
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D140
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D14
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D185
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D88
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D90
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D112
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D64
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D151
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D96
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D47
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D124
type_guessed: string

tool: D27: Usage:



tool: D128: sdf -a<ip> -p<port> -s<unit> -i<interval> -d<delay> -u<userid> -c<chipid> -n<num> -l<debug> -m<mode> -finputfile


tool: D139:     -a:           ip address of remote server


tool: D95:     -p:           port number of remote server


tool: D168:     -s:           packet size


tool: D39:     -i:           interval between 2 record, ms


tool: D199:     -d:           interval between 2 packet, ms


tool: D74:     -u:           the unique id of user


tool: D173:     -c:           the unique id of device


tool: D140:     -n:           recored number, -1 means endless


tool: D14:     -l:           debug level, 0-none 1-tidy 2-detail


tool: D185:     -m:           mixed mode, 0-disable, 1-mix(default)


tool: D88:     -f:           input file, output will be separate binary


tool: D90:     -z            compress enable


tool: D112:     -e            emulate enable


tool: D64:     -h            usage


tool: D151: 



tool: D96: Examples:


tool: D47:     sdf.exe -a114.215.121.190 -p9203 -s512 -i1000 -d100 -u476289 -c05D9FF313433504B51126828 -n1 -m0 -l1


tool: D124:     sdf.exe -flog.bin


assistant: ```c
void usage() {
  printf("Usage:\n\n");
  printf("sdf -a<ip> -p<port> -s<unit> -i<interval> -d<delay> -u<userid> -c<chipid> -n<num> -l<debug> -m<mode> -finputfile\n");
  printf("    -a:           ip address of remote server\n");
  printf("    -p:           port number of remote server\n");
  printf("    -s:           packet size\n");
  printf("    -i:           interval between 2 record, ms\n");
  printf("    -d:           interval between 2 packet, ms\n");
  printf("    -u:           the unique id of user\n");
  printf("    -c:           the unique id of device\n");
  printf("    -n:           recored number, -1 means endless\n");
  printf("    -l:           debug level, 0-none 1-tidy 2-detail\n");
  printf("    -m:           mixed mode, 0-disable, 1-mix(default)\n");
  printf("    -f:           input file, output will be separate binary\n");
  printf("    -z            compress enable\n");
  printf("    -e            emulate enable\n");
  printf("    -h            usage\n");
  printf("\n\n");
  printf("Examples:\n");
  printf("    sdf.exe -a114.215.121.190 -p9203 -s512 -i1000 -d100 -u476289 -c05D9FF313433504B51126828 -n1 -m0 -l1\n");
  printf("    sdf.exe -flog.bin\n");
}
```