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

```asm
<print_help>:
  endbr64
  sub    $0x8,%rsp
  lea    D58(%rip),%rdi
  call   <printf@plt>
  lea    D147(%rip),%rdi
  call   <printf@plt>
  lea    D3(%rip),%rdi
  call   <printf@plt>
  lea    D56(%rip),%rdi
  call   <printf@plt>
  lea    D139(%rip),%rdi
  call   <printf@plt>
  lea    D180(%rip),%rdi
  call   <printf@plt>
  lea    D37(%rip),%rdi
  call   <printf@plt>
  lea    D12(%rip),%rdi
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D193(%rip),%rdi
  call   <printf@plt>
  lea    D109(%rip),%rdi
  call   <printf@plt>
  lea    D190(%rip),%rdi
  call   <printf@plt>
  lea    D119(%rip),%rdi
  call   <printf@plt>
  lea    D47(%rip),%rdi
  call   <printf@plt>
  lea    D62(%rip),%rdi
  call   <printf@plt>
  lea    D167(%rip),%rdi
  call   <printf@plt>
  lea    D66(%rip),%rdi
  call   <printf@plt>
  lea    D166(%rip),%rdi
  call   <printf@plt>
  lea    D130(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D150(%rip),%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: tag: D58
type_infered: string
name: unpack_data
arguments: tag: D147
type_infered: string
name: unpack_data
arguments: tag: D3
type_infered: string
name: unpack_data
arguments: tag: D56
type_infered: string
name: unpack_data
arguments: tag: D139
type_infered: string
name: unpack_data
arguments: tag: D180
type_infered: string
name: unpack_data
arguments: tag: D37
type_infered: string
name: unpack_data
arguments: tag: D12
type_infered: string
name: unpack_data
arguments: tag: D151
type_infered: string
name: unpack_data
arguments: tag: D193
type_infered: string
name: unpack_data
arguments: tag: D109
type_infered: string
name: unpack_data
arguments: tag: D190
type_infered: string
name: unpack_data
arguments: tag: D119
type_infered: string
name: unpack_data
arguments: tag: D47
type_infered: string
name: unpack_data
arguments: tag: D62
type_infered: string
name: unpack_data
arguments: tag: D167
type_infered: string
name: unpack_data
arguments: tag: D66
type_infered: string
name: unpack_data
arguments: tag: D166
type_infered: string
name: unpack_data
arguments: tag: D130
type_infered: string
name: unpack_data
arguments: tag: D90
type_infered: string
name: unpack_data
arguments: tag: D150
type_infered: string

tool: D58: During run-time, interactive control can be exerted via : 


tool: D147: Mouse buttons allow rubber-banding of a zoom box


tool: D3: < halves the 'dwell', > doubles the 'dwell'


tool: D56: [ halves the 'settle', ] doubles the 'settle'


tool: D139: D flushes the drawing buffer


tool: D180: e or E recalculates color indices


tool: D37: f or F saves exponents to a file


tool: D12: h or H or ? displays this message


tool: D151: i decrements, I increments the stripe interval


tool: D193: KJMN increase/decrease minimum negative exponent


tool: D109: m increments the map index, changing maps


tool: D190: p or P reverses the colormap for negative/positive exponents


tool: D119: r redraws without recalculating


tool: D47: R redraws, recalculating with new dwell and settle values


tool: D62: s or S spins the colorwheel


tool: D167: u pops back up to the last zoom


tool: D66: U pops back up to the first picture


tool: D166: v or V displays the values of various settings


tool: D130: w decrements, W increments the color wheel index


tool: D90: x or X clears the window


tool: D150: q or Q exits


assistant: ```c
void print_help(struct state *st) {
  printf("During run-time, interactive control can be exerted via : \n");
  printf("Mouse buttons allow rubber-banding of a zoom box\n");
  printf("< halves the 'dwell', > doubles the 'dwell'\n");
  printf("[ halves the 'settle', ] doubles the 'settle'\n");
  printf("D flushes the drawing buffer\n");
  printf("e or E recalculates color indices\n");
  printf("f or F saves exponents to a file\n");
  printf("h or H or ? displays this message\n");
  printf("i decrements, I increments the stripe interval\n");
  printf("KJMN increase/decrease minimum negative exponent\n");
  printf("m increments the map index, changing maps\n");
  printf("p or P reverses the colormap for negative/positive exponents\n");
  printf("r redraws without recalculating\n");
  printf("R redraws, recalculating with new dwell and settle values\n");
  printf("s or S spins the colorwheel\n");
  printf("u pops back up to the last zoom\n");
  printf("U pops back up to the first picture\n");
  printf("v or V displays the values of various settings\n");
  printf("w decrements, W increments the color wheel index\n");
  printf("x or X clears the window\n");
  printf("q or Q exits\n");
}
```