user: Converte this assembly snippet into its equivalent C code:

```asm
<printUsage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x0,%eax
  call   <printHeader@plt>
  lea    D128(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D137(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D152(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D119(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D74(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D17(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D100(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D83(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D80(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D126(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D128
type: string
name: extract_symbolic_data
arguments: data_tag: D137
type: string
name: extract_symbolic_data
arguments: data_tag: D87
type: string
name: extract_symbolic_data
arguments: data_tag: D152
type: string
name: extract_symbolic_data
arguments: data_tag: D145
type: string
name: extract_symbolic_data
arguments: data_tag: D48
type: string
name: extract_symbolic_data
arguments: data_tag: D0
type: string
name: extract_symbolic_data
arguments: data_tag: D119
type: string
name: extract_symbolic_data
arguments: data_tag: D147
type: string
name: extract_symbolic_data
arguments: data_tag: D74
type: string
name: extract_symbolic_data
arguments: data_tag: D17
type: string
name: extract_symbolic_data
arguments: data_tag: D100
type: string
name: extract_symbolic_data
arguments: data_tag: D83
type: string
name: extract_symbolic_data
arguments: data_tag: D28
type: string
name: extract_symbolic_data
arguments: data_tag: D80
type: string
name: extract_symbolic_data
arguments: data_tag: D126
type: string

tool: D128: options:


tool: D137: --dump=<file> ,  -d <file>              =   dump the flash to <file>


tool: D87: --write=<file> ,   -w <file>            =   write the <file> to the flash


tool: D152: --erase                                 =   just erase the flash block


tool: D145: --address=0x<addr> , -a 0x<addr>        =   ram address from which read or write starts


tool: D48: --size=0x<size> ,  -s 0x<size>          =   size of data to read or write


tool: D0: --preset=<preset> , -p <preset>         =   sets address and size based on a preset, see below.


tool: D119: --no-verify                             =   skip verification after flashing (not recommended)


tool: D147: 


tool: D74: Presets:


tool: D17: bb                                      =   Data Block B


tool: D100: ba                                      =   Data Block A


tool: D83: b3                                      =   Block 3


tool: D28: b2                                      =   Block 2


tool: D80: b1                                      =   Block 1


tool: D126: b0                                      =   Block 0


assistant: ```c
void printUsage() {
  printHeader();
  printf("options:\n");
  printf("--dump=<file> ,  -d <file>              =   dump the flash to <file>\n");
  printf("--write=<file> ,   -w <file>            =   write the <file> to the flash\n");
  printf("--erase                                 =   just erase the flash block\n");
  printf("--address=0x<addr> , -a 0x<addr>        =   ram address from which read or write starts\n");
  printf("--size=0x<size> ,  -s 0x<size>          =   size of data to read or write\n");
  printf("--preset=<preset> , -p <preset>         =   sets address and size based on a preset, see below.\n");
  printf("--no-verify                             =   skip verification after flashing (not recommended)\n");
  printf("\n");
  printf("Presets:\n");
  printf("bb                                      =   Data Block B\n");
  printf("ba                                      =   Data Block A\n");
  printf("b3                                      =   Block 3\n");
  printf("b2                                      =   Block 2\n");
  printf("b1                                      =   Block 1\n");
  printf("b0                                      =   Block 0\n");
}
```