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

```asm
<print_help>:
  endbr64
  push   %rbp
  mov    %rdi,%rbp
  lea    D135(%rip),%rdi
  call   <puts@plt>
  mov    %rbp,%rsi
  lea    D20(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D134(%rip),%rdi
  call   <puts@plt>
  lea    D11(%rip),%rdi
  call   <puts@plt>
  lea    D98(%rip),%rdi
  call   <puts@plt>
  lea    D3(%rip),%rdi
  call   <puts@plt>
  lea    D96(%rip),%rdi
  call   <puts@plt>
  lea    D39(%rip),%rdi
  call   <puts@plt>
  lea    D88(%rip),%rdi
  call   <puts@plt>
  lea    D101(%rip),%rdi
  call   <puts@plt>
  lea    D54(%rip),%rdi
  call   <puts@plt>
  lea    D64(%rip),%rdi
  call   <puts@plt>
  lea    D84(%rip),%rdi
  call   <puts@plt>
  lea    D92(%rip),%rdi
  pop    %rbp
  jmp    1060 <puts@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D135
datatype: string
name: extract_symbolic_data
arguments: label: D20
datatype: string
name: extract_symbolic_data
arguments: label: D134
datatype: string
name: extract_symbolic_data
arguments: label: D11
datatype: string
name: extract_symbolic_data
arguments: label: D98
datatype: string
name: extract_symbolic_data
arguments: label: D3
datatype: string
name: extract_symbolic_data
arguments: label: D96
datatype: string
name: extract_symbolic_data
arguments: label: D39
datatype: string
name: extract_symbolic_data
arguments: label: D88
datatype: string
name: extract_symbolic_data
arguments: label: D101
datatype: string
name: extract_symbolic_data
arguments: label: D54
datatype: string
name: extract_symbolic_data
arguments: label: D64
datatype: string
name: extract_symbolic_data
arguments: label: D84
datatype: string
name: extract_symbolic_data
arguments: label: D92
datatype: string

tool: D135: Chaos controller next-gen  by agentOfChaos  informaniac99<AT>gmail<DOT>com


tool: D20: Usage: %s -p [target pid] [list of space-separated numbers]...



tool: D134: When the program is launched (with proper permissions), it will attempt to

tool: D11: attach the target pid and set a breakpoint in its code (just like debuggers do).

tool: D98: Now, every time the target calls rand(), the function will return the numbers

tool: D3: chosen by you (instad of random ones), isn't that cool?

tool: D96: The numbers will be returned in order with each subsequent call, the list will

tool: D39: be looped over if needed.


tool: D88: options:

tool: D101: -h  --help		Show this message. Duh.

tool: D54: -m  --monitor		Inject actual random values, echoing them on screen.

tool: D64: -p  --pid		[mandatory] target process'id.

tool: D84: -s  --silent		Do not print status messages.

tool: D92: -v  --verbose		Enables verbose mode.

assistant: ```c
void print_help(char *pname) {
  printf("Chaos controller next-gen  by agentOfChaos  informaniac99<AT>gmail<DOT>com\n\n");
  printf("Usage: %s -p [target pid] [list of space-separated numbers]...\n\n", pname);
  printf("When the program is launched (with proper permissions), it will attempt to\n");
  printf("attach the target pid and set a breakpoint in its code (just like debuggers do).\n");
  printf("Now, every time the target calls rand(), the function will return the numbers\n");
  printf("chosen by you (instad of random ones), isn't that cool?\n");
  printf("The numbers will be returned in order with each subsequent call, the list will\n");
  printf("be looped over if needed.\n\n");
  printf("options:\n");
  printf("-h  --help\t\tShow this message. Duh.\n");
  printf("-m  --monitor\t\tInject actual random values, echoing them on screen.\n");
  printf("-p  --pid\t\t[mandatory] target process'id.\n");
  printf("-s  --silent\t\tDo not print status messages.\n");
  printf("-v  --verbose\t\tEnables verbose mode.\n");
}
```