#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage(void) {
  fprintf(
      stderr,
      "skcmaputil - Shovel Knight controller map utility\n\n"
      "Usage: skcmaputil COMMAND [ARGS]\n\n"
      "COMMAND [ARGS] is one of the following:\n\n"
      "dump <pakfile>:                      display mapping lists in pakfile\n"
      "\n"
      "clear <src> <dest>:                  remove mapping lists from src and "
      "store\n"
      "                                     the modified PAK file in dest\n"
      "\n"
      "replace <src> <dest> <mapping_file>: replace mapping lists from src "
      "and\n"
      "                                     replace them with those in "
      "mapping_file,\n"
      "                                     storing the modified PAK file in "
      "dest\n"
      "\n"
      "append <src> <dest> <mapping_file>:  append mapping_file entries to the "
      "lists\n"
      "                                     in source_pakfile, storing the "
      "modified\n"
      "                                     PAK file in dest\n"
      "\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [779 x i8] c"skcmaputil - Shovel Knight controller map utility\0A\0AUsage: skcmaputil COMMAND [ARGS]\0A\0ACOMMAND [ARGS] is one of the following:\0A\0Adump <pakfile>: display mapping lists in pakfile\0A\0Aclear <src> <dest>: remove mapping lists from src and store\0A the modified PAK file in dest\0A\0Areplace <src> <dest> <mapping_file>: replace mapping lists from src and\0A replace them with those in mapping_file,\0A storing the modified PAK file in dest\0A\0Aappend <src> <dest> <mapping_file>: append mapping_file entries to the lists\0A in source_pakfile, storing the modified\0A PAK file in dest\0A\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([779 x i8], [779 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [779 x i8] c"skcmaputil - Shovel Knight controller map utility\0A\0AUsage: skcmaputil COMMAND [ARGS]\0A\0ACOMMAND [ARGS] is one of the following:\0A\0Adump <pakfile>: display mapping lists in pakfile\0A\0Aclear <src> <dest>: remove mapping lists from src and store\0A the modified PAK file in dest\0A\0Areplace <src> <dest> <mapping_file>: replace mapping lists from src and\0A replace them with those in mapping_file,\0A storing the modified PAK file in dest\0A\0Aappend <src> <dest> <mapping_file>: append mapping_file entries to the lists\0A in source_pakfile, storing the modified\0A PAK file in dest\0A\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([779 x i8], [779 x i8]* @.str, i64 0, i64 0))
ret void
}