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

```asm
<GiveUsage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    D220(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D87(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D4(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D60(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D124(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D189(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D76(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D149(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D172(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D33(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D159(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D42(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D53(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D121(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D32(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D185(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: tag: D220
type_guessed: string
name: read_data
arguments: tag: D53
type_guessed: string
name: read_data
arguments: tag: D87
type_guessed: string
name: read_data
arguments: tag: D4
type_guessed: string
name: read_data
arguments: tag: D60
type_guessed: string
name: read_data
arguments: tag: D124
type_guessed: string
name: read_data
arguments: tag: D12
type_guessed: string
name: read_data
arguments: tag: D189
type_guessed: string
name: read_data
arguments: tag: D76
type_guessed: string
name: read_data
arguments: tag: D149
type_guessed: string
name: read_data
arguments: tag: D69
type_guessed: string
name: read_data
arguments: tag: D172
type_guessed: string
name: read_data
arguments: tag: D10
type_guessed: string
name: read_data
arguments: tag: D33
type_guessed: string
name: read_data
arguments: tag: D159
type_guessed: string
name: read_data
arguments: tag: D42
type_guessed: string
name: read_data
arguments: tag: D121
type_guessed: string
name: read_data
arguments: tag: D32
type_guessed: string
name: read_data
arguments: tag: D185
type_guessed: string

tool: D220: Usage:   copyobj direction_switch [@<ini_file_name>] [switches] [user name]

tool: 

tool: D87: Direction switch:

tool: D4:       -p       copy objs to server (put)

tool: D60:       -t       copy objs from server (take)

tool: D124: Ini_file_name:

tool: D12:    use same file used in makeopus. e.g., 

tool: D189:       copyobj -p @debug.inf -v 

tool: D76:    if omitted, makeopus.inf used 

tool: D149: Switches:

tool: D69:    Direction = put

tool: D172:       -f       force

tool: D10:       -v       verbose (leaves echo on)

tool: D33:    Direction = take

tool: D159:       -d       just remove obj of currently checked out file (don't take obj's)

tool: D42:       -s       synced - does not delete any objects after copy

tool: D121: User name:

tool: D32:    if used, objects put in \private\usr\<username>\obj instead of \private\obj

tool: D185: 



assistant: ```c
GiveUsage() {
  puts("Usage:   copyobj direction_switch [@<ini_file_name>] [switches] [user name]");
  puts("");
  puts("Direction switch:");
  puts("      -p       copy objs to server (put)");
  puts("      -t       copy objs from server (take)");
  puts("");
  puts("Ini_file_name:");
  puts("   use same file used in makeopus. e.g., ");
  puts("      copyobj -p @debug.inf -v ");
  puts("   if omitted, makeopus.inf used ");
  puts("");
  puts("Switches:");
  puts("   Direction = put");
  puts("      -f       force");
  puts("      -v       verbose (leaves echo on)");
  puts("   Direction = take");
  puts("      -d       just remove obj of currently checked out file (don't take obj's)");
  puts("      -s       synced - does not delete any objects after copy");
  puts("      -v       verbose (leaves echo on)");
  puts("");
  puts("User name:");
  puts("   if used, objects put in \\private\\usr\\<username>\\obj instead of \\private\\obj");
  puts("\n\n");
  exit(1);
}
```