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

```asm
<show_usage>:
  endbr64
  sub    $0x8,%rsp
  xor    %eax,%eax
  call   <show_version@plt>
  lea    D168(%rip),%rdi
  call   <printf@plt>
  lea    D227(%rip),%rdi
  call   <printf@plt>
  lea    D73(%rip),%rdi
  call   <printf@plt>
  lea    D4(%rip),%rdi
  call   <printf@plt>
  lea    D38(%rip),%rdi
  call   <printf@plt>
  lea    D36(%rip),%rdi
  call   <printf@plt>
  lea    D272(%rip),%rdi
  call   <printf@plt>
  lea    D119(%rip),%rdi
  call   <printf@plt>
  lea    D78(%rip),%rdi
  call   <printf@plt>
  lea    D140(%rip),%rdi
  call   <printf@plt>
  lea    D187(%rip),%rdi
  call   <printf@plt>
  lea    D23(%rip),%rdi
  call   <printf@plt>
  lea    D153(%rip),%rdi
  call   <printf@plt>
  lea    D15(%rip),%rdi
  call   <printf@plt>
  lea    D321(%rip),%rdi
  call   <printf@plt>
  lea    D332(%rip),%rdi
  call   <printf@plt>
  lea    D75(%rip),%rdi
  call   <printf@plt>
  lea    D318(%rip),%rdi
  call   <printf@plt>
  lea    D202(%rip),%rdi
  call   <printf@plt>
  lea    D121(%rip),%rdi
  call   <printf@plt>
  lea    D48(%rip),%rdi
  call   <printf@plt>
  lea    D83(%rip),%rdi
  call   <printf@plt>
  lea    D257(%rip),%rdi
  call   <printf@plt>
  lea    D103(%rip),%rdi
  call   <printf@plt>
  lea    D40(%rip),%rdi
  call   <printf@plt>
  lea    D221(%rip),%rdi
  call   <printf@plt>
  lea    D191(%rip),%rdi
  call   <printf@plt>
  lea    D330(%rip),%rdi
  call   <printf@plt>
  lea    D170(%rip),%rdi
  call   <printf@plt>
  lea    D246(%rip),%rdi
  call   <printf@plt>
  lea    D120(%rip),%rdi
  call   <printf@plt>
  lea    D158(%rip),%rdi
  call   <printf@plt>
  lea    D66(%rip),%rdi
  call   <printf@plt>
  lea    D206(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  add    $0x8,%rsp
  jmp    1090 <exit@plt>
```

tool_calls: name: read_data
arguments: data_tag: D168
type_infered: string
name: read_data
arguments: data_tag: D227
type_infered: string
name: read_data
arguments: data_tag: D73
type_infered: string
name: read_data
arguments: data_tag: D4
type_infered: string
name: read_data
arguments: data_tag: D38
type_infered: string
name: read_data
arguments: data_tag: D36
type_infered: string
name: read_data
arguments: data_tag: D272
type_infered: string
name: read_data
arguments: data_tag: D119
type_infered: string
name: read_data
arguments: data_tag: D78
type_infered: string
name: read_data
arguments: data_tag: D140
type_infered: string
name: read_data
arguments: data_tag: D187
type_infered: string
name: read_data
arguments: data_tag: D23
type_infered: string
name: read_data
arguments: data_tag: D153
type_infered: string
name: read_data
arguments: data_tag: D15
type_infered: string
name: read_data
arguments: data_tag: D321
type_infered: string
name: read_data
arguments: data_tag: D332
type_infered: string
name: read_data
arguments: data_tag: D75
type_infered: string
name: read_data
arguments: data_tag: D318
type_infered: string
name: read_data
arguments: data_tag: D202
type_infered: string
name: read_data
arguments: data_tag: D121
type_infered: string
name: read_data
arguments: data_tag: D48
type_infered: string
name: read_data
arguments: data_tag: D83
type_infered: string
name: read_data
arguments: data_tag: D257
type_infered: string
name: read_data
arguments: data_tag: D103
type_infered: string
name: read_data
arguments: data_tag: D40
type_infered: string
name: read_data
arguments: data_tag: D221
type_infered: string
name: read_data
arguments: data_tag: D191
type_infered: string
name: read_data
arguments: data_tag: D330
type_infered: string
name: read_data
arguments: data_tag: D170
type_infered: string
name: read_data
arguments: data_tag: D246
type_infered: string
name: read_data
arguments: data_tag: D120
type_infered: string
name: read_data
arguments: data_tag: D158
type_infered: string
name: read_data
arguments: data_tag: D66
type_infered: string
name: read_data
arguments: data_tag: D206
type_infered: string

tool: D168: USAGE: oscetool [options] command


tool: D227: COMMANDS                Parameters            Explanation


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


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


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


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


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


tool: D119: OPTIONS                 Possible Values       Explanation


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


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


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


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


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


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


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


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


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


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


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


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


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


tool: D83:                         LDR/NPDRM             SELF Type


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


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


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


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


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


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


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


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


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


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


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


tool: D206:  -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);
}
```