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

```asm
<io_print_syntax>:
  endbr64
  sub    $0x8,%rsp
  lea    D119(%rip),%rdi
  call   <puts@plt>
  lea    D199(%rip),%rdi
  call   <puts@plt>
  lea    D89(%rip),%rsi
  lea    D53(%rip),%rdi
  call   <printf@plt>
  lea    D11(%rip),%rsi
  lea    D172(%rip),%rdi
  call   <printf@plt>
  lea    D103(%rip),%rsi
  lea    D26(%rip),%rdi
  call   <printf@plt>
  lea    D15(%rip),%rsi
  lea    D67(%rip),%rdi
  call   <printf@plt>
  lea    D213(%rip),%rsi
  lea    D182(%rip),%rdi
  call   <printf@plt>
  lea    D209(%rip),%rsi
  lea    D128(%rip),%rdi
  call   <printf@plt>
  lea    D212(%rip),%rsi
  lea    D16(%rip),%rdi
  call   <printf@plt>
  lea    D122(%rip),%rsi
  lea    D195(%rip),%rdi
  call   <printf@plt>
  lea    D135(%rip),%rsi
  lea    D43(%rip),%rdi
  call   <printf@plt>
  lea    D36(%rip),%rsi
  lea    D3(%rip),%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: label: D119
data_type: string
name: unpack_data
arguments: label: D199
data_type: string
name: unpack_data
arguments: label: D89
data_type: string
name: unpack_data
arguments: label: D53
data_type: string
name: unpack_data
arguments: label: D11
data_type: string
name: unpack_data
arguments: label: D172
data_type: string
name: unpack_data
arguments: label: D103
data_type: string
name: unpack_data
arguments: label: D26
data_type: string
name: unpack_data
arguments: label: D15
data_type: string
name: unpack_data
arguments: label: D67
data_type: string
name: unpack_data
arguments: label: D213
data_type: string
name: unpack_data
arguments: label: D182
data_type: string
name: unpack_data
arguments: label: D209
data_type: string
name: unpack_data
arguments: label: D128
data_type: string
name: unpack_data
arguments: label: D212
data_type: string
name: unpack_data
arguments: label: D16
data_type: string
name: unpack_data
arguments: label: D122
data_type: string
name: unpack_data
arguments: label: D195
data_type: string
name: unpack_data
arguments: label: D135
data_type: string
name: unpack_data
arguments: label: D43
data_type: string
name: unpack_data
arguments: label: D36
data_type: string
name: unpack_data
arguments: label: D3
data_type: string

tool: D119: Soobnets a network and calculates useful network information

Usage:

tool: D199: Soobneter -a ADDRESS [-m MASK | -b BITS_BORROWED | -sc SOOBNET_COUNT| -hc HOST_COUNT] [-s] [-vs SOOBNET_NUM | -vr LOWER_BOUND UPPER_BOUND] [-q] [-? | --help]


tool: D89: -a  ADDRESS

tool: D53: %-29sSets host address in dotted decimal or slash form.


tool: D11: -m  MASK

tool: D172: %-29sSets the soobnet mask.


tool: D103: -b  BITS_BORROWED

tool: D26: %-29sSets the number of bits borrowed.


tool: D15: -sc SOOBNET_COUNT

tool: D67: %-29sSets the number of usable soobnets required.


tool: D213: -hc HOST_COUNT

tool: D182: %-29sSets the number of usable hosts/soobnet required.


tool: D209: -s

tool: D128: %-29sDisplays a network summary.


tool: D212: -vs SOOBNET_NUM

tool: D16: %-29sSpecifies the number of the soobnet to display.


tool: D122: -vr LOWER_BOUND UPPER_BOUND

tool: D195: %-29sSpecifies the soobnet range to display, inclusive.


tool: D135: -q

tool: D43: %-29sDisables interactive soobnet viewing.


tool: D36: -? --help

tool: D3: %-29sDisplays this help screen.


assistant: ```c
void io_print_syntax() {
  puts("Soobnets a network and calculates useful network information\n\nUsage:");
  puts("Soobneter -a ADDRESS [-m MASK | -b BITS_BORROWED | -sc SOOBNET_COUNT"
       "| -hc HOST_COUNT] [-s] [-vs SOOBNET_NUM | -vr LOWER_BOUND UPPER_BOUND] [-q] [-? | --help]\n");
  printf("%-29sSets host address in dotted decimal or slash form.\n", "-a  ADDRESS");
  printf("%-29sSets the soobnet mask.\n", "-m  MASK");
  printf("%-29sSets the number of bits borrowed.\n", "-b  BITS_BORROWED");
  printf("%-29sSets the number of usable soobnets required.\n", "-sc SOOBNET_COUNT");
  printf("%-29sSets the number of usable hosts/soobnet required.\n", "-hc HOST_COUNT");
  printf("%-29sDisplays a network summary.\n", "-s");
  printf("%-29sSpecifies the number of the soobnet to display.\n", "-vs SOOBNET_NUM");
  printf("%-29sSpecifies the soobnet range to display, inclusive.\n", "-vr LOWER_BOUND UPPER_BOUND");
  printf("%-29sDisables interactive soobnet viewing.\n", "-q");
  printf("%-29sDisplays this help screen.\n", "-? --help");
}
```