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

```asm
<show_usage>:
  endbr64
  sub    $0x8,%rsp
  xor    %eax,%eax
  call   <show_version@plt>
  lea    D15(%rip),%rdi
  call   <printf@plt>
  lea    D102(%rip),%rdi
  call   <printf@plt>
  lea    D203(%rip),%rdi
  call   <printf@plt>
  lea    D89(%rip),%rdi
  call   <printf@plt>
  lea    D3(%rip),%rdi
  call   <printf@plt>
  lea    D221(%rip),%rdi
  call   <printf@plt>
  lea    D156(%rip),%rdi
  call   <printf@plt>
  lea    D222(%rip),%rdi
  call   <printf@plt>
  lea    D315(%rip),%rdi
  call   <printf@plt>
  lea    D281(%rip),%rdi
  call   <printf@plt>
  lea    D291(%rip),%rdi
  call   <printf@plt>
  lea    D217(%rip),%rdi
  call   <printf@plt>
  lea    D250(%rip),%rdi
  call   <printf@plt>
  lea    D113(%rip),%rdi
  call   <printf@plt>
  lea    D262(%rip),%rdi
  call   <printf@plt>
  lea    D146(%rip),%rdi
  call   <printf@plt>
  lea    D311(%rip),%rdi
  call   <printf@plt>
  lea    D282(%rip),%rdi
  call   <printf@plt>
  lea    D313(%rip),%rdi
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <printf@plt>
  lea    D55(%rip),%rdi
  call   <printf@plt>
  lea    D71(%rip),%rdi
  call   <printf@plt>
  lea    D225(%rip),%rdi
  call   <printf@plt>
  lea    D210(%rip),%rdi
  call   <printf@plt>
  lea    D119(%rip),%rdi
  call   <printf@plt>
  lea    D91(%rip),%rdi
  call   <printf@plt>
  lea    D314(%rip),%rdi
  call   <printf@plt>
  lea    D168(%rip),%rdi
  call   <printf@plt>
  lea    D258(%rip),%rdi
  call   <printf@plt>
  lea    D78(%rip),%rdi
  call   <printf@plt>
  lea    D337(%rip),%rdi
  call   <printf@plt>
  lea    D59(%rip),%rdi
  call   <printf@plt>
  lea    D297(%rip),%rdi
  call   <printf@plt>
  lea    D169(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  add    $0x8,%rsp
  jmp    1090 <exit@plt>
```

tool_calls: name: parse_data
arguments: label: D15
type_infered: string
name: parse_data
arguments: label: D102
type_infered: string
name: parse_data
arguments: label: D203
type_infered: string
name: parse_data
arguments: label: D89
type_infered: string
name: parse_data
arguments: label: D3
type_infered: string
name: parse_data
arguments: label: D221
type_infered: string
name: parse_data
arguments: label: D156
type_infered: string
name: parse_data
arguments: label: D222
type_infered: string
name: parse_data
arguments: label: D315
type_infered: string
name: parse_data
arguments: label: D281
type_infered: string
name: parse_data
arguments: label: D291
type_infered: string
name: parse_data
arguments: label: D217
type_infered: string
name: parse_data
arguments: label: D250
type_infered: string
name: parse_data
arguments: label: D113
type_infered: string
name: parse_data
arguments: label: D262
type_infered: string
name: parse_data
arguments: label: D146
type_infered: string
name: parse_data
arguments: label: D311
type_infered: string
name: parse_data
arguments: label: D282
type_infered: string
name: parse_data
arguments: label: D313
type_infered: string
name: parse_data
arguments: label: D46
type_infered: string
name: parse_data
arguments: label: D55
type_infered: string
name: parse_data
arguments: label: D71
type_infered: string
name: parse_data
arguments: label: D225
type_infered: string
name: parse_data
arguments: label: D210
type_infered: string
name: parse_data
arguments: label: D119
type_infered: string
name: parse_data
arguments: label: D91
type_infered: string
name: parse_data
arguments: label: D314
type_infered: string
name: parse_data
arguments: label: D168
type_infered: string
name: parse_data
arguments: label: D258
type_infered: string
name: parse_data
arguments: label: D78
type_infered: string
name: parse_data
arguments: label: D337
type_infered: string
name: parse_data
arguments: label: D59
type_infered: string
name: parse_data
arguments: label: D297
type_infered: string
name: parse_data
arguments: label: D169
type_infered: string

tool: D15: USAGE: oscetool [options] command


tool: D102: COMMANDS                Parameters            Explanation


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


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


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


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


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


tool: D222: OPTIONS                 Possible Values       Explanation


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


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


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


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


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


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


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


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


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


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


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


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


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


tool: D71:                         LDR/NPDRM             SELF Type


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


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


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


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


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


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


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


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


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


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


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


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