user: Converte this assembly snippet into its equivalent C code:

```asm
<print_help>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D114(%rip),%rdi
  call   <puts@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  mov    %rbx,%rsi
  lea    D301(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D296(%rip),%rdi
  call   <puts@plt>
  lea    D37(%rip),%rdx
  lea    D27(%rip),%rsi
  mov    $0x66,%edi
  call   <print_option@plt>
  lea    D177(%rip),%rdx
  lea    D269(%rip),%rsi
  mov    $0x73,%edi
  call   <print_option@plt>
  lea    D168(%rip),%rdx
  lea    D335(%rip),%rsi
  mov    $0x52,%edi
  call   <print_option@plt>
  lea    D320(%rip),%rdx
  lea    D351(%rip),%rsi
  mov    $0x65,%edi
  call   <print_option@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D224(%rip),%rdi
  call   <puts@plt>
  lea    D172(%rip),%rdx
  lea    D15(%rip),%rsi
  mov    $0x72,%edi
  call   <print_option@plt>
  lea    D34(%rip),%rdx
  lea    D43(%rip),%rsi
  mov    $0x70,%edi
  call   <print_option@plt>
  lea    D103(%rip),%rdx
  lea    D317(%rip),%rsi
  mov    $0x72,%edi
  call   <print_option@plt>
  lea    D25(%rip),%rdx
  lea    D299(%rip),%rsi
  mov    $0x0,%edi
  call   <print_option@plt>
  lea    D265(%rip),%rdx
  lea    D130(%rip),%rsi
  mov    $0x0,%edi
  call   <print_option@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D260(%rip),%rdi
  call   <puts@plt>
  lea    D184(%rip),%rdx
  lea    D87(%rip),%rsi
  mov    $0x6e,%edi
  call   <print_option@plt>
  lea    D33(%rip),%rdx
  lea    D218(%rip),%rsi
  mov    $0x0,%edi
  call   <print_option@plt>
  lea    D171(%rip),%rdx
  lea    D247(%rip),%rsi
  mov    $0x0,%edi
  call   <print_option@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D7(%rip),%rdi
  call   <puts@plt>
  lea    D340(%rip),%rdx
  lea    D31(%rip),%rsi
  mov    $0x68,%edi
  call   <print_option@plt>
  lea    D12(%rip),%rdx
  lea    D357(%rip),%rsi
  mov    $0x76,%edi
  call   <print_option@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  lea    D56(%rip),%rdi
  call   <puts@plt>
  lea    D215(%rip),%rdi
  call   <puts@plt>
  pop    %rbx
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D114
datatype: string
name: extract_symbolic_data
arguments: tag: D301
datatype: string
name: extract_symbolic_data
arguments: tag: D296
datatype: string
name: extract_symbolic_data
arguments: tag: D37
datatype: string
name: extract_symbolic_data
arguments: tag: D27
datatype: string
name: extract_symbolic_data
arguments: tag: D177
datatype: string
name: extract_symbolic_data
arguments: tag: D269
datatype: string
name: extract_symbolic_data
arguments: tag: D168
datatype: string
name: extract_symbolic_data
arguments: tag: D335
datatype: string
name: extract_symbolic_data
arguments: tag: D320
datatype: string
name: extract_symbolic_data
arguments: tag: D351
datatype: string
name: extract_symbolic_data
arguments: tag: D224
datatype: string
name: extract_symbolic_data
arguments: tag: D172
datatype: string
name: extract_symbolic_data
arguments: tag: D15
datatype: string
name: extract_symbolic_data
arguments: tag: D34
datatype: string
name: extract_symbolic_data
arguments: tag: D43
datatype: string
name: extract_symbolic_data
arguments: tag: D103
datatype: string
name: extract_symbolic_data
arguments: tag: D317
datatype: string
name: extract_symbolic_data
arguments: tag: D25
datatype: string
name: extract_symbolic_data
arguments: tag: D299
datatype: string
name: extract_symbolic_data
arguments: tag: D265
datatype: string
name: extract_symbolic_data
arguments: tag: D130
datatype: string
name: extract_symbolic_data
arguments: tag: D260
datatype: string
name: extract_symbolic_data
arguments: tag: D184
datatype: string
name: extract_symbolic_data
arguments: tag: D87
datatype: string
name: extract_symbolic_data
arguments: tag: D33
datatype: string
name: extract_symbolic_data
arguments: tag: D218
datatype: string
name: extract_symbolic_data
arguments: tag: D171
datatype: string
name: extract_symbolic_data
arguments: tag: D247
datatype: string
name: extract_symbolic_data
arguments: tag: D7
datatype: string
name: extract_symbolic_data
arguments: tag: D340
datatype: string
name: extract_symbolic_data
arguments: tag: D31
datatype: string
name: extract_symbolic_data
arguments: tag: D12
datatype: string
name: extract_symbolic_data
arguments: tag: D357
datatype: string
name: extract_symbolic_data
arguments: tag: D56
datatype: string
name: extract_symbolic_data
arguments: tag: D215
datatype: string

tool: D114: Emits live audio from JACK over FM through the Raspberry GPIO.

tool: D301: Usage:
  %1$s [options] [PORT]
  %1$s [options] [L_PORT R_PORT]
  %1$s (--help | --version)


tool: D296: Emission options:

tool: D37: Set the FM carrier frequency in MHz. [default: 103.3]

tool: D27: frequency=FREQ

tool: D177: Enable stereo emission.

tool: D269: stereo

tool: D168: Encode an RDS blob with the stream.

tool: D335: rds=FILE

tool: D320: Disable the pre-emphasis filter.

tool: D351: no-preemp

tool: D224: Sampling options:

tool: D172: Resample sound to 152kHz before emission.

tool: D15: resamp

tool: D34: Output (emission) period in frames. [default: 512]

tool: D43: period=FRAMES

tool: D103: Size of the ringbuffer in frames. [default: 16384]

tool: D317: ringsize=FRAMES

tool: D25: Resampling lookup table row size. [default: 5]

tool: D299: resamp-quality=N

tool: D265: Resampling lookup table column size. [default: 10]

tool: D130: resamp-squality=N

tool: D260: JACK options:

tool: D184: JACK client name. [default: jackpifm]

tool: D87: name=NAME

tool: D33: Force a specific JACK server by name.

tool: D218: server-name=NAME

tool: D171: Force the client to use the given name.

tool: D247: force-name

tool: D7: Other options:

tool: D340: Print this help message.

tool: D31: help

tool: D12: Print program version.

tool: D357: version

tool: D56: In the first form, jackpifm will connect its input (or both inputs if it's stereo) to the passed port. In the second form, the left input will be connected to the first passed port, and the right input to the second.


tool: D215: If you use --stereo or --rds make sure to pass --resamp too, or it won't start.


assistant: ```c
void print_help(const char *basename) {
  printf("Emits live audio from JACK over FM through the Raspberry GPIO.\n");
  printf("\n");
  printf("Usage:\n"
         "  %1$s [options] [PORT]\n"
         "  %1$s [options] [L_PORT R_PORT]\n"
         "  %1$s (--help | --version)\n",
         basename);
  printf("\n");
  printf("Emission options:\n");
  print_option('f', "frequency=FREQ", "Set the FM carrier frequency in MHz. [default: 103.3]");
  print_option('s', "stereo", "Enable stereo emission.");
  print_option('R', "rds=FILE", "Encode an RDS blob with the stream.");
  print_option('e', "no-preemp", "Disable the pre-emphasis filter.");
  printf("\n");
  printf("Sampling options:\n");
  print_option('r', "resamp", "Resample sound to 152kHz before emission.");
  print_option('p', "period=FRAMES", "Output (emission) period in frames. [default: 512]");
  print_option('r', "ringsize=FRAMES", "Size of the ringbuffer in frames. [default: 16384]");
  print_option(0, "resamp-quality=N", "Resampling lookup table row size. [default: 5]");
  print_option(0, "resamp-squality=N", "Resampling lookup table column size. [default: 10]");
  printf("\n");
  printf("JACK options:\n");
  print_option('n', "name=NAME", "JACK client name. [default: jackpifm]");
  print_option(0, "server-name=NAME", "Force a specific JACK server by name.");
  print_option(0, "force-name", "Force the client to use the given name.");
  printf("\n");
  printf("Other options:\n");
  print_option('h', "help", "Print this help message.");
  print_option('v', "version", "Print program version.");
  printf("\n");
  printf("In the first form, jackpifm will connect its input (or both inputs if it's stereo) "
         "to the passed port. In the second form, the left input will be connected to the "
         "first passed port, and the right input to the second.\n\n");
  printf("If you use --stereo or --rds make sure to pass --resamp too, or it won't start.\n\n");
}
```