#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 print_help() {
  printf("Usage: cc_extract --instruction [arguments]\n"
         "\n"
         "The program is run by providing an instruction as the first argument "
         "followed\n"
         "by arguments for that instruction. Instructions cannot be mixed. The "
         "CC file\n"
         "must be provided from the standard input. The result is printed to "
         "the standard\n"
         "output.\n"
         "\n"
         "List of valid instructions:\n"
         "   "
         "--help            "
         "\n"
         "   "
         "--print-hash      "
         " file-name"
         "\n"
         "   "
         "--print-file-count"
         "\n"
         "   "
         "--print-toc       "
         "\n"
         "   "
         "--print-by-name   "
         " file-name (true|false)"
         "\n"
         "   "
         "--print-by-id     "
         " file-id   (true|false)"
         "\n"
         "\n"
         "--help            "
         "\n"
         "   Print usage instructions.\n"
         "--print-hash      "
         "\n"
         "   Print the hash for the file name provided as an argument.\n"
         "--print-file-count"
         "\n"
         "   Print the file count of the CC file.\n"
         "--print-toc       "
         "\n"
         "   Print the table of contents of the CC file.\n"
         "--print-by-name   "
         "\n"
         "   Print the contents of the file provided by the file name. You "
         "must specify\n"
         "   whether the file is encrypted as \"true\" or \"false\".\n"
         "--print-by-id     "
         "\n"
         "   Print the contents of the file provided by the file id. You must "
         "specify\n"
         "   whether the file is encrypted as \"true\" or \"false\".\n");
}


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

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

LLVM IR (-O0):
@.str = [1062 x i8] c"Usage: cc_extract --instruction [arguments]\0A\0AThe program is run by providing an instruction as the first argument followed\0Aby arguments for that instruction. Instructions cannot be mixed. The CC file\0Amust be provided from the standard input. The result is printed to the standard\0Aoutput.\0A\0AList of valid instructions:\0A --help \0A --print-hash file-name\0A --print-file-count\0A --print-toc \0A --print-by-name file-name (true|false)\0A --print-by-id file-id (true|false)\0A\0A--help \0A Print usage instructions.\0A--print-hash \0A Print the hash for the file name provided as an argument.\0A--print-file-count\0A Print the file count of the CC file.\0A--print-toc \0A Print the table of contents of the CC file.\0A--print-by-name \0A Print the contents of the file provided by the file name. You must specify\0A whether the file is encrypted as \22true\22 or \22false\22.\0A--print-by-id \0A Print the contents of the file provided by the file id. You must specify\0A whether the file is encrypted as \22true\22 or \22false\22.\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1062 x i8], [1062 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1061 x i8] c"Usage: cc_extract --instruction [arguments]\0A\0AThe program is run by providing an instruction as the first argument followed\0Aby arguments for that instruction. Instructions cannot be mixed. The CC file\0Amust be provided from the standard input. The result is printed to the standard\0Aoutput.\0A\0AList of valid instructions:\0A --help \0A --print-hash file-name\0A --print-file-count\0A --print-toc \0A --print-by-name file-name (true|false)\0A --print-by-id file-id (true|false)\0A\0A--help \0A Print usage instructions.\0A--print-hash \0A Print the hash for the file name provided as an argument.\0A--print-file-count\0A Print the file count of the CC file.\0A--print-toc \0A Print the table of contents of the CC file.\0A--print-by-name \0A Print the contents of the file provided by the file name. You must specify\0A whether the file is encrypted as \22true\22 or \22false\22.\0A--print-by-id \0A Print the contents of the file provided by the file id. You must specify\0A whether the file is encrypted as \22true\22 or \22false\22.\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1061 x i8], [1061 x i8]* @str, i64 0, i64 0))
ret void
}