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

```asm
<print_help>:
  endbr64
  sub    $0x8,%rsp
  lea    D97(%rip),%rdi
  call   <printf@plt>
  lea    D0(%rip),%rdi
  call   <printf@plt>
  lea    D13(%rip),%rdi
  call   <printf@plt>
  lea    D43(%rip),%rdi
  call   <printf@plt>
  lea    D89(%rip),%rdi
  call   <printf@plt>
  lea    D60(%rip),%rdi
  call   <printf@plt>
  lea    D19(%rip),%rdi
  call   <printf@plt>
  lea    D86(%rip),%rdi
  call   <printf@plt>
  lea    D64(%rip),%rdi
  call   <printf@plt>
  lea    D80(%rip),%rdi
  add    $0x8,%rsp
  jmp    1050 <printf@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D97
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D0
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D13
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D43
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D89
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D60
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D19
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D86
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D64
type_infered: string
name: extract_symbolic_data
arguments: data_tag: D80
type_infered: string

tool: D97: Usage: cpufreq-set [options]


tool: D0: Options:


tool: D13:   -c CPU, --cpu CPU        number of CPU where cpufreq settings shall be modified


tool: D43:   -d FREQ, --min FREQ      new minimum CPU frequency the governor may select


tool: D89:   -u FREQ, --max FREQ      new maximum CPU frequency the governor may select


tool: D60:   -g GOV, --governor GOV   new cpufreq governor


tool: D19:   -f FREQ, --freq FREQ     specific frequency to be set. Requires userspace
                           governor to be available and loaded


tool: D86:   -h, --help           Prints out this screen


tool: D64: 


tool: D80: Notes:
1. Omitting the -c or --cpu argument is equivalent to setting it to zero
2. The -f FREQ, --freq FREQ parameter cannot be combined with any other parameter
   except the -c CPU, --cpu CPU parameter
3. FREQuencies can be passed in Hz, kHz (default), MHz, GHz, or THz
   by postfixing the value with the wanted unit name, without any space
   (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).


assistant: ```c
void print_help(void) {
  printf("Usage: cpufreq-set [options]\n");
  printf("Options:\n");
  printf("  -c CPU, --cpu CPU        number of CPU where cpufreq settings shall be modified\n");
  printf("  -d FREQ, --min FREQ      new minimum CPU frequency the governor may select\n");
  printf("  -u FREQ, --max FREQ      new maximum CPU frequency the governor may select\n");
  printf("  -g GOV, --governor GOV   new cpufreq governor\n");
  printf("  -f FREQ, --freq FREQ     specific frequency to be set. Requires userspace\n"
         "                           governor to be available and loaded\n");
  printf("  -h, --help           Prints out this screen\n");
  printf("\n");
  printf("Notes:\n"
         "1. Omitting the -c or --cpu argument is equivalent to setting it to zero\n"
         "2. The -f FREQ, --freq FREQ parameter cannot be combined with any other parameter\n"
         "   except the -c CPU, --cpu CPU parameter\n"
         "3. FREQuencies can be passed in Hz, kHz (default), MHz, GHz, or THz\n"
         "   by postfixing the value with the wanted unit name, without any space\n"
         "   (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).\n");
}
```