#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 msg_help2() {
  printf("\nThis program has three (3) option flags that you can include when "
         "you run the program:\n -h: This calls this exact help message.\n -p: "
         "This prints out a copy of the hash table instead of babbling.\n -s "
         "[int]: This specifies the size of the hash table. It requires an "
         "integer argument to follow after the flag. For hash tables, it is "
         "optimal to use a prime number when choosing the size. If no size "
         "flag is specified, it will default to 157 buckets. This may be too "
         "large or too small for your input files though.\n");
  printf("\nIf you have more questions, feel free to e-mail me at "
         "garcia_andoni@yahoo.com\n");
  return;
}


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

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

LLVM IR (-O0):
@.str = [512 x i8] c"\0AThis program has three (3) option flags that you can include when you run the program:\0A -h: This calls this exact help message.\0A -p: This prints out a copy of the hash table instead of babbling.\0A -s [int]: This specifies the size of the hash table. It requires an integer argument to follow after the flag. For hash tables, it is optimal to use a prime number when choosing the size. If no size flag is specified, it will default to 157 buckets. This may be too large or too small for your input files though.\0A\00"
@.str.1 = [80 x i8] c"\0AIf you have more questions, feel free to e-mail me at garcia_andoni@yahoo.com\0A\00"
define void @msg_help2() {
%1 = call i32 @printf(i8* getelementptr inbounds ([512 x i8], [512 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [511 x i8] c"\0AThis program has three (3) option flags that you can include when you run the program:\0A -h: This calls this exact help message.\0A -p: This prints out a copy of the hash table instead of babbling.\0A -s [int]: This specifies the size of the hash table. It requires an integer argument to follow after the flag. For hash tables, it is optimal to use a prime number when choosing the size. If no size flag is specified, it will default to 157 buckets. This may be too large or too small for your input files though.\00"
@str.2 = [79 x i8] c"\0AIf you have more questions, feel free to e-mail me at garcia_andoni@yahoo.com\00"
define void @msg_help2() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([511 x i8], [511 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.2, i64 0, i64 0))
ret void
}