user: 下面的汇编指令对应的C源代码是什么：

```asm
<print_sys_cfg_rates_ext_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D117(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D70(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D108(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D33(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D94(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D93(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D24(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D103(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D117
type_guessed: string
name: extract_symbolic_data
arguments: tag: D70
type_guessed: string
name: extract_symbolic_data
arguments: tag: D108
type_guessed: string
name: extract_symbolic_data
arguments: tag: D7
type_guessed: string
name: extract_symbolic_data
arguments: tag: D120
type_guessed: string
name: extract_symbolic_data
arguments: tag: D33
type_guessed: string
name: extract_symbolic_data
arguments: tag: D94
type_guessed: string
name: extract_symbolic_data
arguments: tag: D13
type_guessed: string
name: extract_symbolic_data
arguments: tag: D93
type_guessed: string
name: extract_symbolic_data
arguments: tag: D24
type_guessed: string
name: extract_symbolic_data
arguments: tag: D17
type_guessed: string
name: extract_symbolic_data
arguments: tag: D22
type_guessed: string
name: extract_symbolic_data
arguments: tag: D67
type_guessed: string
name: extract_symbolic_data
arguments: tag: D103
type_guessed: string

tool: D117: 
Usage : sys_cfg_rates_ext [rates RATES] [mbrate RATE]


tool: D70: 
If 'Rate' provided, a 'set' is performed else a 'get' is performed

tool: D108: 
RATES is provided as a set of data rates, in unit of 500 kilobits

tool: D7: 
A rate with MSB bit is basic rate, i.e 0x82 is basic rate.


tool: D120: 
Following is the list of supported rates in units of 500 Kbps:

tool: D33: 
Decimal: (2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108)

tool: D94: 
Hex: (0x02, 0x04, 0x0b, 0x16, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6c)

tool: D13: 
Basic rates: (0x82, 0x84, 0x8b, 0x96, 0x8C, 0x92, 0x98, 0xA4, 0xB0, 0xC8, 0xE0, 0xEc)


tool: D93: 
Rates 2, 4, 11 and 22 (in units of 500 Kbps) must be present in either of basic or

tool: D24: 
non-basic rates. If OFDM rates are enabled then 12, 24 and 48 (in units of 500 Kbps)

tool: D17: 
must be present in either basic or non-basic rates

tool: D22: 
Each rate must be separated by a space.

tool: D67: 
rates followed by RATES for setting operational rates.

tool: D103: 
mbrate followed by RATE for setting multicast and broadcast rate.

assistant: ```c
void print_sys_cfg_rates_ext_usage(void) {
  printf("\nUsage : sys_cfg_rates_ext [rates RATES] [mbrate RATE]\n");
  printf("\nIf 'Rate' provided, a 'set' is performed else a 'get' is performed");
  printf("\nRATES is provided as a set of data rates, in unit of 500 kilobits");
  printf("\nA rate with MSB bit is basic rate, i.e 0x82 is basic rate.\n");
  printf("\nFollowing is the list of supported rates in units of 500 Kbps:");
  printf("\nDecimal: (2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108)");
  printf("\nHex: (0x02, 0x04, 0x0b, 0x16, 0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6c)");
  printf("\nBasic rates: (0x82, 0x84, 0x8b, 0x96, 0x8C, 0x92, 0x98, 0xA4, 0xB0, 0xC8, 0xE0, 0xEc)\n");
  printf("\nRates 2, 4, 11 and 22 (in units of 500 Kbps) must be present in either of basic or");
  printf("\nnon-basic rates. If OFDM rates are enabled then 12, 24 and 48 (in units of 500 Kbps)");
  printf("\nmust be present in either basic or non-basic rates");
  printf("\nEach rate must be separated by a space.");
  printf("\nrates followed by RATES for setting operational rates.");
  printf("\nmbrate followed by RATE for setting multicast and broadcast rate.");
  return;
}
```