#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() {
  fprintf(stderr,
          "Usage:  sg_get_config [--brief] [--current] [--help] [--hex] "
          "[--inner-hex]\n"
          "                      [--list] [--raw] [--rt=RT] "
          "[--starting=FC]\n"
          "                      [--verbose] [--version] DEVICE\n"
          "  where:\n"
          "    --brief|-b       only give feature names of DEVICE "
          "(don't decode)\n"
          "    --current|-c     equivalent to '--rt=1' (show "
          "current)\n"
          "    --help|-h        print usage message then exit\n"
          "    --hex|-H         output response in hex\n"
          "    --inner-hex|-i    decode to feature name, then output "
          "features in hex\n"
          "    --list|-l        list all known features + profiles "
          "(ignore DEVICE)\n"
          "    --raw|-R         output in binary (to stdout)\n"
          "    --rt=RT|-r RT    default value is 0\n"
          "                     0 -> all feature descriptors (regardless "
          "of currency)\n"
          "                     1 -> all current feature descriptors\n"
          "                     2 -> only feature descriptor matching "
          "'starting'\n"
          "    --starting=FC|-s FC    starting from feature "
          "code (FC) value\n"
          "    --verbose|-v     verbose\n"
          "    --version|-V     output version string\n\n"
          "Get configuration information for MMC drive and/or media\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 = [1061 x i8] c"Usage: sg_get_config [--brief] [--current] [--help] [--hex] [--inner-hex]\0A [--list] [--raw] [--rt=RT] [--starting=FC]\0A [--verbose] [--version] DEVICE\0A where:\0A --brief|-b only give feature names of DEVICE (don't decode)\0A --current|-c equivalent to '--rt=1' (show current)\0A --help|-h print usage message then exit\0A --hex|-H output response in hex\0A --inner-hex|-i decode to feature name, then output features in hex\0A --list|-l list all known features + profiles (ignore DEVICE)\0A --raw|-R output in binary (to stdout)\0A --rt=RT|-r RT default value is 0\0A 0 -> all feature descriptors (regardless of currency)\0A 1 -> all current feature descriptors\0A 2 -> only feature descriptor matching 'starting'\0A --starting=FC|-s FC starting from feature code (FC) value\0A --verbose|-v verbose\0A --version|-V output version string\0A\0AGet configuration information for MMC drive and/or media\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1061 x i8], [1061 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1061 x i8] c"Usage: sg_get_config [--brief] [--current] [--help] [--hex] [--inner-hex]\0A [--list] [--raw] [--rt=RT] [--starting=FC]\0A [--verbose] [--version] DEVICE\0A where:\0A --brief|-b only give feature names of DEVICE (don't decode)\0A --current|-c equivalent to '--rt=1' (show current)\0A --help|-h print usage message then exit\0A --hex|-H output response in hex\0A --inner-hex|-i decode to feature name, then output features in hex\0A --list|-l list all known features + profiles (ignore DEVICE)\0A --raw|-R output in binary (to stdout)\0A --rt=RT|-r RT default value is 0\0A 0 -> all feature descriptors (regardless of currency)\0A 1 -> all current feature descriptors\0A 2 -> only feature descriptor matching 'starting'\0A --starting=FC|-s FC starting from feature code (FC) value\0A --verbose|-v verbose\0A --version|-V output version string\0A\0AGet configuration information for MMC drive and/or media\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1061 x i8], [1061 x i8]* @.str, i64 0, i64 0))
ret void
}