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

```asm
<print_usage>:
  endbr64
  push   %rbp
  lea    D126(%rip),%rdi
  lea    D128(%rip),%rbp
  call   <printf@plt>
  lea    D199(%rip),%rdi
  call   <printf@plt>
  lea    D232(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D254(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D19(%rip),%rdi
  call   <printf@plt>
  lea    D149(%rip),%rdi
  call   <printf@plt>
  lea    D165(%rip),%rdi
  call   <printf@plt>
  lea    D105(%rip),%rdi
  call   <printf@plt>
  lea    D116(%rip),%rdi
  call   <printf@plt>
  lea    D190(%rip),%rdi
  call   <printf@plt>
  lea    D249(%rip),%rdi
  call   <printf@plt>
  lea    D135(%rip),%rdi
  call   <printf@plt>
  lea    D104(%rip),%rdi
  call   <printf@plt>
  lea    D22(%rip),%rdi
  call   <printf@plt>
  lea    D53(%rip),%rdi
  call   <printf@plt>
  lea    D76(%rip),%rdi
  call   <printf@plt>
  lea    D267(%rip),%rdi
  call   <printf@plt>
  lea    D94(%rip),%rdi
  call   <printf@plt>
  lea    D82(%rip),%rdi
  call   <printf@plt>
  lea    D132(%rip),%rdi
  call   <printf@plt>
  lea    D145(%rip),%rdi
  call   <printf@plt>
  lea    D79(%rip),%rdi
  call   <printf@plt>
  lea    D102(%rip),%rdi
  call   <printf@plt>
  lea    D71(%rip),%rdi
  call   <printf@plt>
  lea    D176(%rip),%rdi
  call   <printf@plt>
  mov    %rbp,%rdi
  call   <printf@plt>
  lea    D170(%rip),%rdi
  call   <printf@plt>
  lea    D30(%rip),%rdi
  pop    %rbp
  jmp    1050 <printf@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D126
type: string
name: extract_symbolic_data
arguments: data_label: D128
type: string
name: extract_symbolic_data
arguments: data_label: D199
type: string
name: extract_symbolic_data
arguments: data_label: D232
type: string
name: extract_symbolic_data
arguments: data_label: D254
type: string
name: extract_symbolic_data
arguments: data_label: D19
type: string
name: extract_symbolic_data
arguments: data_label: D149
type: string
name: extract_symbolic_data
arguments: data_label: D165
type: string
name: extract_symbolic_data
arguments: data_label: D105
type: string
name: extract_symbolic_data
arguments: data_label: D116
type: string
name: extract_symbolic_data
arguments: data_label: D190
type: string
name: extract_symbolic_data
arguments: data_label: D249
type: string
name: extract_symbolic_data
arguments: data_label: D135
type: string
name: extract_symbolic_data
arguments: data_label: D104
type: string
name: extract_symbolic_data
arguments: data_label: D22
type: string
name: extract_symbolic_data
arguments: data_label: D53
type: string
name: extract_symbolic_data
arguments: data_label: D76
type: string
name: extract_symbolic_data
arguments: data_label: D267
type: string
name: extract_symbolic_data
arguments: data_label: D94
type: string
name: extract_symbolic_data
arguments: data_label: D82
type: string
name: extract_symbolic_data
arguments: data_label: D132
type: string
name: extract_symbolic_data
arguments: data_label: D145
type: string
name: extract_symbolic_data
arguments: data_label: D79
type: string
name: extract_symbolic_data
arguments: data_label: D102
type: string
name: extract_symbolic_data
arguments: data_label: D71
type: string
name: extract_symbolic_data
arguments: data_label: D176
type: string
name: extract_symbolic_data
arguments: data_label: D170
type: string
name: extract_symbolic_data
arguments: data_label: D30
type: string

tool: D126: 


tool: D128: * 


tool: D199: * Usage:


tool: D232: * ./kmul.exe [options]


tool: D254: * Options:


tool: D19: *   -h:


tool: D149: *         Print this help.


tool: D165: *   -d:


tool: D105: *         Enable debug/diagnostic output.


tool: D116: *   -bindecomp:


tool: D190: *         Use binary decomposition instead of the Bernstein-Briggs algorithm.


tool: D249: *   -mul <num>:


tool: D135: *         Set the value of the multiplier. Default: 1.


tool: D104: *   -width <num>:


tool: D22: *         Set the bitwidth of all operands: multiplier, multiplicand and


tool: D53: *         product. Default: 32.


tool: D76: *   -signed:


tool: D267: *         Construct optimized routine for signed multiplication.


tool: D94: *   -unsigned:


tool: D82: *         Construct optimized routine for unsigned multiplication (default).


tool: D132: *   -nac:


tool: D145: *         Emit software routine in the NAC general assembly language (default).


tool: D79: *   -ansic:


tool: D102: *         Emit software routine in ANSI C (for widths up to 32 bits).


tool: D71: *   -c99:


tool: D176: *         Emit software routine in C99 (for widths up to 64 bits).


tool: D170: * For further information, please refer to the website:


tool: D30: * http://www.nkavvadias.com


assistant: ```c
void print_usage() {
  printf("\n");
  printf("* Usage:\n");
  printf("* ./kmul.exe [options]\n");
  printf("* \n");
  printf("* Options:\n");
  printf("* \n");
  printf("*   -h:\n");
  printf("*         Print this help.\n");
  printf("*   -d:\n");
  printf("*         Enable debug/diagnostic output.\n");
  printf("*   -bindecomp:\n");
  printf("*         Use binary decomposition instead of the Bernstein-Briggs algorithm.\n");
  printf("*   -mul <num>:\n");
  printf("*         Set the value of the multiplier. Default: 1.\n");
  printf("*   -width <num>:\n");
  printf("*         Set the bitwidth of all operands: multiplier, multiplicand and\n");
  printf("*         product. Default: 32.\n");
  printf("*   -signed:\n");
  printf("*         Construct optimized routine for signed multiplication.\n");
  printf("*   -unsigned:\n");
  printf("*         Construct optimized routine for unsigned multiplication (default).\n");
  printf("*   -nac:\n");
  printf("*         Emit software routine in the NAC general assembly language (default).\n");
  printf("*   -ansic:\n");
  printf("*         Emit software routine in ANSI C (for widths up to 32 bits).\n");
  printf("*   -c99:\n");
  printf("*         Emit software routine in C99 (for widths up to 64 bits).\n");
  printf("* \n");
  printf("* For further information, please refer to the website:\n");
  printf("* http://www.nkavvadias.com\n");
}
```