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

```asm
<print_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    -0x8(%rbp),%rax
  lea    D83(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D11(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D86(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D30(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D50(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D33(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D47(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D39(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D49(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D59(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  lea    D103(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fprintf@plt>
  nop
  leave
  ret
```

tool_calls: name: parse_data
arguments: label: D83
type_guessed: string
name: parse_data
arguments: label: D11
type_guessed: string
name: parse_data
arguments: label: D86
type_guessed: string
name: parse_data
arguments: label: D30
type_guessed: string
name: parse_data
arguments: label: D50
type_guessed: string
name: parse_data
arguments: label: D33
type_guessed: string
name: parse_data
arguments: label: D47
type_guessed: string
name: parse_data
arguments: label: D39
type_guessed: string
name: parse_data
arguments: label: D49
type_guessed: string
name: parse_data
arguments: label: D59
type_guessed: string
name: parse_data
arguments: label: D103
type_guessed: string

tool: D83: Usage: bgrep <pattern> [file]


tool: D11: Options:


tool: D86:  -s         : Silent mode, only print locations


tool: D30:  -r <row>   : Specify row size in bytes when printing


tool: D50:  -g <group> : Specify grouping in bytes when printing


tool: D33:  -x         : Specify pattern as hexadecimal notation


tool: D47:               i.e. 00ffde


tool: D39:  -C <size>  : Include context around a match


tool: D49:  -n         : Do not print offset


tool: D59:  -a         : Do not print ascii


tool: D103:  -h         : Print usage and exit


assistant: ```c
void print_usage(FILE *file) {
  fprintf(file, "Usage: bgrep <pattern> [file]\n");
  fprintf(file, "Options:\n");
  fprintf(file, " -s         : Silent mode, only print locations\n");
  fprintf(file, " -r <row>   : Specify row size in bytes when printing\n");
  fprintf(file, " -g <group> : Specify grouping in bytes when printing\n");
  fprintf(file, " -x         : Specify pattern as hexadecimal notation\n");
  fprintf(file, "              i.e. 00ffde\n");
  fprintf(file, " -C <size>  : Include context around a match\n");
  fprintf(file, " -n         : Do not print offset\n");
  fprintf(file, " -a         : Do not print ascii\n");
  fprintf(file, " -h         : Print usage and exit\n");
}
```