#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*/ printf(char *);
void usage(void) {
  printf(
      "Usage: str2hex [params] <string>\n"
      "   or: str2hex [params] \'<string>\'\n\n"
      "Params:\n"
      "   -f <file>	Read input from the file (Default is STDIN).\n"
      "   -o <file>	Output to the file (Default is STDOU).\n"
      "   -q 		Ignore \"new line\" symbols.\n"
      "   -h 		This help.\n"
      "   -v   	Version.\n"
      "   -i [char],[char],[char]...	Include to convert list only symbols "
      "\"char\" : ..%%2f..%%2fetc...\n"
      "   -e [char],[char],[char]...	Exclude from convert list symbols "
      "\"char\" : %%2e%%2e/%%2e%%2e...\n\n"
      "Conversion params:\n"
      "   -p 		Convert to \"plain\" hex format: "
      "2f6574632f706173737764...\n"
      "   -n 		Convert 10-base numbers to 16-base (hex) numbers: "
      "6323A37B327F...\n"
      "   -no 		Convert 10-base numbers to 8-base (oct) numbers: "
      "384636424...\n"
      "   -m 		Convert to MySQL format: 0x2f6574632f706173737764... "
      "(Default)\n"
      "   -mc 		Output as MySQL CHAR format: "
      "CHAR(2f,65,74,63,2f,70)...\n"
      "   -c 		Convert to C-style oct-chars format: "
      "\\3\\94\\94\\574\\545...\n"
      "   -ch  	Convert to C-style hex-chars format: \\x2\\x94\\xE3\\x32...\n"
      "   -cf  	*  full printf suntax style: \\\"\\32\\322\\\"\\n...\n"
      "   -cc  	*  plain text printf suntax style: \\\"Lorem ipsum\\\"\\n\n"
      "   -t   	Convert to AT&T assembler hex-chars format: 0xF5, 0xF3, "
      "0xE9...\n"
      "   -tc  	*  without commas: 0xF5 0xF3 0xE9\n"
      "   -tp  	*  \"plain\" format: 0xF50xF30xE9...\n"
      "   -a   	Convert to Microsoft-Assembler chars format: E3h, C3h, E3h...\n"
      "   -ac  	*  without commas: E3h C3h E3h...\n"
      "   -ap  	* \"plain\" format: E3hC3hE3h...\n"
      "   -u   	Convert to URL format: %%EF%%F0%%E5%%E2%%E5%%E4%%21...\n"
      "   -x   	Convert to HTML hex format: &#x6C;&#x6F;&#x78;&#x78;...\n"
      "   -xe  	Convert to HTML escape codes: &iexcl;&#178;&copy;...\n"
      "   -xw  	*  HTML escape codes, without semicolons: &#108&#111...\n"
      "   -b (-base64[=linesize] | -b64[=linesize] )		Output in "
      "Base64: YmZnYmRiZ2Q=\n"
      "   -bn  	Convert to Base64, but without newline formating.\n"
      "   -md5 	Calculate MD5 (RFC 1321) hash: "
      "929ae467fe43191eff23b9a0e1471d04\n\n"
      "Exemples:\n"
      "   str2hex \'Lorem ipsum\'\n"
      "   str2hex -u \'Lorem ipsum\'\n"
      "   str2hex -b64 -f /etc/passwd\n"
      "   str2hex -i 1,2,3,4,5,6,7,8,9,0 12345678910\n"
      "   str2hex -a -e 1234567890abcde bsedtskdwnshc\n\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [2031 x i8] c"Usage: str2hex [params] <string>\0A or: str2hex [params] '<string>'\0A\0AParams:\0A -f <file>\09Read input from the file (Default is STDIN).\0A -o <file>\09Output to the file (Default is STDOU).\0A -q \09\09Ignore \22new line\22 symbols.\0A -h \09\09This help.\0A -v \09Version.\0A -i [char],[char],[char]...\09Include to convert list only symbols \22char\22 : ..%%2f..%%2fetc...\0A -e [char],[char],[char]...\09Exclude from convert list symbols \22char\22 : %%2e%%2e/%%2e%%2e...\0A\0AConversion params:\0A -p \09\09Convert to \22plain\22 hex format: 2f6574632f706173737764...\0A -n \09\09Convert 10-base numbers to 16-base (hex) numbers: 6323A37B327F...\0A -no \09\09Convert 10-base numbers to 8-base (oct) numbers: 384636424...\0A -m \09\09Convert to MySQL format: 0x2f6574632f706173737764... (Default)\0A -mc \09\09Output as MySQL CHAR format: CHAR(2f,65,74,63,2f,70)...\0A -c \09\09Convert to C-style oct-chars format: \\3\\94\\94\\574\\545...\0A -ch \09Convert to C-style hex-chars format: \\x2\\x94\\xE3\\x32...\0A -cf \09* full printf suntax style: \\\22\\32\\322\\\22\\n...\0A -cc \09* plain text printf suntax style: \\\22Lorem ipsum\\\22\\n\0A -t \09Convert to AT&T assembler hex-chars format: 0xF5, 0xF3, 0xE9...\0A -tc \09* without commas: 0xF5 0xF3 0xE9\0A -tp \09* \22plain\22 format: 0xF50xF30xE9...\0A -a \09Convert to Microsoft-Assembler chars format: E3h, C3h, E3h...\0A -ac \09* without commas: E3h C3h E3h...\0A -ap \09* \22plain\22 format: E3hC3hE3h...\0A -u \09Convert to URL format: %%EF%%F0%%E5%%E2%%E5%%E4%%21...\0A -x \09Convert to HTML hex format: &#x6C;&#x6F;&#x78;&#x78;...\0A -xe \09Convert to HTML escape codes: &iexcl;&;&copy;...\0A -xw \09* HTML escape codes, without semicolons: &&...\0A -b (-base64[=linesize] | -b64[=linesize] )\09\09Output in Base64: YmZnYmRiZ2Q=\0A -bn \09Convert to Base64, but without newline formating.\0A -md5 \09Calculate MD5 (RFC 1321) hash: 929ae467fe43191eff23b9a0e1471d04\0A\0AExemples:\0A str2hex 'Lorem ipsum'\0A str2hex -u 'Lorem ipsum'\0A str2hex -b64 -f /etc/passwd\0A str2hex -i 1,2,3,4,5,6,7,8,9,0 12345678910\0A str2hex -a -e 1234567890abcde bsedtskdwnshc\0A\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([2031 x i8], [2031 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [2031 x i8] c"Usage: str2hex [params] <string>\0A or: str2hex [params] '<string>'\0A\0AParams:\0A -f <file>\09Read input from the file (Default is STDIN).\0A -o <file>\09Output to the file (Default is STDOU).\0A -q \09\09Ignore \22new line\22 symbols.\0A -h \09\09This help.\0A -v \09Version.\0A -i [char],[char],[char]...\09Include to convert list only symbols \22char\22 : ..%%2f..%%2fetc...\0A -e [char],[char],[char]...\09Exclude from convert list symbols \22char\22 : %%2e%%2e/%%2e%%2e...\0A\0AConversion params:\0A -p \09\09Convert to \22plain\22 hex format: 2f6574632f706173737764...\0A -n \09\09Convert 10-base numbers to 16-base (hex) numbers: 6323A37B327F...\0A -no \09\09Convert 10-base numbers to 8-base (oct) numbers: 384636424...\0A -m \09\09Convert to MySQL format: 0x2f6574632f706173737764... (Default)\0A -mc \09\09Output as MySQL CHAR format: CHAR(2f,65,74,63,2f,70)...\0A -c \09\09Convert to C-style oct-chars format: \\3\\94\\94\\574\\545...\0A -ch \09Convert to C-style hex-chars format: \\x2\\x94\\xE3\\x32...\0A -cf \09* full printf suntax style: \\\22\\32\\322\\\22\\n...\0A -cc \09* plain text printf suntax style: \\\22Lorem ipsum\\\22\\n\0A -t \09Convert to AT&T assembler hex-chars format: 0xF5, 0xF3, 0xE9...\0A -tc \09* without commas: 0xF5 0xF3 0xE9\0A -tp \09* \22plain\22 format: 0xF50xF30xE9...\0A -a \09Convert to Microsoft-Assembler chars format: E3h, C3h, E3h...\0A -ac \09* without commas: E3h C3h E3h...\0A -ap \09* \22plain\22 format: E3hC3hE3h...\0A -u \09Convert to URL format: %%EF%%F0%%E5%%E2%%E5%%E4%%21...\0A -x \09Convert to HTML hex format: &#x6C;&#x6F;&#x78;&#x78;...\0A -xe \09Convert to HTML escape codes: &iexcl;&;&copy;...\0A -xw \09* HTML escape codes, without semicolons: &&...\0A -b (-base64[=linesize] | -b64[=linesize] )\09\09Output in Base64: YmZnYmRiZ2Q=\0A -bn \09Convert to Base64, but without newline formating.\0A -md5 \09Calculate MD5 (RFC 1321) hash: 929ae467fe43191eff23b9a0e1471d04\0A\0AExemples:\0A str2hex 'Lorem ipsum'\0A str2hex -u 'Lorem ipsum'\0A str2hex -b64 -f /etc/passwd\0A str2hex -i 1,2,3,4,5,6,7,8,9,0 12345678910\0A str2hex -a -e 1234567890abcde bsedtskdwnshc\0A\0A\00"
define void @usage() {
%1 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([2031 x i8], [2031 x i8]* @.str, i64 0, i64 0))
ret void
}