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

```asm
<io_print_syntax>:
  endbr64
  sub    $0x8,%rsp
  lea    D110(%rip),%rdi
  call   <puts@plt>
  lea    D161(%rip),%rdi
  call   <puts@plt>
  lea    D87(%rip),%rsi
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D86(%rip),%rsi
  lea    D164(%rip),%rdi
  call   <printf@plt>
  lea    D33(%rip),%rsi
  lea    D196(%rip),%rdi
  call   <printf@plt>
  lea    D152(%rip),%rsi
  lea    D180(%rip),%rdi
  call   <printf@plt>
  lea    D31(%rip),%rsi
  lea    D70(%rip),%rdi
  call   <printf@plt>
  lea    D98(%rip),%rsi
  lea    D176(%rip),%rdi
  call   <printf@plt>
  lea    D195(%rip),%rsi
  lea    D88(%rip),%rdi
  call   <printf@plt>
  lea    D61(%rip),%rsi
  lea    D53(%rip),%rdi
  call   <printf@plt>
  lea    D160(%rip),%rsi
  lea    D44(%rip),%rdi
  call   <printf@plt>
  lea    D38(%rip),%rsi
  lea    D139(%rip),%rdi
  add    $0x8,%rsp
  jmp    1070 <printf@plt>
```

tool_calls: name: retrieve_data
arguments: label: D110
type_infered: string
name: retrieve_data
arguments: label: D161
type_infered: string
name: retrieve_data
arguments: label: D87
type_infered: string
name: retrieve_data
arguments: label: D151
type_infered: string
name: retrieve_data
arguments: label: D86
type_infered: string
name: retrieve_data
arguments: label: D164
type_infered: string
name: retrieve_data
arguments: label: D33
type_infered: string
name: retrieve_data
arguments: label: D196
type_infered: string
name: retrieve_data
arguments: label: D152
type_infered: string
name: retrieve_data
arguments: label: D180
type_infered: string
name: retrieve_data
arguments: label: D31
type_infered: string
name: retrieve_data
arguments: label: D70
type_infered: string
name: retrieve_data
arguments: label: D98
type_infered: string
name: retrieve_data
arguments: label: D176
type_infered: string
name: retrieve_data
arguments: label: D195
type_infered: string
name: retrieve_data
arguments: label: D88
type_infered: string
name: retrieve_data
arguments: label: D61
type_infered: string
name: retrieve_data
arguments: label: D53
type_infered: string
name: retrieve_data
arguments: label: D160
type_infered: string
name: retrieve_data
arguments: label: D44
type_infered: string
name: retrieve_data
arguments: label: D38
type_infered: string
name: retrieve_data
arguments: label: D139
type_infered: string

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

Usage:

tool: D161: 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: D87: -a  ADDRESS

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


tool: D86: -m  MASK

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


tool: D33: -b  BITS_BORROWED

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


tool: D152: -sc SOOBNET_COUNT

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


tool: D31: -hc HOST_COUNT

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


tool: D98: -s

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


tool: D195: -vs SOOBNET_NUM

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


tool: D61: -vr LOWER_BOUND UPPER_BOUND

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


tool: D160: -q

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


tool: D38: -? --help

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