#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*/ assert(char const *);
int /*<<< orphan*/ gms_normal_string(char *);
int /*<<< orphan*/ gms_standout_string(char *);
void gms_command_license(const char *argument) {
  assert(argument);
  gms_normal_string("This program is free software; you can redistribute it"
                    " and/or modify it under the terms of version 2 of the"
                    " GNU General Public License as published by the Free"
                    " Software Foundation.\n\n");
  gms_normal_string("This program is distributed in the hope that it will be"
                    " useful, but ");
  gms_standout_string("WITHOUT ANY WARRANTY");
  gms_normal_string("; without even the implied warranty of ");
  gms_standout_string("MERCHANTABILITY");
  gms_normal_string(" or ");
  gms_standout_string("FITNESS FOR A PARTICULAR PURPOSE");
  gms_normal_string(".  See the GNU General Public License for more"
                    " details.\n\n");
  gms_normal_string("You should have received a copy of the GNU General"
                    " Public License along with this program; if not, write"
                    " to the Free Software Foundation, Inc., 51 Franklin"
                    " Street, Fifth Floor, Boston, MA 02110-1301 USA\n\n");
  gms_normal_string("Please report any bugs, omissions, or misfeatures to ");
  gms_standout_string("simon_baldwin@yahoo.com");
  gms_normal_string(".\n");
}


x86 assembly (clang, -O0):
<gms_command_license>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
call   1030 <assert@plt>
lea    0xeb4(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xf5f(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xf98(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0xfa1(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xfbd(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0xfc1(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xfba(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0xfcf(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xffd(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0x10be(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0x10e8(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0x10f4(%rip),%rdi
call   1040 <gms_normal_string@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<gms_command_license>:
push   %rax
call   1030 <assert@plt>
lea    0xec3(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xf6e(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xfa7(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0xfb0(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xfcc(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0xfd0(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0xfc9(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0xfde(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0x100c(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0x10cd(%rip),%rdi
call   1040 <gms_normal_string@plt>
lea    0x10f7(%rip),%rdi
call   1050 <gms_standout_string@plt>
lea    0x1103(%rip),%rdi
pop    %rax
jmp    1040 <gms_normal_string@plt>

LLVM IR (-O0):
@.str = [183 x i8] c"This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.\0A\0A\00"
@.str.1 = [69 x i8] c"This program is distributed in the hope that it will be useful, but \00"
@.str.2 = [21 x i8] c"WITHOUT ANY WARRANTY\00"
@.str.3 = [40 x i8] c"; without even the implied warranty of \00"
@.str.4 = [16 x i8] c"MERCHANTABILITY\00"
@.str.5 = [5 x i8] c" or \00"
@.str.6 = [33 x i8] c"FITNESS FOR A PARTICULAR PURPOSE\00"
@.str.7 = [58 x i8] c". See the GNU General Public License for more details.\0A\0A\00"
@.str.8 = [205 x i8] c"You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\0A\0A\00"
@.str.9 = [54 x i8] c"Please report any bugs, omissions, or misfeatures to \00"
@.str.10 = [24 x i8] c"simon_baldwin@yahoo.com\00"
@.str.11 = [3 x i8] c".\0A\00"
define void @gms_command_license(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @assert(i8* %3)
%5 = call i32 @gms_normal_string(i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str, i64 0, i64 0))
%6 = call i32 @gms_normal_string(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i64 0, i64 0))
%7 = call i32 @gms_standout_string(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.2, i64 0, i64 0))
%8 = call i32 @gms_normal_string(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.3, i64 0, i64 0))
%9 = call i32 @gms_standout_string(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i64 0, i64 0))
%10 = call i32 @gms_normal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%11 = call i32 @gms_standout_string(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.6, i64 0, i64 0))
%12 = call i32 @gms_normal_string(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.7, i64 0, i64 0))
%13 = call i32 @gms_normal_string(i8* getelementptr inbounds ([205 x i8], [205 x i8]* @.str.8, i64 0, i64 0))
%14 = call i32 @gms_normal_string(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.9, i64 0, i64 0))
%15 = call i32 @gms_standout_string(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.10, i64 0, i64 0))
%16 = call i32 @gms_normal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [183 x i8] c"This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.\0A\0A\00"
@.str.1 = [69 x i8] c"This program is distributed in the hope that it will be useful, but \00"
@.str.2 = [21 x i8] c"WITHOUT ANY WARRANTY\00"
@.str.3 = [40 x i8] c"; without even the implied warranty of \00"
@.str.4 = [16 x i8] c"MERCHANTABILITY\00"
@.str.5 = [5 x i8] c" or \00"
@.str.6 = [33 x i8] c"FITNESS FOR A PARTICULAR PURPOSE\00"
@.str.7 = [58 x i8] c". See the GNU General Public License for more details.\0A\0A\00"
@.str.8 = [205 x i8] c"You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\0A\0A\00"
@.str.9 = [54 x i8] c"Please report any bugs, omissions, or misfeatures to \00"
@.str.10 = [24 x i8] c"simon_baldwin@yahoo.com\00"
@.str.11 = [3 x i8] c".\0A\00"
define void @gms_command_license(i8* %0) {
%2 = tail call i32 @assert(i8* %0)
%3 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str, i64 0, i64 0))
%4 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.1, i64 0, i64 0))
%5 = tail call i32 @gms_standout_string(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.2, i64 0, i64 0))
%6 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.3, i64 0, i64 0))
%7 = tail call i32 @gms_standout_string(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.4, i64 0, i64 0))
%8 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
%9 = tail call i32 @gms_standout_string(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.6, i64 0, i64 0))
%10 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.7, i64 0, i64 0))
%11 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([205 x i8], [205 x i8]* @.str.8, i64 0, i64 0))
%12 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.9, i64 0, i64 0))
%13 = tail call i32 @gms_standout_string(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.10, i64 0, i64 0))
%14 = tail call i32 @gms_normal_string(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
ret void
}