user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<print_info>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  sub    $0x8,%rsp
  call   <print_ssid@plt>
  mov    %rbp,%rsi
  lea    D6(%rip),%rdi
  mov    %rax,%rdx
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_bssid@plt>
  lea    D58(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_frequency@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r14
  call   <print_channel@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <print_mode@plt>
  mov    %r14,%rcx
  mov    %r13,%rdx
  lea    D44(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_quality_max@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r14
  call   <print_quality@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <print_txpower@plt>
  mov    %r14,%rcx
  mov    %r13,%rdx
  lea    D43(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_noise@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <print_signal@plt>
  mov    %r13,%rdx
  lea    D27(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_rate@plt>
  lea    D55(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_encryption@plt>
  lea    D20(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_hwmodes@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <print_type@plt>
  mov    %r13,%rdx
  lea    D108(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_hardware_name@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <print_hardware_id@plt>
  mov    %r13,%rdx
  lea    D42(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_txpower_offset@plt>
  lea    D93(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_frequency_offset@plt>
  lea    D68(%rip),%rdi
  mov    %rax,%rsi
  xor    %eax,%eax
  call   <printf@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <print_phyname@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    %rax,%r13
  call   <print_mbssid_supp@plt>
  add    $0x8,%rsp
  mov    %r13,%rdx
  lea    D10(%rip),%rdi
  pop    %rbp
  mov    %rax,%rsi
  pop    %r12
  xor    %eax,%eax
  pop    %r13
  pop    %r14
  jmp    11c0 <printf@plt>
```

tool_calls: name: retrieve_data
arguments: data_label: D6
type_infered: string
name: retrieve_data
arguments: data_label: D58
type_infered: string
name: retrieve_data
arguments: data_label: D44
type_infered: string
name: retrieve_data
arguments: data_label: D43
type_infered: string
name: retrieve_data
arguments: data_label: D27
type_infered: string
name: retrieve_data
arguments: data_label: D55
type_infered: string
name: retrieve_data
arguments: data_label: D20
type_infered: string
name: retrieve_data
arguments: data_label: D108
type_infered: string
name: retrieve_data
arguments: data_label: D42
type_infered: string
name: retrieve_data
arguments: data_label: D93
type_infered: string
name: retrieve_data
arguments: data_label: D68
type_infered: string
name: retrieve_data
arguments: data_label: D10
type_infered: string

tool: D6: %-9s ESSID: %s


tool: D58:           Access Point: %s


tool: D44:           Mode: %s  Channel: %s (%s)


tool: D43:           Tx-Power: %s  Link Quality: %s/%s


tool: D27:           Signal: %s  Noise: %s


tool: D55:           Bit Rate: %s


tool: D20:           Encryption: %s


tool: D108:           Type: %s  HW Mode(s): %s


tool: D42:           Hardware: %s [%s]


tool: D93:           TX power offset: %s


tool: D68:           Frequency offset: %s


tool: D10:           Supports VAPs: %s  PHY name: %s


assistant: ```c
void print_info(const struct iwinfo_ops *iw, const char *ifname) {
  printf("%-9s ESSID: %s\n", ifname, print_ssid(iw, ifname));
  printf("          Access Point: %s\n", print_bssid(iw, ifname));
  printf("          Mode: %s  Channel: %s (%s)\n", print_mode(iw, ifname), print_channel(iw, ifname), print_frequency(iw, ifname));
  printf("          Tx-Power: %s  Link Quality: %s/%s\n", print_txpower(iw, ifname), print_quality(iw, ifname), print_quality_max(iw, ifname));
  printf("          Signal: %s  Noise: %s\n", print_signal(iw, ifname), print_noise(iw, ifname));
  printf("          Bit Rate: %s\n", print_rate(iw, ifname));
  printf("          Encryption: %s\n", print_encryption(iw, ifname));
  printf("          Type: %s  HW Mode(s): %s\n", print_type(iw, ifname), print_hwmodes(iw, ifname));
  printf("          Hardware: %s [%s]\n", print_hardware_id(iw, ifname), print_hardware_name(iw, ifname));
  printf("          TX power offset: %s\n", print_txpower_offset(iw, ifname));
  printf("          Frequency offset: %s\n", print_frequency_offset(iw, ifname));
  printf("          Supports VAPs: %s  PHY name: %s\n", print_mbssid_supp(iw, ifname), print_phyname(iw, ifname));
}
```