#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("                                 __                      \n"
         "    ____                        /  ]                     \n"
         "   / __ \\_ _ ___ ___ ___    __ _| |_  /\\      /\\___ ___  \n"
         " _/ /  \\/ | |X _/ __/ __\\  /   \\   /  \\ \\ /\\ / /__ \\X _/ \n"
         " \\ X    | | | | |__ | __X  | X || |    \\ V  V // _ | |   \n"
         "  \\ \\__/\\ __X_| \\___/___/  \\___/| |     \\ /\\ / \\___X_|   \n"
         "   \\____/                       |/       V  V            \n"
         "\n"
         "  Written by Alexey Nikolaev in 2013.\n"
         "\n");
  printf("  Command line arguments:\n\n");
  printf("-W width\n"
         "\tMap width (default is 21)\n\n"
         "-H height\n"
         "\tMap height (default is 21)\n\n"
         "-S [rhombus|rect|hex]\n"
         "\tMap shape (rectangle is default). Max number of countries N=4 for "
         "rhombus and rectangle, and N=6 for the hexagon.\n\n"
         "-l [2|3| ... N]\n"
         "\tSets L, the number of countries (default is N).\n\n"
         "-i [0|1|2|3|4]\n"
         "\tInequality between the countries (0 is the lowest, 4 in the "
         "highest).\n\n"
         "-q [1|2| ... L]\n"
         "\tChoose player's location by its quality (1 = the best available on "
         "the map, L = the worst). Only in the singleplayer mode.\n\n"
         "-r\n"
         "\tAbsolutely random initial conditions, overrides options -l, -i, "
         "and -q.\n\n"
         "-d [ee|e|n|h|hh]\n"
         "\tDifficulty level (AI) from the easiest to the hardest (default is "
         "normal).\n\n"
         "-s [p|sss|ss|s|n|f|ff|fff]\n"
         "\tGame speed from the slowest to the fastest (default is normal).\n\n"
         "-R seed\n"
         "\tSpecify a random seed (unsigned integer) for map generation.\n\n"
         "-T\n"
         "\tShow the timeline.\n\n"
         "-E [1|2| ... L]\n"
         "\tStart a server for not more than L clients.\n\n"
         "-e port\n"
         "\tServer's port (19140 is default).\n\n"
         "-C IP\n"
         "\tStart a client and connect to the provided server's IP-address.\n\n"
         "-c port\n"
         "\tClients's port (19150 is default).\n\n"
         "-v\n"
         "\tDisplay the version number\n\n"
         "-h\n"
         "\tDisplay this help \n\n");
}


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

x86 assembly (clang, -O2):
<print_help>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0x109a(%rip),%rdi
call   1030 <puts@plt>
lea    0x10a9(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [447 x i8] c" __ \0A ____ / ] \0A / __ \\_ _ ___ ___ ___ __ _| |_ /\\ /\\___ ___ \0A _/ / \\/ | |X _/ __/ __\\ / \\ / \\ \\ /\\ / /__ \\X _/ \0A \\ X | | | | |__ | __X | X || | \\ V V // _ | | \0A \\ \\__/\\ __X_| \\___/___/ \\___/| | \\ /\\ / \\___X_| \0A \\____/ |/ V V \0A\0A Written by Alexey Nikolaev in 2013.\0A\0A\00"
@.str.1 = [28 x i8] c" Command line arguments:\0A\0A\00"
@.str.2 = [1147 x i8] c"-W width\0A\09Map width (default is 21)\0A\0A-H height\0A\09Map height (default is 21)\0A\0A-S [rhombus|rect|hex]\0A\09Map shape (rectangle is default). Max number of countries N=4 for rhombus and rectangle, and N=6 for the hexagon.\0A\0A-l [2|3| ... N]\0A\09Sets L, the number of countries (default is N).\0A\0A-i [0|1|2|3|4]\0A\09Inequality between the countries (0 is the lowest, 4 in the highest).\0A\0A-q [1|2| ... L]\0A\09Choose player's location by its quality (1 = the best available on the map, L = the worst). Only in the singleplayer mode.\0A\0A-r\0A\09Absolutely random initial conditions, overrides options -l, -i, and -q.\0A\0A-d [ee|e|n|h|hh]\0A\09Difficulty level (AI) from the easiest to the hardest (default is normal).\0A\0A-s [p|sss|ss|s|n|f|ff|fff]\0A\09Game speed from the slowest to the fastest (default is normal).\0A\0A-R seed\0A\09Specify a random seed (unsigned integer) for map generation.\0A\0A-T\0A\09Show the timeline.\0A\0A-E [1|2| ... L]\0A\09Start a server for not more than L clients.\0A\0A-e port\0A\09Server's port (19140 is default).\0A\0A-C IP\0A\09Start a client and connect to the provided server's IP-address.\0A\0A-c port\0A\09Clients's port (19150 is default).\0A\0A-v\0A\09Display the version number\0A\0A-h\0A\09Display this help \0A\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([447 x i8], [447 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([1147 x i8], [1147 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [446 x i8] c" __ \0A ____ / ] \0A / __ \\_ _ ___ ___ ___ __ _| |_ /\\ /\\___ ___ \0A _/ / \\/ | |X _/ __/ __\\ / \\ / \\ \\ /\\ / /__ \\X _/ \0A \\ X | | | | |__ | __X | X || | \\ V V // _ | | \0A \\ \\__/\\ __X_| \\___/___/ \\___/| | \\ /\\ / \\___X_| \0A \\____/ |/ V V \0A\0A Written by Alexey Nikolaev in 2013.\0A\00"
@str.3 = [27 x i8] c" Command line arguments:\0A\00"
@str.4 = [1146 x i8] c"-W width\0A\09Map width (default is 21)\0A\0A-H height\0A\09Map height (default is 21)\0A\0A-S [rhombus|rect|hex]\0A\09Map shape (rectangle is default). Max number of countries N=4 for rhombus and rectangle, and N=6 for the hexagon.\0A\0A-l [2|3| ... N]\0A\09Sets L, the number of countries (default is N).\0A\0A-i [0|1|2|3|4]\0A\09Inequality between the countries (0 is the lowest, 4 in the highest).\0A\0A-q [1|2| ... L]\0A\09Choose player's location by its quality (1 = the best available on the map, L = the worst). Only in the singleplayer mode.\0A\0A-r\0A\09Absolutely random initial conditions, overrides options -l, -i, and -q.\0A\0A-d [ee|e|n|h|hh]\0A\09Difficulty level (AI) from the easiest to the hardest (default is normal).\0A\0A-s [p|sss|ss|s|n|f|ff|fff]\0A\09Game speed from the slowest to the fastest (default is normal).\0A\0A-R seed\0A\09Specify a random seed (unsigned integer) for map generation.\0A\0A-T\0A\09Show the timeline.\0A\0A-E [1|2| ... L]\0A\09Start a server for not more than L clients.\0A\0A-e port\0A\09Server's port (19140 is default).\0A\0A-C IP\0A\09Start a client and connect to the provided server's IP-address.\0A\0A-c port\0A\09Clients's port (19150 is default).\0A\0A-v\0A\09Display the version number\0A\0A-h\0A\09Display this help \0A\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([446 x i8], [446 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.3, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1146 x i8], [1146 x i8]* @str.4, i64 0, i64 0))
ret void
}