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

```asm
<show_usage>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    $0x0,%eax
  call   <show_version@plt>
  lea    D254(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D31(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D80(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D99(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D147(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D228(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D57(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D186(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D24(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D237(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D64(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D256(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D50(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D84(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D201(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D11(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D192(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D129(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D156(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D299(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D213(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D173(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D209(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D133(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D202(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D238(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D16(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D134(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D249(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: tag: D254
datatype: string
name: read_data
arguments: tag: D49
datatype: string
name: read_data
arguments: tag: D31
datatype: string
name: read_data
arguments: tag: D80
datatype: string
name: read_data
arguments: tag: D99
datatype: string
name: read_data
arguments: tag: D147
datatype: string
name: read_data
arguments: tag: D69
datatype: string
name: read_data
arguments: tag: D228
datatype: string
name: read_data
arguments: tag: D57
datatype: string
name: read_data
arguments: tag: D186
datatype: string
name: read_data
arguments: tag: D24
datatype: string
name: read_data
arguments: tag: D237
datatype: string
name: read_data
arguments: tag: D64
datatype: string
name: read_data
arguments: tag: D256
datatype: string
name: read_data
arguments: tag: D50
datatype: string
name: read_data
arguments: tag: D84
datatype: string
name: read_data
arguments: tag: D201
datatype: string
name: read_data
arguments: tag: D11
datatype: string
name: read_data
arguments: tag: D78
datatype: string
name: read_data
arguments: tag: D192
datatype: string
name: read_data
arguments: tag: D129
datatype: string
name: read_data
arguments: tag: D156
datatype: string
name: read_data
arguments: tag: D299
datatype: string
name: read_data
arguments: tag: D213
datatype: string
name: read_data
arguments: tag: D173
datatype: string
name: read_data
arguments: tag: D195
datatype: string
name: read_data
arguments: tag: D209
datatype: string
name: read_data
arguments: tag: D133
datatype: string
name: read_data
arguments: tag: D202
datatype: string
name: read_data
arguments: tag: D238
datatype: string
name: read_data
arguments: tag: D16
datatype: string
name: read_data
arguments: tag: D134
datatype: string
name: read_data
arguments: tag: D111
datatype: string
name: read_data
arguments: tag: D249
datatype: string

tool: D254: USAGE: oscetool [options] command


tool: D49: COMMANDS                Parameters            Explanation


tool: D31:  -h, --help                                   Print this help.


tool: D80:  -k, --print-keys                             List keys.


tool: D99:  -i, --print-infos      File-in               Print SCE file info.


tool: D147:  -d, --decrypt          File-in File-out      Decrypt/dump SCE file.


tool: D69:  -e, --encrypt          File-in File-out      Encrypt/create SCE file.


tool: D228: OPTIONS                 Possible Values       Explanation


tool: D57:  -v, --verbose                                Enable verbose output.


tool: D186:  -r, --raw                                    Enable raw value output.


tool: D24:  -t, --template         File-in               Template file (SELF only)


tool: D237:  -0, --sce-type         SELF/RVK/PKG/SPP      SCE File Type


tool: D64:  -1, --compress-data    TRUE/FALSE(default)   Whether to compress data or not.


tool: D256:  -s, --skip-sections    TRUE(default)/FALSE   Whether to skip sections or not.


tool: D50:  -2, --key-revision     e.g. 00,01,...,0A,... Key Revision


tool: D84:  -m, --meta-info        64 bytes              Use provided meta info to decrypt.


tool: D201:  -K, --keyset           32(Key)16(IV)


tool: D11:                         40(Pub)21(Priv)1(CT)  Override keyset.


tool: D78:  -3, --self-auth-id     e.g. 1010000001000003 Authentication ID


tool: D192:  -4, --self-vendor-id   e.g. 01000002         Vendor ID


tool: D129:  -5, --self-type        LV0/LV1/LV2/APP/ISO/


tool: D156:                         LDR/NPDRM             SELF Type


tool: D299:  -A, --self-app-version e.g. 0001000000000000 Application Version


tool: D213:  -6, --self-fw-version  e.g. 0003004100000000 Firmware Version


tool: D173:  -7, --self-add-shdrs   TRUE(default)/FALSE   Whether to add ELF shdrs or not.


tool: D195:  -8, --self-ctrl-flags  32 bytes              Override control flags.


tool: D209:  -9, --self-cap-flags   32 bytes              Override capability flags.


tool: D133:  -b, --np-license-type  LOCAL/FREE            License Type


tool: D202:  -c, --np-app-type      SPRX/EXEC/USPRX/UEXEC App Type (U* for updates)


tool: D238:  -f, --np-content-id                          Content ID


tool: D16:  -l, --np-klicensee     16 bytes              Override klicensee.


tool: D134:  -g, --np-real-fname    e.g. EBOOT.BIN        Real Filename


tool: D111:  -j, --np-add-sig       TRUE/FALSE(default)   Whether to add a NP sig. or not.


tool: D249:  -p, --sys-param-ver    e.g. 00340001         Set sys_process_param SDK version.


assistant: ```c
void show_usage() {
  show_version();
  printf("USAGE: oscetool [options] command\n");
  printf("COMMANDS                Parameters            Explanation\n");
  printf(" -h, --help                                   Print this help.\n");
  printf(" -k, --print-keys                             List keys.\n");
  printf(" -i, --print-infos      File-in               Print SCE file info.\n");
  printf(" -d, --decrypt          File-in File-out      Decrypt/dump SCE file.\n");
  printf(" -e, --encrypt          File-in File-out      Encrypt/create SCE file.\n");
  printf("OPTIONS                 Possible Values       Explanation\n");
  printf(" -v, --verbose                                Enable verbose output.\n");
  printf(" -r, --raw                                    Enable raw value output.\n");
  printf(" -t, --template         File-in               Template file (SELF only)\n");
  printf(" -0, --sce-type         SELF/RVK/PKG/SPP      SCE File Type\n");
  printf(" -1, --compress-data    TRUE/FALSE(default)   Whether to compress data or not.\n");
  printf(" -s, --skip-sections    TRUE(default)/FALSE   Whether to skip sections or not.\n");
  printf(" -2, --key-revision     e.g. 00,01,...,0A,... Key Revision\n");
  printf(" -m, --meta-info        64 bytes              Use provided meta info to decrypt.\n");
  printf(" -K, --keyset           32(Key)16(IV)\n");
  printf("                        40(Pub)21(Priv)1(CT)  Override keyset.\n");
  printf(" -3, --self-auth-id     e.g. 1010000001000003 Authentication ID\n");
  printf(" -4, --self-vendor-id   e.g. 01000002         Vendor ID\n");
  printf(" -5, --self-type        LV0/LV1/LV2/APP/ISO/\n");
  printf("                        LDR/NPDRM             SELF Type\n");
  printf(" -A, --self-app-version e.g. 0001000000000000 Application Version\n");
  printf(" -6, --self-fw-version  e.g. 0003004100000000 Firmware Version\n");
  printf(" -7, --self-add-shdrs   TRUE(default)/FALSE   Whether to add ELF shdrs or not.\n");
  printf(" -8, --self-ctrl-flags  32 bytes              Override control flags.\n");
  printf(" -9, --self-cap-flags   32 bytes              Override capability flags.\n");
  printf(" -b, --np-license-type  LOCAL/FREE            License Type\n");
  printf(" -c, --np-app-type      SPRX/EXEC/USPRX/UEXEC App Type (U* for updates)\n");
  printf(" -f, --np-content-id                          Content ID\n");
  printf(" -l, --np-klicensee     16 bytes              Override klicensee.\n");
  printf(" -g, --np-real-fname    e.g. EBOOT.BIN        Real Filename\n");
  printf(" -j, --np-add-sig       TRUE/FALSE(default)   Whether to add a NP sig. or not.\n");
  printf(" -p, --sys-param-ver    e.g. 00340001         Set sys_process_param SDK version.\n");
  exit(1);
}
```