user: What would the C source look like for the assembly code provided here:

```asm
<usage>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  test   %rdi,%rdi
  je     L1
  mov    %rdi,%rsi
  lea    D140(%rip),%rdi
  call   <printf@plt>
L1:
  lea    D23(%rip),%rdi
  call   <puts@plt>
  lea    D54(%rip),%rdi
  call   <puts@plt>
  lea    D42(%rip),%rdi
  call   <puts@plt>
  lea    D94(%rip),%rdi
  call   <puts@plt>
  lea    D47(%rip),%rdi
  call   <puts@plt>
  lea    D124(%rip),%rdi
  call   <puts@plt>
  lea    D139(%rip),%rdi
  call   <puts@plt>
  lea    D88(%rip),%rdi
  call   <puts@plt>
  lea    D62(%rip),%rdi
  call   <puts@plt>
  lea    D64(%rip),%rdi
  call   <puts@plt>
  lea    D109(%rip),%rdi
  call   <puts@plt>
  lea    D53(%rip),%rdi
  call   <puts@plt>
  lea    D136(%rip),%rdi
  call   <puts@plt>
  lea    D38(%rip),%rdi
  call   <puts@plt>
  xor    %edi,%edi
  test   %rbx,%rbx
  pop    %rbx
  setne  %dil
  jmp    1090 <exit@plt>
```

tool_calls: name: parse_data
arguments: label: D140
type_infered: string
name: parse_data
arguments: label: D23
type_infered: string
name: parse_data
arguments: label: D54
type_infered: string
name: parse_data
arguments: label: D42
type_infered: string
name: parse_data
arguments: label: D94
type_infered: string
name: parse_data
arguments: label: D47
type_infered: string
name: parse_data
arguments: label: D124
type_infered: string
name: parse_data
arguments: label: D139
type_infered: string
name: parse_data
arguments: label: D88
type_infered: string
name: parse_data
arguments: label: D62
type_infered: string
name: parse_data
arguments: label: D64
type_infered: string
name: parse_data
arguments: label: D109
type_infered: string
name: parse_data
arguments: label: D53
type_infered: string
name: parse_data
arguments: label: D136
type_infered: string
name: parse_data
arguments: label: D38
type_infered: string

tool: D140: testdest: Unknown option "%s".


tool: D23: Usage:

tool: D54:   ./testdest [--device] name [operation ...]

tool: D42:   ./testdest [--device] ipp://... [operation ...]

tool: D94:   ./testdest [--device] ipps://... [operation ...]

tool: D47:   ./testdest --get

tool: D124:   ./testdest --enum [grayscale] [color] [duplex] [staple] [small]
                    [medium] [large]

tool: 

tool: D88: Operations:

tool: D62:   conflicts options

tool: D64:   default option

tool: D109:   localize option [value]

tool: D53:   media [borderless] [duplex] [exact] [ready] [name or size]

tool: D136:   print filename [options]

tool: D38:   supported [option [value]]

assistant: ```c
void usage(const char *arg) {
  if (arg)
    printf("testdest: Unknown option \"%s\".\n", arg);
  puts("Usage:");
  puts("  ./testdest [--device] name [operation ...]");
  puts("  ./testdest [--device] ipp://... [operation ...]");
  puts("  ./testdest [--device] ipps://... [operation ...]");
  puts("  ./testdest --get");
  puts("  ./testdest --enum [grayscale] [color] [duplex] [staple] [small]\n"
       "                    [medium] [large]");
  puts("");
  puts("Operations:");
  puts("  conflicts options");
  puts("  default option");
  puts("  localize option [value]");
  puts("  media [borderless] [duplex] [exact] [ready] [name or size]");
  puts("  print filename [options]");
  puts("  supported [option [value]]");
  exit(arg != NULL);
}
```