user: Please show me the C implementation that matches the assembly code listed below:

```asm
<usage>:
  endbr64
  push   %r12
  lea    D90(%rip),%r12
  xor    %edi,%edi
  xor    %eax,%eax
  mov    %r12,%rdx
  lea    D41(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D20(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D16(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D25(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D91(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D66(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D32(%rip),%rsi
  call   <eprintf@plt>
  mov    %r12,%rdx
  xor    %edi,%edi
  xor    %eax,%eax
  lea    D26(%rip),%rsi
  call   <eprintf@plt>
  xor    %edi,%edi
  mov    %r12,%rdx
  xor    %eax,%eax
  lea    D5(%rip),%rsi
  call   <eprintf@plt>
  mov    $0x1,%edi
  call   <exit@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D90
type: string
name: extract_symbolic_data
arguments: data_tag: D41
type: string
name: extract_symbolic_data
arguments: data_tag: D20
type: string
name: extract_symbolic_data
arguments: data_tag: D16
type: string
name: extract_symbolic_data
arguments: data_tag: D25
type: string
name: extract_symbolic_data
arguments: data_tag: D91
type: string
name: extract_symbolic_data
arguments: data_tag: D66
type: string
name: extract_symbolic_data
arguments: data_tag: D32
type: string
name: extract_symbolic_data
arguments: data_tag: D26
type: string
name: extract_symbolic_data
arguments: data_tag: D5
type: string

tool: D90: usage

tool: D41: %s: usage: charade [options] [command [arg ...]]


tool: D20: %s: Options:


tool: D16: %s:   -c          Generate C-shell commands on stdout.


tool: D25: %s:   -s          Generate Bourne shell commands on stdout.


tool: D91: %s:   -k          Kill the current agent.


tool: D66: %s:   -d          Don't fork.


tool: D32: %s:   -v [-v ...] More trace output.


tool: D26: %s:   -a socket   Bind agent socket to given name.


tool: D5: %s:   --copyright Print out copyright message & licence.


assistant: ```c
void usage(void) {
  eprintf(0,
          "%s: "
          "usage: charade [options] [command [arg ...]]\n",
          __func__);
  eprintf(0,
          "%s: "
          "Options:\n",
          __func__);
  eprintf(0,
          "%s: "
          "  -c          Generate C-shell commands on stdout.\n",
          __func__);
  eprintf(0,
          "%s: "
          "  -s          Generate Bourne shell commands on stdout.\n",
          __func__);
  eprintf(0,
          "%s: "
          "  -k          Kill the current agent.\n",
          __func__);
  eprintf(0,
          "%s: "
          "  -d          Don't fork.\n",
          __func__);
  eprintf(0,
          "%s: "
          "  -v [-v ...] More trace output.\n",
          __func__);
  eprintf(0,
          "%s: "
          "  -a socket   Bind agent socket to given name.\n",
          __func__);
  eprintf(0,
          "%s: "
          "  --copyright Print out copyright message & licence.\n",
          __func__);
  exit(1);
}
```