user: What is the c source code of the assembly code below?

```asm
<print_CLI_error>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D119(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D115(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D98(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D116(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D79(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D97(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D21(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x4,%edi
  call   <exit@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_tag: D119
type_infered: string
name: read_data
arguments: data_tag: D115
type_infered: string
name: read_data
arguments: data_tag: D65
type_infered: string
name: read_data
arguments: data_tag: D98
type_infered: string
name: read_data
arguments: data_tag: D60
type_infered: string
name: read_data
arguments: data_tag: D76
type_infered: string
name: read_data
arguments: data_tag: D0
type_infered: string
name: read_data
arguments: data_tag: D16
type_infered: string
name: read_data
arguments: data_tag: D116
type_infered: string
name: read_data
arguments: data_tag: D91
type_infered: string
name: read_data
arguments: data_tag: D79
type_infered: string
name: read_data
arguments: data_tag: D97
type_infered: string
name: read_data
arguments: data_tag: D21
type_infered: string
name: read_data
arguments: data_tag: D81
type_infered: string
name: read_data
arguments: data_tag: D51
type_infered: string

tool: D119: Usage: ./XSBench <options>


tool: D115: Options include:


tool: D65:   -m <simulation method>   Simulation method (history, event)


tool: D98:   -s <size>                Size of H-M Benchmark to run (small, large, XL, XXL)


tool: D60:   -g <gridpoints>          Number of gridpoints per nuclide (overrides -s defaults)


tool: D76:   -G <grid type>           Grid search type (unionized, nuclide, hash). Defaults to unionized.


tool: D0:   -p <particles>           Number of particle histories


tool: D16:   -l <lookups>             History Based: Number of Cross-section (XS) lookups per particle. Event Based: Total number of XS lookups.


tool: D116:   -h <hash bins>           Number of hash bins (only relevant when used with "-G hash")


tool: D91:   -b <binary mode>         Read or write all data structures to file. If reading, this will skip initialization phase. (read, write)


tool: D79:   -k <kernel ID>           Specifies which kernel to run. 0 is baseline, 1, 2, etc are optimized variants. (0 is default.)


tool: D97:   -P <platform id>         Manually specify the OpenCL platform id to run on


tool: D21:   -D <device id>           Manually specify the OpenCL device id to run on


tool: D81: Default is equivalent to: -m history -s large -l 34 -p 500000 -G unionized


tool: D51: See readme for full description of default run values


assistant: ```c
void print_CLI_error(void) {
  printf("Usage: ./XSBench <options>\n");
  printf("Options include:\n");
  printf("  -m <simulation method>   Simulation method (history, event)\n");
  printf("  -s <size>                Size of H-M Benchmark to run (small, large, XL, XXL)\n");
  printf("  -g <gridpoints>          Number of gridpoints per nuclide (overrides -s defaults)\n");
  printf("  -G <grid type>           Grid search type (unionized, nuclide, hash). Defaults to unionized.\n");
  printf("  -p <particles>           Number of particle histories\n");
  printf("  -l <lookups>             History Based: Number of Cross-section (XS) lookups per particle. Event Based: Total number of XS lookups.\n");
  printf("  -h <hash bins>           Number of hash bins (only relevant when used with \"-G hash\")\n");
  printf("  -b <binary mode>         Read or write all data structures to file. If reading, this will skip initialization phase. (read, write)\n");
  printf("  -k <kernel ID>           Specifies which kernel to run. 0 is baseline, 1, 2, etc are optimized variants. (0 is default.)\n");
  printf("  -P <platform id>         Manually specify the OpenCL platform id to run on\n");
  printf("  -D <device id>           Manually specify the OpenCL device id to run on\n");
  printf("Default is equivalent to: -m history -s large -l 34 -p 500000 -G unionized\n");
  printf("See readme for full description of default run values\n");
  exit(4);
}
```