#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*/ fputs(char *, int /*<<< orphan*/);
int /*<<< orphan*/ stderr;
int print_usage() {
  fputs(
      "ecel - easy crypto easy life\nusage:\n	ecel --create-msg "
      "--kid=<number> [--pos=<number>] [--raw=<file>]\n	ecel --create-key "
      "--kid=<number> [--pos=<number>] [--raw=<file>]\n	ecel --encrypt "
      "(--key=<key> | --msg=<message> | --key=<key> --msg=<message>)\n	ecel "
      "--get=key_id --key=<key>\n\narguments:\n	--help          Prints this "
      "screen\n	--create-msg    Creates a message\n	--create-key    "
      "Creates a key\n	--encrypt       Encrypts a message with a key\n	"
      "--alert         Disables --unalert\n	--raw=<file>    Set a raw "
      "input file\n	--key=<file>    Set a file created by "
      "--create-key\n	--msg=<file>    Set a file created by "
      "--create-msg\n	--pos=<number>  Set the offset in the key\n	"
      "--kid=<number>  Set the ID of the key\n	--output=<file> Redirect "
      "stdout to <file>\n	--verbosity[=2] 0 quiet, 1 enable warnings "
      "(def), 2 enable debug info\n\n<key> indicates a <file> which was "
      "created by --create-key, same for <message>\nPassing - as <file> "
      "indicates stdin, which is the default behaviour.\nAll numbers are "
      "hexadecimal even without \"0x\" or \"h\".\n\nexamples:\n	1. Create a "
      "key from entropy data:\n		ecel --create-key --kid=123 "
      "--raw=entropy.file --output=key.file\n	2. Create messge:\n	"
      "	ecel --create-msg --kid=123 --raw=message.file "
      "--output=msg.file\n	3. Encrypt:\n		ecel --encrypt "
      "--key=key.file --msg=msg.file --output=encrypted_msg.file\n	4. "
      "Decrypt:\n		ecel --encrypt --key=key.file "
      "--msg=encrypted_msg.file --output=normal_msg.file\n\n",
      stderr);
  return 0;
}


x86 assembly (clang, -O0):
<print_usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%esi
lea    0xedc(%rip),%rdi
call   1030 <fputs@plt>
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_usage>:
push   %rax
mov    0x2ec8(%rip),%rax
mov    (%rax),%esi
lea    0xedf(%rip),%rdi
call   1030 <fputs@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [1400 x i8] c"ecel - easy crypto easy life\0Ausage:\0A\09ecel --create-msg --kid=<number> [--pos=<number>] [--raw=<file>]\0A\09ecel --create-key --kid=<number> [--pos=<number>] [--raw=<file>]\0A\09ecel --encrypt (--key=<key> | --msg=<message> | --key=<key> --msg=<message>)\0A\09ecel --get=key_id --key=<key>\0A\0Aarguments:\0A\09--help Prints this screen\0A\09--create-msg Creates a message\0A\09--create-key Creates a key\0A\09--encrypt Encrypts a message with a key\0A\09--alert Disables --unalert\0A\09--raw=<file> Set a raw input file\0A\09--key=<file> Set a file created by --create-key\0A\09--msg=<file> Set a file created by --create-msg\0A\09--pos=<number> Set the offset in the key\0A\09--kid=<number> Set the ID of the key\0A\09--output=<file> Redirect stdout to <file>\0A\09--verbosity[=2] 0 quiet, 1 enable warnings (def), 2 enable debug info\0A\0A<key> indicates a <file> which was created by --create-key, same for <message>\0APassing - as <file> indicates stdin, which is the default behaviour.\0AAll numbers are hexadecimal even without \220x\22 or \22h\22.\0A\0Aexamples:\0A\091. Create a key from entropy data:\0A\09\09ecel --create-key --kid=123 --raw=entropy.file --output=key.file\0A\092. Create messge:\0A\09\09ecel --create-msg --kid=123 --raw=message.file --output=msg.file\0A\093. Encrypt:\0A\09\09ecel --encrypt --key=key.file --msg=msg.file --output=encrypted_msg.file\0A\094. Decrypt:\0A\09\09ecel --encrypt --key=key.file --msg=encrypted_msg.file --output=normal_msg.file\0A\0A\00"
@stderr = global i32 0
define i32 @print_usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fputs(i8* getelementptr inbounds ([1400 x i8], [1400 x i8]* @.str, i64 0, i64 0), i32 %1)
ret i32 0
}

LLVM IR (-O2):
@.str = [1400 x i8] c"ecel - easy crypto easy life\0Ausage:\0A\09ecel --create-msg --kid=<number> [--pos=<number>] [--raw=<file>]\0A\09ecel --create-key --kid=<number> [--pos=<number>] [--raw=<file>]\0A\09ecel --encrypt (--key=<key> | --msg=<message> | --key=<key> --msg=<message>)\0A\09ecel --get=key_id --key=<key>\0A\0Aarguments:\0A\09--help Prints this screen\0A\09--create-msg Creates a message\0A\09--create-key Creates a key\0A\09--encrypt Encrypts a message with a key\0A\09--alert Disables --unalert\0A\09--raw=<file> Set a raw input file\0A\09--key=<file> Set a file created by --create-key\0A\09--msg=<file> Set a file created by --create-msg\0A\09--pos=<number> Set the offset in the key\0A\09--kid=<number> Set the ID of the key\0A\09--output=<file> Redirect stdout to <file>\0A\09--verbosity[=2] 0 quiet, 1 enable warnings (def), 2 enable debug info\0A\0A<key> indicates a <file> which was created by --create-key, same for <message>\0APassing - as <file> indicates stdin, which is the default behaviour.\0AAll numbers are hexadecimal even without \220x\22 or \22h\22.\0A\0Aexamples:\0A\091. Create a key from entropy data:\0A\09\09ecel --create-key --kid=123 --raw=entropy.file --output=key.file\0A\092. Create messge:\0A\09\09ecel --create-msg --kid=123 --raw=message.file --output=msg.file\0A\093. Encrypt:\0A\09\09ecel --encrypt --key=key.file --msg=msg.file --output=encrypted_msg.file\0A\094. Decrypt:\0A\09\09ecel --encrypt --key=key.file --msg=encrypted_msg.file --output=normal_msg.file\0A\0A\00"
@stderr = global i32 0
define i32 @print_usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fputs(i8* getelementptr inbounds ([1400 x i8], [1400 x i8]* @.str, i64 0, i64 0), i32 %1)
ret i32 0
}