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

```asm
<print_help>:
  endbr64
  sub    $0x8,%rsp
  lea    D165(%rip),%rdi
  call   <printf@plt>
  lea    D100(%rip),%rdi
  call   <printf@plt>
  lea    D151(%rip),%rdi
  call   <printf@plt>
  lea    D64(%rip),%rdi
  call   <printf@plt>
  lea    D126(%rip),%rdi
  call   <printf@plt>
  lea    D114(%rip),%rdi
  call   <printf@plt>
  lea    D171(%rip),%rdi
  call   <printf@plt>
  lea    D42(%rip),%rdi
  call   <printf@plt>
  lea    D63(%rip),%rdi
  call   <printf@plt>
  lea    D51(%rip),%rdi
  call   <printf@plt>
  lea    D141(%rip),%rdi
  call   <printf@plt>
  lea    D8(%rip),%rdi
  call   <printf@plt>
  lea    D85(%rip),%rdi
  call   <printf@plt>
  lea    D82(%rip),%rdi
  call   <printf@plt>
  lea    D62(%rip),%rdi
  call   <printf@plt>
  lea    D145(%rip),%rdi
  call   <printf@plt>
  lea    D9(%rip),%rdi
  call   <printf@plt>
  lea    D90(%rip),%rdi
  call   <printf@plt>
  lea    D52(%rip),%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  ret
```

tool_calls: name: unpack_data
arguments: data_label: D165
datatype: string
name: unpack_data
arguments: data_label: D100
datatype: string
name: unpack_data
arguments: data_label: D151
datatype: string
name: unpack_data
arguments: data_label: D64
datatype: string
name: unpack_data
arguments: data_label: D126
datatype: string
name: unpack_data
arguments: data_label: D114
datatype: string
name: unpack_data
arguments: data_label: D171
datatype: string
name: unpack_data
arguments: data_label: D42
datatype: string
name: unpack_data
arguments: data_label: D63
datatype: string
name: unpack_data
arguments: data_label: D51
datatype: string
name: unpack_data
arguments: data_label: D141
datatype: string
name: unpack_data
arguments: data_label: D8
datatype: string
name: unpack_data
arguments: data_label: D85
datatype: string
name: unpack_data
arguments: data_label: D82
datatype: string
name: unpack_data
arguments: data_label: D62
datatype: string
name: unpack_data
arguments: data_label: D145
datatype: string
name: unpack_data
arguments: data_label: D9
datatype: string
name: unpack_data
arguments: data_label: D90
datatype: string
name: unpack_data
arguments: data_label: D52
datatype: string

tool: D165: Flags:


tool: D100: -h	this help message


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


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


tool: D126: -g	disable gridlines


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


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


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


tool: D63: -c	disable colorized output


tool: D51: In-window controls:


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


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


tool: D85: 	Press S to simulate a single generation


tool: D82: 	Press R to randomize the board


tool: D62: 	Press C to clear the board


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


tool: D9: 	Press A to toggle colour


tool: D90: 	Press G to toggle gridlines


tool: D52: 	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");
}
```