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

```asm
<io_print_syntax>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D126(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D213(%rip),%rax
  mov    %rax,%rsi
  lea    D80(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D15(%rip),%rax
  mov    %rax,%rsi
  lea    D212(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D135(%rip),%rax
  mov    %rax,%rsi
  lea    D75(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D209(%rip),%rax
  mov    %rax,%rsi
  lea    D216(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D117(%rip),%rax
  mov    %rax,%rsi
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D67(%rip),%rax
  mov    %rax,%rsi
  lea    D54(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D85(%rip),%rax
  mov    %rax,%rsi
  lea    D160(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D173(%rip),%rax
  mov    %rax,%rsi
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D34(%rip),%rax
  mov    %rax,%rsi
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D47(%rip),%rax
  mov    %rax,%rsi
  lea    D174(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: data_label: D8
type_infered: string
name: parse_data
arguments: data_label: D126
type_infered: string
name: parse_data
arguments: data_label: D213
type_infered: string
name: parse_data
arguments: data_label: D80
type_infered: string
name: parse_data
arguments: data_label: D15
type_infered: string
name: parse_data
arguments: data_label: D212
type_infered: string
name: parse_data
arguments: data_label: D135
type_infered: string
name: parse_data
arguments: data_label: D75
type_infered: string
name: parse_data
arguments: data_label: D209
type_infered: string
name: parse_data
arguments: data_label: D216
type_infered: string
name: parse_data
arguments: data_label: D117
type_infered: string
name: parse_data
arguments: data_label: D60
type_infered: string
name: parse_data
arguments: data_label: D67
type_infered: string
name: parse_data
arguments: data_label: D54
type_infered: string
name: parse_data
arguments: data_label: D85
type_infered: string
name: parse_data
arguments: data_label: D160
type_infered: string
name: parse_data
arguments: data_label: D173
type_infered: string
name: parse_data
arguments: data_label: D96
type_infered: string
name: parse_data
arguments: data_label: D34
type_infered: string
name: parse_data
arguments: data_label: D65
type_infered: string
name: parse_data
arguments: data_label: D47
type_infered: string
name: parse_data
arguments: data_label: D174
type_infered: string

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

Usage:

tool: D126: 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: D213: -a  ADDRESS

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


tool: D15: -m  MASK

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


tool: D135: -b  BITS_BORROWED

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


tool: D209: -sc SOOBNET_COUNT

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


tool: D117: -hc HOST_COUNT

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


tool: D67: -s

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


tool: D85: -vs SOOBNET_NUM

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


tool: D173: -vr LOWER_BOUND UPPER_BOUND

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


tool: D34: -q

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


tool: D47: -? --help

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