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

```asm
<usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D5(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D81(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D46(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D121(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D110(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D66(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D139(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D34(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D7(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D67(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0xffffffff,%edi
  call   <exit@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D60
type_guessed: string
name: disassemble_data
arguments: data_label: D5
type_guessed: string
name: disassemble_data
arguments: data_label: D35
type_guessed: string
name: disassemble_data
arguments: data_label: D81
type_guessed: string
name: disassemble_data
arguments: data_label: D46
type_guessed: string
name: disassemble_data
arguments: data_label: D121
type_guessed: string
name: disassemble_data
arguments: data_label: D110
type_guessed: string
name: disassemble_data
arguments: data_label: D48
type_guessed: string
name: disassemble_data
arguments: data_label: D66
type_guessed: string
name: disassemble_data
arguments: data_label: D76
type_guessed: string
name: disassemble_data
arguments: data_label: D139
type_guessed: string
name: disassemble_data
arguments: data_label: D34
type_guessed: string
name: disassemble_data
arguments: data_label: D7
type_guessed: string
name: disassemble_data
arguments: data_label: D67
type_guessed: string

tool: D60: 
Atmel ATmega Programmer, Version 1.5


tool: D5: Copyright (C) 2000-2006 Serge Vakulenko, www.vak.ru


tool: D35: 
Usage:


tool: D81: 	megaprog [-vnhuD] [-f dev] srec-file


tool: D46: Options:


tool: D121: 	-v		verify only


tool: D110: 	-u		leave memory unprotected


tool: D48: 	-D		print debugging information


tool: D66: 	-f dev		serial device name, e.g. COM1 or /dev/cua01


tool: D76: 	-o option=0/1	option for ATmega128; available options are:


tool: D139: 			M103C, WDTON, OCDEN, JTAGEN, SPIEN, CKOPT, EESAVE,


tool: D34: 			BOOTSZ1, BOOTSZ0, BOOTRST, BODLEVEL, BODEN,


tool: D7: 			SUT1, SUT0, CKSEL3, CKSEL2, CKSEL1, CKSEL0


tool: D67: 	srec-file	code file in SREC format


assistant: ```c
void usage() {
  printf("\nAtmel ATmega Programmer, Version "
         "1.5"
         "\n");
  printf("Copyright (C) 2000-2006 Serge Vakulenko, www.vak.ru\n");
  printf("\nUsage:\n");
  printf("\tmegaprog [-vnhuD] [-f dev] srec-file\n");
  printf("Options:\n");
  printf("\t-v\t\tverify only\n");
  printf("\t-u\t\tleave memory unprotected\n");
  printf("\t-D\t\tprint debugging information\n");
  printf("\t-f dev\t\tserial device name, e.g. COM1 or /dev/cua01\n");
  printf("\t-o option=0/1\toption for ATmega128; available options are:\n");
  printf("\t\t\tM103C, WDTON, OCDEN, JTAGEN, SPIEN, CKOPT, EESAVE,\n");
  printf("\t\t\tBOOTSZ1, BOOTSZ0, BOOTRST, BODLEVEL, BODEN,\n");
  printf("\t\t\tSUT1, SUT0, CKSEL3, CKSEL2, CKSEL1, CKSEL0\n");
  printf("\tsrec-file\tcode file in SREC format\n");
  exit(-1);
}
```