#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*/ scanf(char *, char *);
scalar_t__ strcmp(char *, char *);
int /*<<< orphan*/ strcpy(char *, char const *);
int /*<<< orphan*/ toUpperStr(char *);
int main(int argc, const char *argv[]) {
  char s[15];
  char *tabela[51][2] = {
      "15AAA",
      "Mac OS X v10.11 El Capitan",
      "14F27",
      "Mac OS X v10.10.5 Yosemite",
      "14E46",
      "Mac OS X v10.10.4 Yosemite",
      "14D136",
      "Mac OS X v10.10.3 with supplemental update, Yosemite",
      "14C109",
      "Mac OS X v10.10.2 Yosemite",
      "14B25",
      "Mac OS X v10.10.1 Yosemite",
      "14A389",
      "Mac OS X v10.10 Yosemite",
      "13F34",
      "Mac OS X v10.9.5 Mavericks",
      "13E28",
      "Mac OS X v10.9.4 Mavericks",
      "13D65",
      "Mac OS X v10.9.3 Mavericks",
      "13C64",
      "Mac OS X v10.9.2 Mavericks",
      "13B42",
      "Mac OS X v10.9.1 Mavericks",
      "13A603",
      "Mac OS X v10.9 Mavericks",
      "12F37",
      "Mac OS X v10.8.5 Mountain Lion",
      "12F45",
      "Mac OS X v10.8.5 Mountain Lion",
      "12F2029",
      "Mac OS X v10.8.5 Mountain Lion",
      "12E55",
      "Mac OS X v10.8.4 Mountain Lion",
      "12D78",
      "Mac OS X v10.8.3 Mountain Lion",
      "12C54",
      "Mac OS X v10.8.2 Mountain Lion",
      "12C60",
      "Mac OS X v10.8.2 Mountain Lion",
      "12C2034",
      "Mac OS X v10.8.2 Mountain Lion",
      "12B19",
      "Mac OS X v10.8.1 Mountain Lion",
      "12A269",
      "Mac OS X Mountain Lion",
      "11G56",
      "Mac OS X v10.7.5 Lion",
      "11G63",
      "Mac OS X v10.7.5 Lion",
      "11A511",
      "Mac OS X v10.7 Lion",
      "10K540",
      "Mac OS X v10.6.8 Snow Leopard",
      "10K549",
      "Mac OS X v10.6.8 Snow Leopard",
      "10D575",
      "Mac OS X v10.6.3 Snow Leopard Install DVD",
      "10A433",
      "Mac OS X Server v10.6 Snow Leopard Install DVD",
      "10A432",
      "Mac OS X v10.6 Snow Leopard Install DVD",
      "9L30",
      "Mac OS X v10.5.8 Leopard",
      "9L34",
      "Mac OS X Server 10.5.8 v1.1 Leopard",
      "9G66",
      "Mac OS X v10.5.6 Leopard Install DVD",
      "9A581",
      "Mac OS X v10.5 Leopard Install DVD",
      "8S165",
      "Mac OS X v10.4.11 Tiger",
      "8A428",
      "Mac OS X v10.4 Tiger installation disc",
      "7W98",
      "Mac OS X v10.3.9 Panther",
      "7D28",
      "Mac OS X v10.3.2 Panther installation disc",
      "7B85",
      "Mac OS X v10.3 Panther installation disc",
      "6R65",
      "Mac OS X v10.2.8 Jaguar",
      "6R73",
      "Mac OS X v10.2.8 Jaguar",
      "6G37",
      "Mac OS X v10.2.3 Jaguar installation disc",
      "6G35",
      "Mac OS X Server v10.2.3 Jaguar installation disc",
      "6C115",
      "Mac OS X v10.2 Jaguar installation disc",
      "5S66",
      "Mac OS X v10.1.5 Puma with Networking Update 1.0",
      "5S60",
      "Mac OS X v10.1.5 Puma",
      "5L17B",
      "Mac OS X v10.1 Puma installation disc with  Security Update 10-19-01",
      "5L14",
      "Mac OS X v10.1 Puma installation disc with  Security Update 10-19-01",
      "5G64",
      "Mac OS X v10.1 Puma installation disc",
      "4K78",
      "Mac OS X v10.0 Cheetah installation disc"};
  if (argc < 2) {
    printf("OSX build# or 'osxbc build#' next time you run this tool: ");
    scanf("%s", s);
    toUpperStr(s);
  } else {
    strcpy(s, argv[1]);
    toUpperStr(s);
  }
  if (strcmp(s, "DUMP") == 0) {
    for (int i = 0; i < 51; i++)
      printf("%s\t%s\n", tabela[i][0], tabela[i][1]);
  }
  for (int i = 0;; i++) {
    if (i >= 51) {
      if (strcmp(s, "DUMP") != 0)
        printf("No such Mac OS X build!\n");
      break;
    }
    if (strcmp(tabela[i][0], s) == 0) {
      printf("%s\n", tabela[i][1]);
      break;
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x360,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
lea    -0x350(%rbp),%rdi
lea    0x2969(%rip),%rsi
mov    $0x330,%edx
call   1060 <memcpy@plt>
cmpl   $0x2,-0x8(%rbp)
jge    11c7 <main+0x67>
lea    0x1527(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    -0x1f(%rbp),%rsi
lea    0x1550(%rip),%rdi
call   1070 <scanf@plt>
lea    -0x1f(%rbp),%rdi
call   1080 <toUpperStr@plt>
jmp    11e1 <main+0x81>
lea    -0x1f(%rbp),%rdi
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rsi
call   1030 <strcpy@plt>
lea    -0x1f(%rbp),%rdi
call   1080 <toUpperStr@plt>
lea    -0x1f(%rbp),%rdi
lea    0x151b(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    126a <main+0x10a>
movl   $0x0,-0x354(%rbp)
cmpl   $0x33,-0x354(%rbp)
jge    1265 <main+0x105>
movslq -0x354(%rbp),%rcx
lea    -0x350(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    (%rax),%rsi
movslq -0x354(%rbp),%rcx
lea    -0x350(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    0x8(%rax),%rdx
lea    0x14c2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
mov    -0x354(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x354(%rbp)
jmp    1205 <main+0xa5>
jmp    126a <main+0x10a>
movl   $0x0,-0x358(%rbp)
cmpl   $0x33,-0x358(%rbp)
jl     12ae <main+0x14e>
lea    -0x1f(%rbp),%rdi
lea    0x147b(%rip),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
je     12a9 <main+0x149>
lea    0x1471(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    131e <main+0x1be>
movslq -0x358(%rbp),%rcx
lea    -0x350(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    (%rax),%rdi
lea    -0x1f(%rbp),%rsi
call   1050 <strcmp@plt>
cmp    $0x0,%rax
jne    1305 <main+0x1a5>
movslq -0x358(%rbp),%rcx
lea    -0x350(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    0x8(%rax),%rsi
lea    0x1416(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    131e <main+0x1be>
jmp    130a <main+0x1aa>
mov    -0x358(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x358(%rbp)
jmp    1274 <main+0x114>
xor    %eax,%eax
add    $0x360,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %rbx
sub    $0x10,%rsp
cmp    $0x1,%edi
jg     118f <main+0x2f>
lea    0x1554(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1581(%rip),%rdi
lea    0x1(%rsp),%rsi
call   1070 <scanf@plt>
jmp    119d <main+0x3d>
mov    0x8(%rsi),%rsi
lea    0x1(%rsp),%rdi
call   1030 <strcpy@plt>
lea    0x1(%rsp),%rbx
mov    %rbx,%rdi
call   1080 <toUpperStr@plt>
lea    0x1556(%rip),%rsi
mov    %rbx,%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
jne    1200 <main+0xa0>
mov    $0x8,%ebx
lea    0x2926(%rip),%r15
lea    0x153b(%rip),%r14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    -0x8(%rbx,%r15,1),%rsi
mov    (%rbx,%r15,1),%rdx
mov    %r14,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
add    $0x10,%rbx
cmp    $0x338,%rbx
jne    11e0 <main+0x80>
mov    $0x8,%ebx
lea    0x28e4(%rip),%r15
lea    0x1(%rsp),%r14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    -0x8(%rbx,%r15,1),%rdi
mov    %r14,%rsi
call   1060 <strcmp@plt>
test   %rax,%rax
je     125e <main+0xfe>
add    $0x10,%rbx
cmp    $0x338,%rbx
jne    1220 <main+0xc0>
lea    0x14c1(%rip),%rsi
lea    0x1(%rsp),%rdi
call   1060 <strcmp@plt>
test   %rax,%rax
je     1267 <main+0x107>
lea    0x14b7(%rip),%rdi
jmp    1262 <main+0x102>
mov    (%rbx,%r15,1),%rdi
call   1040 <puts@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@.str = [6 x i8] c"15AAA\00"
@.str.1 = [27 x i8] c"Mac OS X v10.11 El Capitan\00"
@.str.2 = [6 x i8] c"14F27\00"
@.str.3 = [27 x i8] c"Mac OS X v10.10.5 Yosemite\00"
@.str.4 = [6 x i8] c"14E46\00"
@.str.5 = [27 x i8] c"Mac OS X v10.10.4 Yosemite\00"
@.str.6 = [7 x i8] c"14D136\00"
@.str.7 = [53 x i8] c"Mac OS X v10.10.3 with supplemental update, Yosemite\00"
@.str.8 = [7 x i8] c"14C109\00"
@.str.9 = [27 x i8] c"Mac OS X v10.10.2 Yosemite\00"
@.str.10 = [6 x i8] c"14B25\00"
@.str.11 = [27 x i8] c"Mac OS X v10.10.1 Yosemite\00"
@.str.12 = [7 x i8] c"14A389\00"
@.str.13 = [25 x i8] c"Mac OS X v10.10 Yosemite\00"
@.str.14 = [6 x i8] c"13F34\00"
@.str.15 = [27 x i8] c"Mac OS X v10.9.5 Mavericks\00"
@.str.16 = [6 x i8] c"13E28\00"
@.str.17 = [27 x i8] c"Mac OS X v10.9.4 Mavericks\00"
@.str.18 = [6 x i8] c"13D65\00"
@.str.19 = [27 x i8] c"Mac OS X v10.9.3 Mavericks\00"
@.str.20 = [6 x i8] c"13C64\00"
@.str.21 = [27 x i8] c"Mac OS X v10.9.2 Mavericks\00"
@.str.22 = [6 x i8] c"13B42\00"
@.str.23 = [27 x i8] c"Mac OS X v10.9.1 Mavericks\00"
@.str.24 = [7 x i8] c"13A603\00"
@.str.25 = [25 x i8] c"Mac OS X v10.9 Mavericks\00"
@.str.26 = [6 x i8] c"12F37\00"
@.str.27 = [31 x i8] c"Mac OS X v10.8.5 Mountain Lion\00"
@.str.28 = [6 x i8] c"12F45\00"
@.str.29 = [8 x i8] c"12F2029\00"
@.str.30 = [6 x i8] c"12E55\00"
@.str.31 = [31 x i8] c"Mac OS X v10.8.4 Mountain Lion\00"
@.str.32 = [6 x i8] c"12D78\00"
@.str.33 = [31 x i8] c"Mac OS X v10.8.3 Mountain Lion\00"
@.str.34 = [6 x i8] c"12C54\00"
@.str.35 = [31 x i8] c"Mac OS X v10.8.2 Mountain Lion\00"
@.str.36 = [6 x i8] c"12C60\00"
@.str.37 = [8 x i8] c"12C2034\00"
@.str.38 = [6 x i8] c"12B19\00"
@.str.39 = [31 x i8] c"Mac OS X v10.8.1 Mountain Lion\00"
@.str.40 = [7 x i8] c"12A269\00"
@.str.41 = [23 x i8] c"Mac OS X Mountain Lion\00"
@.str.42 = [6 x i8] c"11G56\00"
@.str.43 = [22 x i8] c"Mac OS X v10.7.5 Lion\00"
@.str.44 = [6 x i8] c"11G63\00"
@.str.45 = [7 x i8] c"11A511\00"
@.str.46 = [20 x i8] c"Mac OS X v10.7 Lion\00"
@.str.47 = [7 x i8] c"10K540\00"
@.str.48 = [30 x i8] c"Mac OS X v10.6.8 Snow Leopard\00"
@.str.49 = [7 x i8] c"10K549\00"
@.str.50 = [7 x i8] c"10D575\00"
@.str.51 = [42 x i8] c"Mac OS X v10.6.3 Snow Leopard Install DVD\00"
@.str.52 = [7 x i8] c"10A433\00"
@.str.53 = [47 x i8] c"Mac OS X Server v10.6 Snow Leopard Install DVD\00"
@.str.54 = [7 x i8] c"10A432\00"
@.str.55 = [40 x i8] c"Mac OS X v10.6 Snow Leopard Install DVD\00"
@.str.56 = [5 x i8] c"9L30\00"
@.str.57 = [25 x i8] c"Mac OS X v10.5.8 Leopard\00"
@.str.58 = [5 x i8] c"9L34\00"
@.str.59 = [36 x i8] c"Mac OS X Server 10.5.8 v1.1 Leopard\00"
@.str.60 = [5 x i8] c"9G66\00"
@.str.61 = [37 x i8] c"Mac OS X v10.5.6 Leopard Install DVD\00"
@.str.62 = [6 x i8] c"9A581\00"
@.str.63 = [35 x i8] c"Mac OS X v10.5 Leopard Install DVD\00"
@.str.64 = [6 x i8] c"8S165\00"
@.str.65 = [24 x i8] c"Mac OS X v10.4.11 Tiger\00"
@.str.66 = [6 x i8] c"8A428\00"
@.str.67 = [39 x i8] c"Mac OS X v10.4 Tiger installation disc\00"
@.str.68 = [5 x i8] c"7W98\00"
@.str.69 = [25 x i8] c"Mac OS X v10.3.9 Panther\00"
@.str.70 = [5 x i8] c"7D28\00"
@.str.71 = [43 x i8] c"Mac OS X v10.3.2 Panther installation disc\00"
@.str.72 = [5 x i8] c"7B85\00"
@.str.73 = [41 x i8] c"Mac OS X v10.3 Panther installation disc\00"
@.str.74 = [5 x i8] c"6R65\00"
@.str.75 = [24 x i8] c"Mac OS X v10.2.8 Jaguar\00"
@.str.76 = [5 x i8] c"6R73\00"
@.str.77 = [5 x i8] c"6G37\00"
@.str.78 = [42 x i8] c"Mac OS X v10.2.3 Jaguar installation disc\00"
@.str.79 = [5 x i8] c"6G35\00"
@.str.80 = [49 x i8] c"Mac OS X Server v10.2.3 Jaguar installation disc\00"
@.str.81 = [6 x i8] c"6C115\00"
@.str.82 = [40 x i8] c"Mac OS X v10.2 Jaguar installation disc\00"
@.str.83 = [5 x i8] c"5S66\00"
@.str.84 = [49 x i8] c"Mac OS X v10.1.5 Puma with Networking Update 1.0\00"
@.str.85 = [5 x i8] c"5S60\00"
@.str.86 = [22 x i8] c"Mac OS X v10.1.5 Puma\00"
@.str.87 = [6 x i8] c"5L17B\00"
@.str.88 = [69 x i8] c"Mac OS X v10.1 Puma installation disc with Security Update 10-19-01\00"
@.str.89 = [5 x i8] c"5L14\00"
@.str.90 = [5 x i8] c"5G64\00"
@.str.91 = [38 x i8] c"Mac OS X v10.1 Puma installation disc\00"
@.str.92 = [5 x i8] c"4K78\00"
@.str.93 = [41 x i8] c"Mac OS X v10.0 Cheetah installation disc\00"
@__const.main.tabela = [51 x [2 x i8*]] [[2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.3, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.7, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.9, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.11, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.13, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.15, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.19, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.21, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.23, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.25, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.31, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.33, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.35, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.35, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.35, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.39, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.41, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.43, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.43, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.45, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.46, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.47, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.48, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.48, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.50, i32 0, i32 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.51, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.52, i32 0, i32 0), i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.53, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.54, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.55, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.57, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.58, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.59, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.60, i32 0, i32 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.61, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.62, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.63, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.64, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.65, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.66, i32 0, i32 0), i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.67, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.68, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.69, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i32 0, i32 0), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.71, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i32 0, i32 0), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.73, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.74, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.75, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.76, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.75, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.77, i32 0, i32 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.78, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.79, i32 0, i32 0), i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.80, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.81, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.82, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.83, i32 0, i32 0), i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.84, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.85, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.86, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.87, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.88, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.89, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.88, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.90, i32 0, i32 0), i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.91, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.92, i32 0, i32 0), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.93, i32 0, i32 0)]]
@.str.94 = [59 x i8] c"OSX build# or 'osxbc build#' next time you run this tool: \00"
@.str.95 = [3 x i8] c"%s\00"
@.str.96 = [5 x i8] c"DUMP\00"
@.str.97 = [7 x i8] c"%s\09%s\0A\00"
@.str.98 = [25 x i8] c"No such Mac OS X build!\0A\00"
@.str.99 = [4 x i8] c"%s\0A\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca [15 x i8]
%7 = alloca [51 x [2 x i8*]]
%8 = alloca i32
%9 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%10 = bitcast [51 x [2 x i8*]]* %7 to i8*
%11 = load i32, i32* %4
%12 = icmp slt i32 %11, 2
br i1 %12, label %13, label %19
13: ; preds = %2
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.94, i64 0, i64 0))
%15 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%16 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.95, i64 0, i64 0), i8* %15)
%17 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%18 = call i32 @toUpperStr(i8* %17)
br label %27
19: ; preds = %2
%20 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%21 = load i8**, i8*** %5
%22 = getelementptr inbounds i8*, i8** %21, i64 1
%23 = load i8*, i8** %22
%24 = call i32 @strcpy(i8* %20, i8* %23)
%25 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%26 = call i32 @toUpperStr(i8* %25)
br label %27
27: ; preds = %19, %13
%28 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%29 = call i64 @strcmp(i8* %28, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.96, i64 0, i64 0))
%30 = icmp eq i64 %29, 0
br i1 %30, label %31, label %51
31: ; preds = %27
store i32 0, i32* %8
br label %32
32: ; preds = %47, %31
%33 = load i32, i32* %8
%34 = icmp slt i32 %33, 51
br i1 %34, label %35, label %50
35: ; preds = %32
%36 = load i32, i32* %8
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* %7, i64 0, i64 %37
%39 = getelementptr inbounds [2 x i8*], [2 x i8*]* %38, i64 0, i64 0
%40 = load i8*, i8** %39
%41 = load i32, i32* %8
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* %7, i64 0, i64 %42
%44 = getelementptr inbounds [2 x i8*], [2 x i8*]* %43, i64 0, i64 1
%45 = load i8*, i8** %44
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.97, i64 0, i64 0), i8* %40, i8* %45)
br label %47
47: ; preds = %35
%48 = load i32, i32* %8
%49 = add nsw i32 %48, 1
store i32 %49, i32* %8
br label %32
50: ; preds = %32
br label %51
51: ; preds = %50, %27
store i32 0, i32* %9
br label %52
52: ; preds = %79, %51
%53 = load i32, i32* %9
%54 = icmp sge i32 %53, 51
br i1 %54, label %55, label %62
55: ; preds = %52
%56 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%57 = call i64 @strcmp(i8* %56, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.96, i64 0, i64 0))
%58 = icmp ne i64 %57, 0
br i1 %58, label %59, label %61
59: ; preds = %55
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.98, i64 0, i64 0))
br label %61
61: ; preds = %59, %55
br label %82
62: ; preds = %52
%63 = load i32, i32* %9
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* %7, i64 0, i64 %64
%66 = getelementptr inbounds [2 x i8*], [2 x i8*]* %65, i64 0, i64 0
%67 = load i8*, i8** %66
%68 = getelementptr inbounds [15 x i8], [15 x i8]* %6, i64 0, i64 0
%69 = call i64 @strcmp(i8* %67, i8* %68)
%70 = icmp eq i64 %69, 0
br i1 %70, label %71, label %78
71: ; preds = %62
%72 = load i32, i32* %9
%73 = sext i32 %72 to i64
%74 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* %7, i64 0, i64 %73
%75 = getelementptr inbounds [2 x i8*], [2 x i8*]* %74, i64 0, i64 1
%76 = load i8*, i8** %75
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.99, i64 0, i64 0), i8* %76)
br label %82
78: ; preds = %62
br label %79
79: ; preds = %78
%80 = load i32, i32* %9
%81 = add nsw i32 %80, 1
store i32 %81, i32* %9
br label %52
82: ; preds = %71, %61
ret i32 0
}

