#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 *, ...);
int /*<<< orphan*/ puts(char *);
void printVersion(const char *rcsid) {
  printf("SRILM release %s", "1.7.1");
  printf(" (with third-party contributions)");
  printf("\n\nProgram version %s\n", rcsid);
  printf("\nSupport for gzipped files is included.\n");
  puts(
      "\nThis software is subject to the SRILM Community Research License "
      "Version\n1.0 (the \"License\"); you may not use this software except in "
      "compliance\nwith the License.  A copy of the License is included in the "
      "SRILM root\ndirectory in the \"License\" file.  Software distributed "
      "under the License\nis distributed on an \"AS IS\" basis, WITHOUT "
      "WARRANTY OF ANY KIND, either\nexpress or implied.  See the License for "
      "the specific language governing\nrights and limitations under the "
      "License.\n\nThis software is Copyright (c) 1995-2014 SRI International. "
      " All rights\nreserved.\n\nPortions of this software are\nCopyright (c) "
      "2002-2005 Jeff Bilmes\nCopyright (c) 2009-2013 Tanel Alumae\nCopyright "
      "(c) 2012-2013 Microsoft Corp.\n\nSRILM also includes open-source "
      "software as listed in the\nACKNOWLEDGEMENTS file in the SRILM root "
      "directory.\n\nIf this software was obtained under a commercial license "
      "agreement with\nSRI then the provisions therein govern the use of the "
      "software and the\nabove notice does not apply.\n");
}


x86 assembly (clang, -O0):
<printVersion>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
lea    0xecd(%rip),%rdi
lea    0xed7(%rip),%rsi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xecf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x8(%rbp),%rsi
lea    0xedf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xee7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xf02(%rip),%rdi
call   1030 <puts@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<printVersion>:
push   %rbx
mov    %rdi,%rbx
lea    0xed5(%rip),%rdi
lea    0xedf(%rip),%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xed7(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xeeb(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x12cd(%rip),%rdi
call   1030 <puts@plt>
lea    0xee4(%rip),%rdi
pop    %rbx
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [17 x i8] c"SRILM release %s\00"
@.str.1 = [6 x i8] c"1.7.1\00"
@.str.2 = [34 x i8] c" (with third-party contributions)\00"
@.str.3 = [22 x i8] c"\0A\0AProgram version %s\0A\00"
@.str.4 = [41 x i8] c"\0ASupport for gzipped files is included.\0A\00"
@.str.5 = [989 x i8] c"\0AThis software is subject to the SRILM Community Research License Version\0A1.0 (the \22License\22); you may not use this software except in compliance\0Awith the License. A copy of the License is included in the SRILM root\0Adirectory in the \22License\22 file. Software distributed under the License\0Ais distributed on an \22AS IS\22 basis, WITHOUT WARRANTY OF ANY KIND, either\0Aexpress or implied. See the License for the specific language governing\0Arights and limitations under the License.\0A\0AThis software is Copyright (c) 1995-2014 SRI International. All rights\0Areserved.\0A\0APortions of this software are\0ACopyright (c) 2002-2005 Jeff Bilmes\0ACopyright (c) 2009-2013 Tanel Alumae\0ACopyright (c) 2012-2013 Microsoft Corp.\0A\0ASRILM also includes open-source software as listed in the\0AACKNOWLEDGEMENTS file in the SRILM root directory.\0A\0AIf this software was obtained under a commercial license agreement with\0ASRI then the provisions therein govern the use of the software and the\0Aabove notice does not apply.\0A\00"
define void @printVersion(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.2, i64 0, i64 0))
%5 = load i8*, i8** %2
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3, i64 0, i64 0), i8* %5)
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.4, i64 0, i64 0))
%8 = call i32 @puts(i8* getelementptr inbounds ([989 x i8], [989 x i8]* @.str.5, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [17 x i8] c"SRILM release %s\00"
@.str.1 = [6 x i8] c"1.7.1\00"
@.str.2 = [34 x i8] c" (with third-party contributions)\00"
@.str.3 = [22 x i8] c"\0A\0AProgram version %s\0A\00"
@.str.5 = [989 x i8] c"\0AThis software is subject to the SRILM Community Research License Version\0A1.0 (the \22License\22); you may not use this software except in compliance\0Awith the License. A copy of the License is included in the SRILM root\0Adirectory in the \22License\22 file. Software distributed under the License\0Ais distributed on an \22AS IS\22 basis, WITHOUT WARRANTY OF ANY KIND, either\0Aexpress or implied. See the License for the specific language governing\0Arights and limitations under the License.\0A\0AThis software is Copyright (c) 1995-2014 SRI International. All rights\0Areserved.\0A\0APortions of this software are\0ACopyright (c) 2002-2005 Jeff Bilmes\0ACopyright (c) 2009-2013 Tanel Alumae\0ACopyright (c) 2012-2013 Microsoft Corp.\0A\0ASRILM also includes open-source software as listed in the\0AACKNOWLEDGEMENTS file in the SRILM root directory.\0A\0AIf this software was obtained under a commercial license agreement with\0ASRI then the provisions therein govern the use of the software and the\0Aabove notice does not apply.\0A\00"
@str = [40 x i8] c"\0ASupport for gzipped files is included.\00"
define void @printVersion(i8* %0) {
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @.str.2, i64 0, i64 0))
%4 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3, i64 0, i64 0), i8* %0)
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([989 x i8], [989 x i8]* @.str.5, i64 0, i64 0))
ret void
}