user: Translate the below assembly code into C programming language:

```asm
<print_help>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D108(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D66(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D120(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D158(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D159(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D124(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D36(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D41(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D141(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D160(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D39(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D43(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D144(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D151(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D176(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D140(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_label: D108
datatype: string
name: read_data
arguments: data_label: D66
datatype: string
name: read_data
arguments: data_label: D120
datatype: string
name: read_data
arguments: data_label: D158
datatype: string
name: read_data
arguments: data_label: D159
datatype: string
name: read_data
arguments: data_label: D17
datatype: string
name: read_data
arguments: data_label: D124
datatype: string
name: read_data
arguments: data_label: D36
datatype: string
name: read_data
arguments: data_label: D21
datatype: string
name: read_data
arguments: data_label: D41
datatype: string
name: read_data
arguments: data_label: D141
datatype: string
name: read_data
arguments: data_label: D145
datatype: string
name: read_data
arguments: data_label: D160
datatype: string
name: read_data
arguments: data_label: D39
datatype: string
name: read_data
arguments: data_label: D43
datatype: string
name: read_data
arguments: data_label: D144
datatype: string
name: read_data
arguments: data_label: D151
datatype: string
name: read_data
arguments: data_label: D176
datatype: string
name: read_data
arguments: data_label: D140
datatype: string

tool: D108: Flags:


tool: D66: -h	this help message


tool: D120: -l N	set grid "length" (height) to N


tool: D158: -w N	set grid width to N


tool: D159: -g	disable gridlines


tool: D17: -r	start already running, not paused


tool: D124: -s N	set initial run speed to N (1-5)


tool: D36: -p N	set cell size to N pixels


tool: D21: -c	disable colorized output


tool: D41: In-window controls:


tool: D141: 	Press 1 (slowest) - 5 (fastest) to select a simulation speed


tool: D145: 	Press P to (un)pause the simulation


tool: D160: 	Press S to simulate a single generation


tool: D39: 	Press R to randomize the board


tool: D43: 	Press C to clear the board


tool: D144: 	Click a cell on-screen to toggle it on and off individually


tool: D151: 	Press A to toggle colour


tool: D176: 	Press G to toggle gridlines


tool: D140: 	Press Q to quit


assistant: ```c
void print_help() {
  printf("Flags:\n");
  printf("-h\tthis help message\n");
  printf("-l N\tset grid \"length\" (height) to N\n");
  printf("-w N\tset grid width to N\n");
  printf("-g\tdisable gridlines\n");
  printf("-r\tstart already running, not paused\n");
  printf("-s N\tset initial run speed to N (1-5)\n");
  printf("-p N\tset cell size to N pixels\n");
  printf("-c\tdisable colorized output\n");
  printf("In-window controls:\n");
  printf("\tPress 1 (slowest) - 5 (fastest) to select a simulation speed\n");
  printf("\tPress P to (un)pause the simulation\n");
  printf("\tPress S to simulate a single generation\n");
  printf("\tPress R to randomize the board\n");
  printf("\tPress C to clear the board\n");
  printf("\tClick a cell on-screen to toggle it on and off individually\n");
  printf("\tPress A to toggle colour\n");
  printf("\tPress G to toggle gridlines\n");
  printf("\tPress Q to quit\n");
}
```