LLVM IR (-O2):
@.str = [6 x i8] c"15AAA\00"
@.str.1 = [27 x i8] c"Mac OS X v10.11 El Capitan\00"
@.str.2 = [6 x i8] c"14F27\00"
@.str.3 = [27 x i8] c"Mac OS X v10.10.5 Yosemite\00"
@.str.4 = [6 x i8] c"14E46\00"
@.str.5 = [27 x i8] c"Mac OS X v10.10.4 Yosemite\00"
@.str.6 = [7 x i8] c"14D136\00"
@.str.7 = [53 x i8] c"Mac OS X v10.10.3 with supplemental update, Yosemite\00"
@.str.8 = [7 x i8] c"14C109\00"
@.str.9 = [27 x i8] c"Mac OS X v10.10.2 Yosemite\00"
@.str.10 = [6 x i8] c"14B25\00"
@.str.11 = [27 x i8] c"Mac OS X v10.10.1 Yosemite\00"
@.str.12 = [7 x i8] c"14A389\00"
@.str.13 = [25 x i8] c"Mac OS X v10.10 Yosemite\00"
@.str.14 = [6 x i8] c"13F34\00"
@.str.15 = [27 x i8] c"Mac OS X v10.9.5 Mavericks\00"
@.str.16 = [6 x i8] c"13E28\00"
@.str.17 = [27 x i8] c"Mac OS X v10.9.4 Mavericks\00"
@.str.18 = [6 x i8] c"13D65\00"
@.str.19 = [27 x i8] c"Mac OS X v10.9.3 Mavericks\00"
@.str.20 = [6 x i8] c"13C64\00"
@.str.21 = [27 x i8] c"Mac OS X v10.9.2 Mavericks\00"
@.str.22 = [6 x i8] c"13B42\00"
@.str.23 = [27 x i8] c"Mac OS X v10.9.1 Mavericks\00"
@.str.24 = [7 x i8] c"13A603\00"
@.str.25 = [25 x i8] c"Mac OS X v10.9 Mavericks\00"
@.str.26 = [6 x i8] c"12F37\00"
@.str.27 = [31 x i8] c"Mac OS X v10.8.5 Mountain Lion\00"
@.str.28 = [6 x i8] c"12F45\00"
@.str.29 = [8 x i8] c"12F2029\00"
@.str.30 = [6 x i8] c"12E55\00"
@.str.31 = [31 x i8] c"Mac OS X v10.8.4 Mountain Lion\00"
@.str.32 = [6 x i8] c"12D78\00"
@.str.33 = [31 x i8] c"Mac OS X v10.8.3 Mountain Lion\00"
@.str.34 = [6 x i8] c"12C54\00"
@.str.35 = [31 x i8] c"Mac OS X v10.8.2 Mountain Lion\00"
@.str.36 = [6 x i8] c"12C60\00"
@.str.37 = [8 x i8] c"12C2034\00"
@.str.38 = [6 x i8] c"12B19\00"
@.str.39 = [31 x i8] c"Mac OS X v10.8.1 Mountain Lion\00"
@.str.40 = [7 x i8] c"12A269\00"
@.str.41 = [23 x i8] c"Mac OS X Mountain Lion\00"
@.str.42 = [6 x i8] c"11G56\00"
@.str.43 = [22 x i8] c"Mac OS X v10.7.5 Lion\00"
@.str.44 = [6 x i8] c"11G63\00"
@.str.45 = [7 x i8] c"11A511\00"
@.str.46 = [20 x i8] c"Mac OS X v10.7 Lion\00"
@.str.47 = [7 x i8] c"10K540\00"
@.str.48 = [30 x i8] c"Mac OS X v10.6.8 Snow Leopard\00"
@.str.49 = [7 x i8] c"10K549\00"
@.str.50 = [7 x i8] c"10D575\00"
@.str.51 = [42 x i8] c"Mac OS X v10.6.3 Snow Leopard Install DVD\00"
@.str.52 = [7 x i8] c"10A433\00"
@.str.53 = [47 x i8] c"Mac OS X Server v10.6 Snow Leopard Install DVD\00"
@.str.54 = [7 x i8] c"10A432\00"
@.str.55 = [40 x i8] c"Mac OS X v10.6 Snow Leopard Install DVD\00"
@.str.56 = [5 x i8] c"9L30\00"
@.str.57 = [25 x i8] c"Mac OS X v10.5.8 Leopard\00"
@.str.58 = [5 x i8] c"9L34\00"
@.str.59 = [36 x i8] c"Mac OS X Server 10.5.8 v1.1 Leopard\00"
@.str.60 = [5 x i8] c"9G66\00"
@.str.61 = [37 x i8] c"Mac OS X v10.5.6 Leopard Install DVD\00"
@.str.62 = [6 x i8] c"9A581\00"
@.str.63 = [35 x i8] c"Mac OS X v10.5 Leopard Install DVD\00"
@.str.64 = [6 x i8] c"8S165\00"
@.str.65 = [24 x i8] c"Mac OS X v10.4.11 Tiger\00"
@.str.66 = [6 x i8] c"8A428\00"
@.str.67 = [39 x i8] c"Mac OS X v10.4 Tiger installation disc\00"
@.str.68 = [5 x i8] c"7W98\00"
@.str.69 = [25 x i8] c"Mac OS X v10.3.9 Panther\00"
@.str.70 = [5 x i8] c"7D28\00"
@.str.71 = [43 x i8] c"Mac OS X v10.3.2 Panther installation disc\00"
@.str.72 = [5 x i8] c"7B85\00"
@.str.73 = [41 x i8] c"Mac OS X v10.3 Panther installation disc\00"
@.str.74 = [5 x i8] c"6R65\00"
@.str.75 = [24 x i8] c"Mac OS X v10.2.8 Jaguar\00"
@.str.76 = [5 x i8] c"6R73\00"
@.str.77 = [5 x i8] c"6G37\00"
@.str.78 = [42 x i8] c"Mac OS X v10.2.3 Jaguar installation disc\00"
@.str.79 = [5 x i8] c"6G35\00"
@.str.80 = [49 x i8] c"Mac OS X Server v10.2.3 Jaguar installation disc\00"
@.str.81 = [6 x i8] c"6C115\00"
@.str.82 = [40 x i8] c"Mac OS X v10.2 Jaguar installation disc\00"
@.str.83 = [5 x i8] c"5S66\00"
@.str.84 = [49 x i8] c"Mac OS X v10.1.5 Puma with Networking Update 1.0\00"
@.str.85 = [5 x i8] c"5S60\00"
@.str.86 = [22 x i8] c"Mac OS X v10.1.5 Puma\00"
@.str.87 = [6 x i8] c"5L17B\00"
@.str.88 = [69 x i8] c"Mac OS X v10.1 Puma installation disc with Security Update 10-19-01\00"
@.str.89 = [5 x i8] c"5L14\00"
@.str.90 = [5 x i8] c"5G64\00"
@.str.91 = [38 x i8] c"Mac OS X v10.1 Puma installation disc\00"
@.str.92 = [5 x i8] c"4K78\00"
@.str.93 = [41 x i8] c"Mac OS X v10.0 Cheetah installation disc\00"
@__const.main.tabela = [51 x [2 x i8*]] [[2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.3, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.5, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.7, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.9, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.11, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.13, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.15, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.17, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.19, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.21, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.23, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.25, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.27, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.31, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.33, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.35, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.35, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.35, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.39, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.41, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.43, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.43, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.45, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.46, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.47, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.48, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.49, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.48, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.50, i32 0, i32 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.51, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.52, i32 0, i32 0), i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.53, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.54, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.55, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.57, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.58, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.59, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.60, i32 0, i32 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.61, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.62, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.63, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.64, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.65, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.66, i32 0, i32 0), i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.67, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.68, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.69, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i32 0, i32 0), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.71, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.72, i32 0, i32 0), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.73, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.74, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.75, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.76, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.75, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.77, i32 0, i32 0), i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.78, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.79, i32 0, i32 0), i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.80, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.81, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.82, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.83, i32 0, i32 0), i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.84, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.85, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.86, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.87, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.88, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.89, i32 0, i32 0), i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.88, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.90, i32 0, i32 0), i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.91, i32 0, i32 0)], [2 x i8*] [i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.92, i32 0, i32 0), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.93, i32 0, i32 0)]]
@.str.94 = [59 x i8] c"OSX build# or 'osxbc build#' next time you run this tool: \00"
@.str.95 = [3 x i8] c"%s\00"
@.str.96 = [5 x i8] c"DUMP\00"
@.str.97 = [7 x i8] c"%s\09%s\0A\00"
@str = [24 x i8] c"No such Mac OS X build!\00"
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca [15 x i8]
%4 = getelementptr inbounds [15 x i8], [15 x i8]* %3, i64 0, i64 0
%5 = icmp slt i32 %0, 2
br i1 %5, label %6, label %9
6: ; preds = %2
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.94, i64 0, i64 0))
%8 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.95, i64 0, i64 0), i8* %4)
br label %13
9: ; preds = %2
%10 = getelementptr inbounds i8*, i8** %1, i64 1
%11 = load i8*, i8** %10
%12 = call i32 @strcpy(i8* %4, i8* %11)
br label %13
13: ; preds = %9, %6
%14 = call i32 @toUpperStr(i8* %4)
%15 = call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.96, i64 0, i64 0))
%16 = icmp eq i64 %15, 0
br i1 %16, label %18, label %17
17: ; preds = %18, %13
br label %30
18: ; preds = %13, %18
%19 = phi i64 [ %25, %18 ], [ 0, %13 ]
%20 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* @__const.main.tabela, i64 0, i64 %19, i64 0
%21 = load i8*, i8** %20
%22 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* @__const.main.tabela, i64 0, i64 %19, i64 1
%23 = load i8*, i8** %22
%24 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.97, i64 0, i64 0), i8* %21, i8* %23)
%25 = add nuw nsw i64 %19, 1
%26 = icmp eq i64 %25, 51
br i1 %26, label %17, label %18
27: ; preds = %40
%28 = call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.96, i64 0, i64 0))
%29 = icmp eq i64 %28, 0
br i1 %29, label %46, label %43
30: ; preds = %17, %40
%31 = phi i64 [ %41, %40 ], [ 0, %17 ]
%32 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* @__const.main.tabela, i64 0, i64 %31, i64 0
%33 = load i8*, i8** %32
%34 = call i64 @strcmp(i8* %33, i8* %4)
%35 = icmp eq i64 %34, 0
br i1 %35, label %36, label %40
36: ; preds = %30
%37 = and i64 %31, 4294967295
%38 = getelementptr inbounds [51 x [2 x i8*]], [51 x [2 x i8*]]* @__const.main.tabela, i64 0, i64 %37, i64 1
%39 = load i8*, i8** %38
br label %43
40: ; preds = %30
%41 = add nuw nsw i64 %31, 1
%42 = icmp eq i64 %41, 51
br i1 %42, label %27, label %30
43: ; preds = %27, %36
%44 = phi i8* [ %39, %36 ], [ getelementptr inbounds ([24 x i8], [24 x i8]* @str, i64 0, i64 0), %27 ]
%45 = call i32 @puts(i8* dereferenceable(1) %44)
br label %46
46: ; preds = %43, %27
ret i32 0
}