#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*/ exit(int);
int /*<<< orphan*/ printf(char *);
void usage(void) {
  printf("Firmware image downloader for Host AP driver\n"
         "  (for Intersil Prism2/2.5/3 cards)\n"
         "Copyright (c) 2002-2004, Jouni Malinen <jkmaline@cc.hut.fi>\n"
         "\n"
         "Usage:\n"
         "  prism2_srec [-vvrgfdpisD] [-P <PDA file>] [-O <PDA binary>] "
         "<interface> \\\n"
         "              <srec file name> [srec file name]\n"
         "Options:\n"
         "  -v   verbose (add another for more verbosity\n"
         "  -r   download SREC file into RAM (volatile)\n"
         "  -g   download SREC file into RAM (volatile in Genesis mode)"
         "\n"
         "  -f   download SREC file into flash (non-volatile)\n"
         "  -d   dump SREC image into prism2_srec.dump\n"
         "  -p   persistent mode for volatile download\n"
         "  -i   ignore incompatible interfaces errors\n"
         "       Warning! This can result in failed upgrade!\n"
         "  -s   Skip PDA reading and use defaults from the firmware "
         "image\n"
         "  -D   Dump PDA in text format (this can be used without "
         "srec file)\n"
         "  -P <PDA file>   Override card PDA (with a PDA file in text "
         "format)\n"
         "       Warning! This can result in failed upgrade!\n"
         "  -O <PDA binary>   Override procfs path for binary PDA\n"
         "       Warning! This can result in failed upgrade!\n"
         "\n"
         "Options -r, -g, and -f cannot be used together.\n"
         "If -r, -g, or -f is not specified, image summary is shown and"
         "\n"
         "compatibility with WLAN card is verified without downloading\n"
         "anything.\n");
  exit(1);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
mov    $0x1,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [1218 x i8] c"Firmware image downloader for Host AP driver\0A (for Intersil Prism2/2.5/3 cards)\0ACopyright (c) 2002-2004, Jouni Malinen <jkmaline@cc.hut.fi>\0A\0AUsage:\0A prism2_srec [-vvrgfdpisD] [-P <PDA file>] [-O <PDA binary>] <interface> \\\0A <srec file name> [srec file name]\0AOptions:\0A -v verbose (add another for more verbosity\0A -r download SREC file into RAM (volatile)\0A -g download SREC file into RAM (volatile in Genesis mode)\0A -f download SREC file into flash (non-volatile)\0A -d dump SREC image into prism2_srec.dump\0A -p persistent mode for volatile download\0A -i ignore incompatible interfaces errors\0A Warning! This can result in failed upgrade!\0A -s Skip PDA reading and use defaults from the firmware image\0A -D Dump PDA in text format (this can be used without srec file)\0A -P <PDA file> Override card PDA (with a PDA file in text format)\0A Warning! This can result in failed upgrade!\0A -O <PDA binary> Override procfs path for binary PDA\0A Warning! This can result in failed upgrade!\0A\0AOptions -r, -g, and -f cannot be used together.\0AIf -r, -g, or -f is not specified, image summary is shown and\0Acompatibility with WLAN card is verified without downloading\0Aanything.\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1218 x i8], [1218 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 1)
unreachable
}

LLVM IR (-O2):
@str = [1217 x i8] c"Firmware image downloader for Host AP driver\0A (for Intersil Prism2/2.5/3 cards)\0ACopyright (c) 2002-2004, Jouni Malinen <jkmaline@cc.hut.fi>\0A\0AUsage:\0A prism2_srec [-vvrgfdpisD] [-P <PDA file>] [-O <PDA binary>] <interface> \\\0A <srec file name> [srec file name]\0AOptions:\0A -v verbose (add another for more verbosity\0A -r download SREC file into RAM (volatile)\0A -g download SREC file into RAM (volatile in Genesis mode)\0A -f download SREC file into flash (non-volatile)\0A -d dump SREC image into prism2_srec.dump\0A -p persistent mode for volatile download\0A -i ignore incompatible interfaces errors\0A Warning! This can result in failed upgrade!\0A -s Skip PDA reading and use defaults from the firmware image\0A -D Dump PDA in text format (this can be used without srec file)\0A -P <PDA file> Override card PDA (with a PDA file in text format)\0A Warning! This can result in failed upgrade!\0A -O <PDA binary> Override procfs path for binary PDA\0A Warning! This can result in failed upgrade!\0A\0AOptions -r, -g, and -f cannot be used together.\0AIf -r, -g, or -f is not specified, image summary is shown and\0Acompatibility with WLAN card is verified without downloading\0Aanything.\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1217 x i8], [1217 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 1)
unreachable
}