#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 printHelp(void) {
  printf(
      "Commands are: \n  add [Supply Card Number] 			- add "
      "any card to your hand (teh hacks)\n  buy [Supply Card Number] 	"
      "		- buy a card at supply position\n  end 			      "
      "			- end your turn\n  init [Number of Players] [Number of "
      "Bots] 	- initialize the game\n  num 			      	"
      "		- print number of cards in your hand\n  play [Hand Index] "
      "[Choice] [Choice] [Choice]	- play a card from your hand\n  "
      "resign					- end the game showing the "
      "current scores\n  show 						- show "
      "your current hand\n  stat 					"
      "	- show your turn's status\n  supp 				"
      "		- show the supply\n  whos 			      	"
      "		- whos turn\n  exit 			      		"
      "	- exit the interface");
  printf("\n\n");
}


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

x86 assembly (clang, -O2):
<printHelp>:
push   %rax
lea    0xed8(%rip),%rdi
call   1040 <printf@plt>
lea    0x1131(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [613 x i8] c"Commands are: \0A add [Supply Card Number] \09\09\09- add any card to your hand (teh hacks)\0A buy [Supply Card Number] \09\09\09- buy a card at supply position\0A end \09\09\09 \09\09\09- end your turn\0A init [Number of Players] [Number of Bots] \09- initialize the game\0A num \09\09\09 \09\09\09- print number of cards in your hand\0A play [Hand Index] [Choice] [Choice] [Choice]\09- play a card from your hand\0A resign\09\09\09\09\09- end the game showing the current scores\0A show \09\09\09\09\09\09- show your current hand\0A stat \09\09\09\09\09\09- show your turn's status\0A supp \09\09\09\09\09\09- show the supply\0A whos \09\09\09 \09\09\09- whos turn\0A exit \09\09\09 \09\09\09- exit the interface\00"
@.str.1 = [3 x i8] c"\0A\0A\00"
define void @printHelp() {
%1 = call i32 @printf(i8* getelementptr inbounds ([613 x i8], [613 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [613 x i8] c"Commands are: \0A add [Supply Card Number] \09\09\09- add any card to your hand (teh hacks)\0A buy [Supply Card Number] \09\09\09- buy a card at supply position\0A end \09\09\09 \09\09\09- end your turn\0A init [Number of Players] [Number of Bots] \09- initialize the game\0A num \09\09\09 \09\09\09- print number of cards in your hand\0A play [Hand Index] [Choice] [Choice] [Choice]\09- play a card from your hand\0A resign\09\09\09\09\09- end the game showing the current scores\0A show \09\09\09\09\09\09- show your current hand\0A stat \09\09\09\09\09\09- show your turn's status\0A supp \09\09\09\09\09\09- show the supply\0A whos \09\09\09 \09\09\09- whos turn\0A exit \09\09\09 \09\09\09- exit the interface\00"
@str = [2 x i8] c"\0A\00"
define void @printHelp() {
%1 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([613 x i8], [613 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([2 x i8], [2 x i8]* @str, i64 0, i64 0))
ret void
}