#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 calcstrsum(char *);
int /*<<< orphan*/ printhelp();
int /*<<< orphan*/ strcmp(char *, char *);
int checkstring(char *str) {
  int sum = calcstrsum(str);
  switch (sum) {
  case 352:
    if (strcmp(str, "txt") == 0)
      return 352;
  case 99:
    if (strcmp(str, "c") == 0)
      return 99;
  case 513:
    if (strcmp(str, "cmake") == 0)
      return 513;
  case 617:
    if (strcmp(str, "chmake") == 0)
      return 617;
  case 185:
    if (strcmp(str, "c++") == 0)
      return 185;
  case 599:
    if (strcmp(str, "c++make") == 0)
      return 599;
  case 703:
    if (strcmp(str, "c++hmake") == 0)
      return 703;
  case 542:
    if (strcmp(str, "cproj") == 0)
      return 542;
  case 104:
    if (strcmp(str, "h") == 0)
      return 104;
  case 203:
    if (strcmp(str, "ch") == 0)
      return 203;
  case 289:
    if (strcmp(str, "c++h") == 0)
      return 289;
  case 418:
    if (strcmp(str, "java") == 0)
      return 418;
  case 674:
    if (strcmp(str, "python") == 0)
      return 674;
  case 214:
    if (strcmp(str, "go") == 0)
      return 214;
  case 516:
    if (strcmp(str, "scala") == 0)
      return 516;
  case 740:
    if (strcmp(str, "haskell") == 0)
      return 740;
  case 219:
    if (strcmp(str, "sh") == 0)
      return 219;
  case 414:
    if (strcmp(str, "bash") == 0)
      return 414;
  case 326:
    if (strcmp(str, "ksh") == 0)
      return 326;
  case 318:
    if (strcmp(str, "csh") == 0)
      return 318;
  case 435:
    if (strcmp(str, "perl") == 0)
      return 435;
  case 1177:
    if (strcmp(str, "scalascript") == 0)
      return 1177;
  case 1083:
    if (strcmp(str, "nodescript") == 0)
      return 1083;
  case 1335:
    if (strcmp(str, "pythonscript") == 0)
      return 1335;
  case 437:
    if (strcmp(str, "html") == 0)
      return 437;
  case 1098:
    if (strcmp(str, "htmlscript") == 0)
      return 1098;
  case 329:
    if (strcmp(str, "css") == 0)
      return 329;
  case 1079:
    if (strcmp(str, "javascript") == 0)
      return 1079;
  case 450:
    if (strcmp(str, "ruby") == 0)
      return 450;
  case 672:
    if (strcmp(str, "jquery") == 0)
      return 672;
  case 328:
    if (strcmp(str, "php") == 0)
      return 328;
  case 524:
    if (strcmp(str, "ocaml") == 0)
      return 524;
  case 633:
    if (strcmp(str, "erlang") == 0)
      return 633;
  case 1277:
    if (strcmp(str, "coffeescript") == 0)
      return 1277;
  case 867:
    if (strcmp(str, "markdown") == 0)
      return 867;
  default:
    printhelp();
  }
  return 1;
}


x86 assembly (clang, -O0):
<checkstring>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
call   1040 <calcstrsum@plt>
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x18(%rbp)
sub    $0x63,%eax
je     140a <checkstring+0x2da>
jmp    115c <checkstring+0x2c>
mov    -0x18(%rbp),%eax
sub    $0x68,%eax
je     1530 <checkstring+0x400>
jmp    116d <checkstring+0x3d>
mov    -0x18(%rbp),%eax
sub    $0xb9,%eax
je     1488 <checkstring+0x358>
jmp    1180 <checkstring+0x50>
mov    -0x18(%rbp),%eax
sub    $0xcb,%eax
je     155a <checkstring+0x42a>
jmp    1193 <checkstring+0x63>
mov    -0x18(%rbp),%eax
sub    $0xd6,%eax
je     1602 <checkstring+0x4d2>
jmp    11a6 <checkstring+0x76>
mov    -0x18(%rbp),%eax
sub    $0xdb,%eax
je     1680 <checkstring+0x550>
jmp    11b9 <checkstring+0x89>
mov    -0x18(%rbp),%eax
sub    $0x121,%eax
je     1584 <checkstring+0x454>
jmp    11cc <checkstring+0x9c>
mov    -0x18(%rbp),%eax
sub    $0x13e,%eax
je     16fe <checkstring+0x5ce>
jmp    11df <checkstring+0xaf>
mov    -0x18(%rbp),%eax
sub    $0x146,%eax
je     16d4 <checkstring+0x5a4>
jmp    11f2 <checkstring+0xc2>
mov    -0x18(%rbp),%eax
sub    $0x148,%eax
je     18cc <checkstring+0x79c>
jmp    1205 <checkstring+0xd5>
mov    -0x18(%rbp),%eax
sub    $0x149,%eax
je     1824 <checkstring+0x6f4>
jmp    1218 <checkstring+0xe8>
mov    -0x18(%rbp),%eax
sub    $0x160,%eax
je     13e0 <checkstring+0x2b0>
jmp    122b <checkstring+0xfb>
mov    -0x18(%rbp),%eax
sub    $0x19e,%eax
je     16aa <checkstring+0x57a>
jmp    123e <checkstring+0x10e>
mov    -0x18(%rbp),%eax
sub    $0x1a2,%eax
je     15ae <checkstring+0x47e>
jmp    1251 <checkstring+0x121>
mov    -0x18(%rbp),%eax
sub    $0x1b3,%eax
je     1728 <checkstring+0x5f8>
jmp    1264 <checkstring+0x134>
mov    -0x18(%rbp),%eax
sub    $0x1b5,%eax
je     17d0 <checkstring+0x6a0>
jmp    1277 <checkstring+0x147>
mov    -0x18(%rbp),%eax
sub    $0x1c2,%eax
je     1878 <checkstring+0x748>
jmp    128a <checkstring+0x15a>
mov    -0x18(%rbp),%eax
sub    $0x201,%eax
je     1434 <checkstring+0x304>
jmp    129d <checkstring+0x16d>
mov    -0x18(%rbp),%eax
sub    $0x204,%eax
je     162c <checkstring+0x4fc>
jmp    12b0 <checkstring+0x180>
mov    -0x18(%rbp),%eax
sub    $0x20c,%eax
je     18f6 <checkstring+0x7c6>
jmp    12c3 <checkstring+0x193>
mov    -0x18(%rbp),%eax
sub    $0x21e,%eax
je     1506 <checkstring+0x3d6>
jmp    12d6 <checkstring+0x1a6>
mov    -0x18(%rbp),%eax
sub    $0x257,%eax
je     14b2 <checkstring+0x382>
jmp    12e9 <checkstring+0x1b9>
mov    -0x18(%rbp),%eax
sub    $0x269,%eax
je     145e <checkstring+0x32e>
jmp    12fc <checkstring+0x1cc>
mov    -0x18(%rbp),%eax
sub    $0x279,%eax
je     1920 <checkstring+0x7f0>
jmp    130f <checkstring+0x1df>
mov    -0x18(%rbp),%eax
sub    $0x2a0,%eax
je     18a2 <checkstring+0x772>
jmp    1322 <checkstring+0x1f2>
mov    -0x18(%rbp),%eax
sub    $0x2a2,%eax
je     15d8 <checkstring+0x4a8>
jmp    1335 <checkstring+0x205>
mov    -0x18(%rbp),%eax
sub    $0x2bf,%eax
je     14dc <checkstring+0x3ac>
jmp    1348 <checkstring+0x218>
mov    -0x18(%rbp),%eax
sub    $0x2e4,%eax
je     1656 <checkstring+0x526>
jmp    135b <checkstring+0x22b>
mov    -0x18(%rbp),%eax
sub    $0x363,%eax
je     1974 <checkstring+0x844>
jmp    136e <checkstring+0x23e>
mov    -0x18(%rbp),%eax
sub    $0x437,%eax
je     184e <checkstring+0x71e>
jmp    1381 <checkstring+0x251>
mov    -0x18(%rbp),%eax
sub    $0x43b,%eax
je     177c <checkstring+0x64c>
jmp    1394 <checkstring+0x264>
mov    -0x18(%rbp),%eax
sub    $0x44a,%eax
je     17fa <checkstring+0x6ca>
jmp    13a7 <checkstring+0x277>
mov    -0x18(%rbp),%eax
sub    $0x499,%eax
je     1752 <checkstring+0x622>
jmp    13ba <checkstring+0x28a>
mov    -0x18(%rbp),%eax
sub    $0x4fd,%eax
je     194a <checkstring+0x81a>
jmp    13cd <checkstring+0x29d>
mov    -0x18(%rbp),%eax
sub    $0x537,%eax
je     17a6 <checkstring+0x676>
jmp    199e <checkstring+0x86e>
mov    -0x10(%rbp),%rdi
lea    0xc15(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1405 <checkstring+0x2d5>
movl   $0x160,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    140a <checkstring+0x2da>
mov    -0x10(%rbp),%rdi
lea    0xbef(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    142f <checkstring+0x2ff>
movl   $0x63,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1434 <checkstring+0x304>
mov    -0x10(%rbp),%rdi
lea    0xbc7(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1459 <checkstring+0x329>
movl   $0x201,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    145e <checkstring+0x32e>
mov    -0x10(%rbp),%rdi
lea    0xba3(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1483 <checkstring+0x353>
movl   $0x269,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1488 <checkstring+0x358>
mov    -0x10(%rbp),%rdi
lea    0xb80(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    14ad <checkstring+0x37d>
movl   $0xb9,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    14b2 <checkstring+0x382>
mov    -0x10(%rbp),%rdi
lea    0xb5a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    14d7 <checkstring+0x3a7>
movl   $0x257,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    14dc <checkstring+0x3ac>
mov    -0x10(%rbp),%rdi
lea    0xb38(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1501 <checkstring+0x3d1>
movl   $0x2bf,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1506 <checkstring+0x3d6>
mov    -0x10(%rbp),%rdi
lea    0xb17(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    152b <checkstring+0x3fb>
movl   $0x21e,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1530 <checkstring+0x400>
mov    -0x10(%rbp),%rdi
lea    0xaf9(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1555 <checkstring+0x425>
movl   $0x68,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    155a <checkstring+0x42a>
mov    -0x10(%rbp),%rdi
lea    0xac9(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    157f <checkstring+0x44f>
movl   $0xcb,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1584 <checkstring+0x454>
mov    -0x10(%rbp),%rdi
lea    0xaa2(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    15a9 <checkstring+0x479>
movl   $0x121,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    15ae <checkstring+0x47e>
mov    -0x10(%rbp),%rdi
lea    0xa7d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    15d3 <checkstring+0x4a3>
movl   $0x1a2,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    15d8 <checkstring+0x4a8>
mov    -0x10(%rbp),%rdi
lea    0xa58(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    15fd <checkstring+0x4cd>
movl   $0x2a2,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1602 <checkstring+0x4d2>
mov    -0x10(%rbp),%rdi
lea    0xa35(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1627 <checkstring+0x4f7>
movl   $0xd6,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    162c <checkstring+0x4fc>
mov    -0x10(%rbp),%rdi
lea    0xa0e(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1651 <checkstring+0x521>
movl   $0x204,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1656 <checkstring+0x526>
mov    -0x10(%rbp),%rdi
lea    0x9ea(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    167b <checkstring+0x54b>
movl   $0x2e4,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1680 <checkstring+0x550>
mov    -0x10(%rbp),%rdi
lea    0x9ca(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    16a5 <checkstring+0x575>
movl   $0xdb,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    16aa <checkstring+0x57a>
mov    -0x10(%rbp),%rdi
lea    0x99e(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    16cf <checkstring+0x59f>
movl   $0x19e,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    16d4 <checkstring+0x5a4>
mov    -0x10(%rbp),%rdi
lea    0x979(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    16f9 <checkstring+0x5c9>
movl   $0x146,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    16fe <checkstring+0x5ce>
mov    -0x10(%rbp),%rdi
lea    0x953(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1723 <checkstring+0x5f3>
movl   $0x13e,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1728 <checkstring+0x5f8>
mov    -0x10(%rbp),%rdi
lea    0x92d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    174d <checkstring+0x61d>
movl   $0x1b3,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1752 <checkstring+0x622>
mov    -0x10(%rbp),%rdi
lea    0x908(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1777 <checkstring+0x647>
movl   $0x499,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    177c <checkstring+0x64c>
mov    -0x10(%rbp),%rdi
lea    0x8ea(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    17a1 <checkstring+0x671>
movl   $0x43b,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    17a6 <checkstring+0x676>
mov    -0x10(%rbp),%rdi
lea    0x8cb(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    17cb <checkstring+0x69b>
movl   $0x537,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    17d0 <checkstring+0x6a0>
mov    -0x10(%rbp),%rdi
lea    0x8ae(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    17f5 <checkstring+0x6c5>
movl   $0x1b5,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    17fa <checkstring+0x6ca>
mov    -0x10(%rbp),%rdi
lea    0x889(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    181f <checkstring+0x6ef>
movl   $0x44a,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1824 <checkstring+0x6f4>
mov    -0x10(%rbp),%rdi
lea    0x86a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1849 <checkstring+0x719>
movl   $0x149,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    184e <checkstring+0x71e>
mov    -0x10(%rbp),%rdi
lea    0x844(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1873 <checkstring+0x743>
movl   $0x437,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1878 <checkstring+0x748>
mov    -0x10(%rbp),%rdi
lea    0x825(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    189d <checkstring+0x76d>
movl   $0x1c2,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    18a2 <checkstring+0x772>
mov    -0x10(%rbp),%rdi
lea    0x800(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    18c7 <checkstring+0x797>
movl   $0x2a0,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    18cc <checkstring+0x79c>
mov    -0x10(%rbp),%rdi
lea    0x7dd(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    18f1 <checkstring+0x7c1>
movl   $0x148,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    18f6 <checkstring+0x7c6>
mov    -0x10(%rbp),%rdi
lea    0x7b7(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    191b <checkstring+0x7eb>
movl   $0x20c,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1920 <checkstring+0x7f0>
mov    -0x10(%rbp),%rdi
lea    0x793(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1945 <checkstring+0x815>
movl   $0x279,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    194a <checkstring+0x81a>
mov    -0x10(%rbp),%rdi
lea    0x770(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    196f <checkstring+0x83f>
movl   $0x4fd,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    1974 <checkstring+0x844>
mov    -0x10(%rbp),%rdi
lea    0x753(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1999 <checkstring+0x869>
movl   $0x363,-0x4(%rbp)
jmp    19ac <checkstring+0x87c>
jmp    199e <checkstring+0x86e>
mov    $0x0,%al
call   1050 <printhelp@plt>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<checkstring>:
push   %rbx
mov    %rdi,%rbx
call   1040 <calcstrsum@plt>
cmp    $0x200,%eax
jle    1171 <checkstring+0x41>
cmp    $0x2be,%eax
jg     11a2 <checkstring+0x72>
cmp    $0x268,%eax
jg     122b <checkstring+0xfb>
lea    -0x201(%rax),%ecx
cmp    $0x1d,%ecx
ja     1332 <checkstring+0x202>
lea    0x1044(%rip),%rax
movslq (%rax,%rcx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
cmp    $0x120,%eax
jle    11de <checkstring+0xae>
lea    -0x13e(%rax),%ecx
cmp    $0x22,%ecx
jbe    11fd <checkstring+0xcd>
lea    -0x19e(%rax),%ecx
cmp    $0x24,%ecx
ja     13b3 <checkstring+0x283>
lea    0xf7f(%rip),%rax
movslq (%rax,%rcx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
cmp    $0x43a,%eax
jle    124d <checkstring+0x11d>
cmp    $0x498,%eax
jle    1282 <checkstring+0x152>
cmp    $0x499,%eax
je     14bb <checkstring+0x38b>
cmp    $0x4fd,%eax
je     15cf <checkstring+0x49f>
cmp    $0x537,%eax
je     14e9 <checkstring+0x3b9>
jmp    15fd <checkstring+0x4cd>
lea    -0xb9(%rax),%ecx
cmp    $0x22,%ecx
ja     126f <checkstring+0x13f>
lea    0xe0c(%rip),%rax
movslq (%rax,%rcx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0xe88(%rip),%rax
movslq (%rax,%rcx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x1010(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
jne    12d3 <checkstring+0x1a3>
mov    $0x160,%eax
pop    %rbx
ret
cmp    $0x29f,%eax
jg     129d <checkstring+0x16d>
cmp    $0x269,%eax
je     1301 <checkstring+0x1d1>
cmp    $0x279,%eax
je     15b8 <checkstring+0x488>
jmp    15fd <checkstring+0x4cd>
cmp    $0x362,%eax
jg     12b8 <checkstring+0x188>
cmp    $0x2bf,%eax
je     1354 <checkstring+0x224>
cmp    $0x2e4,%eax
je     1431 <checkstring+0x301>
jmp    15fd <checkstring+0x4cd>
cmp    $0x63,%eax
je     12d3 <checkstring+0x1a3>
cmp    $0x68,%eax
je     1382 <checkstring+0x252>
jmp    15fd <checkstring+0x4cd>
cmp    $0x43b,%eax
je     14d2 <checkstring+0x3a2>
cmp    $0x44a,%eax
je     1517 <checkstring+0x3e7>
jmp    15fd <checkstring+0x4cd>
cmp    $0x2a0,%eax
je     1573 <checkstring+0x443>
cmp    $0x2a2,%eax
je     13ec <checkstring+0x2bc>
jmp    15fd <checkstring+0x4cd>
cmp    $0x363,%eax
je     15e6 <checkstring+0x4b6>
cmp    $0x437,%eax
je     1545 <checkstring+0x415>
jmp    15fd <checkstring+0x4cd>
lea    0xf4e(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16e4 <checkstring+0x5b4>
lea    0xf39(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16dd <checkstring+0x5ad>
lea    0xf28(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16d6 <checkstring+0x5a6>
lea    0xf18(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
jne    133d <checkstring+0x20d>
mov    $0xb9,%eax
pop    %rbx
ret
cmp    $0x257,%eax
jne    15fd <checkstring+0x4cd>
lea    0xef7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1635 <checkstring+0x505>
lea    0xee8(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     163c <checkstring+0x50c>
lea    0xeda(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1643 <checkstring+0x513>
lea    0xecf(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1619 <checkstring+0x4e9>
lea    0xeb2(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
jne    13be <checkstring+0x28e>
mov    $0xcb,%eax
pop    %rbx
ret
cmp    $0x121,%eax
jne    15fd <checkstring+0x4cd>
lea    0xe90(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     164a <checkstring+0x51a>
lea    0xe7e(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16ac <checkstring+0x57c>
lea    0xe6c(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1651 <checkstring+0x521>
lea    0xe5c(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     160b <checkstring+0x4db>
lea    0xe48(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1620 <checkstring+0x4f0>
lea    0xe37(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1627 <checkstring+0x4f7>
lea    0xe2a(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1612 <checkstring+0x4e2>
lea    0xe11(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     162e <checkstring+0x4fe>
lea    0xdff(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1658 <checkstring+0x528>
lea    0xdec(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     165f <checkstring+0x52f>
lea    0xdd9(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16b3 <checkstring+0x583>
lea    0xdc7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1666 <checkstring+0x536>
lea    0xdbc(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     166d <checkstring+0x53d>
lea    0xdb0(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1674 <checkstring+0x544>
lea    0xda6(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16ba <checkstring+0x58a>
lea    0xd94(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     167b <checkstring+0x54b>
lea    0xd88(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16c1 <checkstring+0x591>
lea    0xd75(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1682 <checkstring+0x552>
lea    0xd69(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16c8 <checkstring+0x598>
lea    0xd57(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1689 <checkstring+0x559>
lea    0xd47(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16cf <checkstring+0x59f>
lea    0xd34(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1690 <checkstring+0x560>
lea    0xd23(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1697 <checkstring+0x567>
lea    0xd13(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     169e <checkstring+0x56e>
lea    0xd09(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     16a5 <checkstring+0x575>
xor    %eax,%eax
call   1050 <printhelp@plt>
mov    $0x1,%eax
pop    %rbx
ret
mov    $0xd6,%eax
pop    %rbx
ret
mov    $0xdb,%eax
pop    %rbx
ret
mov    $0x68,%eax
pop    %rbx
ret
mov    $0x204,%eax
pop    %rbx
ret
mov    $0x2e4,%eax
pop    %rbx
ret
mov    $0x19e,%eax
pop    %rbx
ret
mov    $0x257,%eax
pop    %rbx
ret
mov    $0x2bf,%eax
pop    %rbx
ret
mov    $0x21e,%eax
pop    %rbx
ret
mov    $0x121,%eax
pop    %rbx
ret
mov    $0x2a2,%eax
pop    %rbx
ret
mov    $0x146,%eax
pop    %rbx
ret
mov    $0x13e,%eax
pop    %rbx
ret
mov    $0x499,%eax
pop    %rbx
ret
mov    $0x43b,%eax
pop    %rbx
ret
mov    $0x537,%eax
pop    %rbx
ret
mov    $0x44a,%eax
pop    %rbx
ret
mov    $0x437,%eax
pop    %rbx
ret
mov    $0x2a0,%eax
pop    %rbx
ret
mov    $0x20c,%eax
pop    %rbx
ret
mov    $0x279,%eax
pop    %rbx
ret
mov    $0x4fd,%eax
pop    %rbx
ret
mov    $0x363,%eax
pop    %rbx
ret
mov    $0x1a2,%eax
pop    %rbx
ret
mov    $0x1b3,%eax
pop    %rbx
ret
mov    $0x1b5,%eax
pop    %rbx
ret
mov    $0x149,%eax
pop    %rbx
ret
mov    $0x1c2,%eax
pop    %rbx
ret
mov    $0x148,%eax
pop    %rbx
ret
mov    $0x269,%eax
pop    %rbx
ret
mov    $0x201,%eax
pop    %rbx
ret
mov    $0x63,%eax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [4 x i8] c"txt\00"
@.str.1 = [2 x i8] c"c\00"
@.str.2 = [6 x i8] c"cmake\00"
@.str.3 = [7 x i8] c"chmake\00"
@.str.4 = [4 x i8] c"c++\00"
@.str.5 = [8 x i8] c"c++make\00"
@.str.6 = [9 x i8] c"c++hmake\00"
@.str.7 = [6 x i8] c"cproj\00"
@.str.8 = [2 x i8] c"h\00"
@.str.9 = [3 x i8] c"ch\00"
@.str.10 = [5 x i8] c"c++h\00"
@.str.11 = [5 x i8] c"java\00"
@.str.12 = [7 x i8] c"python\00"
@.str.13 = [3 x i8] c"go\00"
@.str.14 = [6 x i8] c"scala\00"
@.str.15 = [8 x i8] c"haskell\00"
@.str.16 = [3 x i8] c"sh\00"
@.str.17 = [5 x i8] c"bash\00"
@.str.18 = [4 x i8] c"ksh\00"
@.str.19 = [4 x i8] c"csh\00"
@.str.20 = [5 x i8] c"perl\00"
@.str.21 = [12 x i8] c"scalascript\00"
@.str.22 = [11 x i8] c"nodescript\00"
@.str.23 = [13 x i8] c"pythonscript\00"
@.str.24 = [5 x i8] c"html\00"
@.str.25 = [11 x i8] c"htmlscript\00"
@.str.26 = [4 x i8] c"css\00"
@.str.27 = [11 x i8] c"javascript\00"
@.str.28 = [5 x i8] c"ruby\00"
@.str.29 = [7 x i8] c"jquery\00"
@.str.30 = [4 x i8] c"php\00"
@.str.31 = [6 x i8] c"ocaml\00"
@.str.32 = [7 x i8] c"erlang\00"
@.str.33 = [13 x i8] c"coffeescript\00"
@.str.34 = [9 x i8] c"markdown\00"
define i32 @checkstring(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca i32
store i8* %0, i8** %3
%5 = load i8*, i8** %3
%6 = call i32 @calcstrsum(i8* %5)
store i32 %6, i32* %4
%7 = load i32, i32* %4
switch i32 %7, label %218 [
i32 352, label %8
i32 99, label %14
i32 513, label %20
i32 617, label %26
i32 185, label %32
i32 599, label %38
i32 703, label %44
i32 542, label %50
i32 104, label %56
i32 203, label %62
i32 289, label %68
i32 418, label %74
i32 674, label %80
i32 214, label %86
i32 516, label %92
i32 740, label %98
i32 219, label %104
i32 414, label %110
i32 326, label %116
i32 318, label %122
i32 435, label %128
i32 1177, label %134
i32 1083, label %140
i32 1335, label %146
i32 437, label %152
i32 1098, label %158
i32 329, label %164
i32 1079, label %170
i32 450, label %176
i32 672, label %182
i32 328, label %188
i32 524, label %194
i32 633, label %200
i32 1277, label %206
i32 867, label %212
]
8: ; preds = %1
%9 = load i8*, i8** %3
%10 = call i32 @strcmp(i8* %9, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%11 = icmp eq i32 %10, 0
br i1 %11, label %12, label %13
12: ; preds = %8
store i32 352, i32* %2
br label %221
13: ; preds = %8
br label %14
14: ; preds = %1, %13
%15 = load i8*, i8** %3
%16 = call i32 @strcmp(i8* %15, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%17 = icmp eq i32 %16, 0
br i1 %17, label %18, label %19
18: ; preds = %14
store i32 99, i32* %2
br label %221
19: ; preds = %14
br label %20
20: ; preds = %1, %19
%21 = load i8*, i8** %3
%22 = call i32 @strcmp(i8* %21, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%23 = icmp eq i32 %22, 0
br i1 %23, label %24, label %25
24: ; preds = %20
store i32 513, i32* %2
br label %221
25: ; preds = %20
br label %26
26: ; preds = %1, %25
%27 = load i8*, i8** %3
%28 = call i32 @strcmp(i8* %27, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
%29 = icmp eq i32 %28, 0
br i1 %29, label %30, label %31
30: ; preds = %26
store i32 617, i32* %2
br label %221
31: ; preds = %26
br label %32
32: ; preds = %1, %31
%33 = load i8*, i8** %3
%34 = call i32 @strcmp(i8* %33, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%35 = icmp eq i32 %34, 0
br i1 %35, label %36, label %37
36: ; preds = %32
store i32 185, i32* %2
br label %221
37: ; preds = %32
br label %38
38: ; preds = %1, %37
%39 = load i8*, i8** %3
%40 = call i32 @strcmp(i8* %39, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0))
%41 = icmp eq i32 %40, 0
br i1 %41, label %42, label %43
42: ; preds = %38
store i32 599, i32* %2
br label %221
43: ; preds = %38
br label %44
44: ; preds = %1, %43
%45 = load i8*, i8** %3
%46 = call i32 @strcmp(i8* %45, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.6, i64 0, i64 0))
%47 = icmp eq i32 %46, 0
br i1 %47, label %48, label %49
48: ; preds = %44
store i32 703, i32* %2
br label %221
49: ; preds = %44
br label %50
50: ; preds = %1, %49
%51 = load i8*, i8** %3
%52 = call i32 @strcmp(i8* %51, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.7, i64 0, i64 0))
%53 = icmp eq i32 %52, 0
br i1 %53, label %54, label %55
54: ; preds = %50
store i32 542, i32* %2
br label %221
55: ; preds = %50
br label %56
56: ; preds = %1, %55
%57 = load i8*, i8** %3
%58 = call i32 @strcmp(i8* %57, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.8, i64 0, i64 0))
%59 = icmp eq i32 %58, 0
br i1 %59, label %60, label %61
60: ; preds = %56
store i32 104, i32* %2
br label %221
61: ; preds = %56
br label %62
62: ; preds = %1, %61
%63 = load i8*, i8** %3
%64 = call i32 @strcmp(i8* %63, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
%65 = icmp eq i32 %64, 0
br i1 %65, label %66, label %67
66: ; preds = %62
store i32 203, i32* %2
br label %221
67: ; preds = %62
br label %68
68: ; preds = %1, %67
%69 = load i8*, i8** %3
%70 = call i32 @strcmp(i8* %69, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%71 = icmp eq i32 %70, 0
br i1 %71, label %72, label %73
72: ; preds = %68
store i32 289, i32* %2
br label %221
73: ; preds = %68
br label %74
74: ; preds = %1, %73
%75 = load i8*, i8** %3
%76 = call i32 @strcmp(i8* %75, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0))
%77 = icmp eq i32 %76, 0
br i1 %77, label %78, label %79
78: ; preds = %74
store i32 418, i32* %2
br label %221
79: ; preds = %74
br label %80
80: ; preds = %1, %79
%81 = load i8*, i8** %3
%82 = call i32 @strcmp(i8* %81, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%83 = icmp eq i32 %82, 0
br i1 %83, label %84, label %85
84: ; preds = %80
store i32 674, i32* %2
br label %221
85: ; preds = %80
br label %86
86: ; preds = %1, %85
%87 = load i8*, i8** %3
%88 = call i32 @strcmp(i8* %87, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%89 = icmp eq i32 %88, 0
br i1 %89, label %90, label %91
90: ; preds = %86
store i32 214, i32* %2
br label %221
91: ; preds = %86
br label %92
92: ; preds = %1, %91
%93 = load i8*, i8** %3
%94 = call i32 @strcmp(i8* %93, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0))
%95 = icmp eq i32 %94, 0
br i1 %95, label %96, label %97
96: ; preds = %92
store i32 516, i32* %2
br label %221
97: ; preds = %92
br label %98
98: ; preds = %1, %97
%99 = load i8*, i8** %3
%100 = call i32 @strcmp(i8* %99, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.15, i64 0, i64 0))
%101 = icmp eq i32 %100, 0
br i1 %101, label %102, label %103
102: ; preds = %98
store i32 740, i32* %2
br label %221
103: ; preds = %98
br label %104
104: ; preds = %1, %103
%105 = load i8*, i8** %3
%106 = call i32 @strcmp(i8* %105, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
%107 = icmp eq i32 %106, 0
br i1 %107, label %108, label %109
108: ; preds = %104
store i32 219, i32* %2
br label %221
109: ; preds = %104
br label %110
110: ; preds = %1, %109
%111 = load i8*, i8** %3
%112 = call i32 @strcmp(i8* %111, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%113 = icmp eq i32 %112, 0
br i1 %113, label %114, label %115
114: ; preds = %110
store i32 414, i32* %2
br label %221
115: ; preds = %110
br label %116
116: ; preds = %1, %115
%117 = load i8*, i8** %3
%118 = call i32 @strcmp(i8* %117, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%119 = icmp eq i32 %118, 0
br i1 %119, label %120, label %121
120: ; preds = %116
store i32 326, i32* %2
br label %221
121: ; preds = %116
br label %122
122: ; preds = %1, %121
%123 = load i8*, i8** %3
%124 = call i32 @strcmp(i8* %123, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%125 = icmp eq i32 %124, 0
br i1 %125, label %126, label %127
126: ; preds = %122
store i32 318, i32* %2
br label %221
127: ; preds = %122
br label %128
128: ; preds = %1, %127
%129 = load i8*, i8** %3
%130 = call i32 @strcmp(i8* %129, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%131 = icmp eq i32 %130, 0
br i1 %131, label %132, label %133
132: ; preds = %128
store i32 435, i32* %2
br label %221
133: ; preds = %128
br label %134
134: ; preds = %1, %133
%135 = load i8*, i8** %3
%136 = call i32 @strcmp(i8* %135, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0))
%137 = icmp eq i32 %136, 0
br i1 %137, label %138, label %139
138: ; preds = %134
store i32 1177, i32* %2
br label %221
139: ; preds = %134
br label %140
140: ; preds = %1, %139
%141 = load i8*, i8** %3
%142 = call i32 @strcmp(i8* %141, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
%143 = icmp eq i32 %142, 0
br i1 %143, label %144, label %145
144: ; preds = %140
store i32 1083, i32* %2
br label %221
145: ; preds = %140
br label %146
146: ; preds = %1, %145
%147 = load i8*, i8** %3
%148 = call i32 @strcmp(i8* %147, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.23, i64 0, i64 0))
%149 = icmp eq i32 %148, 0
br i1 %149, label %150, label %151
150: ; preds = %146
store i32 1335, i32* %2
br label %221
151: ; preds = %146
br label %152
152: ; preds = %1, %151
%153 = load i8*, i8** %3
%154 = call i32 @strcmp(i8* %153, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0))
%155 = icmp eq i32 %154, 0
br i1 %155, label %156, label %157
156: ; preds = %152
store i32 437, i32* %2
br label %221
157: ; preds = %152
br label %158
158: ; preds = %1, %157
%159 = load i8*, i8** %3
%160 = call i32 @strcmp(i8* %159, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0))
%161 = icmp eq i32 %160, 0
br i1 %161, label %162, label %163
162: ; preds = %158
store i32 1098, i32* %2
br label %221
163: ; preds = %158
br label %164
164: ; preds = %1, %163
%165 = load i8*, i8** %3
%166 = call i32 @strcmp(i8* %165, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
%167 = icmp eq i32 %166, 0
br i1 %167, label %168, label %169
168: ; preds = %164
store i32 329, i32* %2
br label %221
169: ; preds = %164
br label %170
170: ; preds = %1, %169
%171 = load i8*, i8** %3
%172 = call i32 @strcmp(i8* %171, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%173 = icmp eq i32 %172, 0
br i1 %173, label %174, label %175
174: ; preds = %170
store i32 1079, i32* %2
br label %221
175: ; preds = %170
br label %176
176: ; preds = %1, %175
%177 = load i8*, i8** %3
%178 = call i32 @strcmp(i8* %177, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0))
%179 = icmp eq i32 %178, 0
br i1 %179, label %180, label %181
180: ; preds = %176
store i32 450, i32* %2
br label %221
181: ; preds = %176
br label %182
182: ; preds = %1, %181
%183 = load i8*, i8** %3
%184 = call i32 @strcmp(i8* %183, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0))
%185 = icmp eq i32 %184, 0
br i1 %185, label %186, label %187
186: ; preds = %182
store i32 672, i32* %2
br label %221
187: ; preds = %182
br label %188
188: ; preds = %1, %187
%189 = load i8*, i8** %3
%190 = call i32 @strcmp(i8* %189, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%191 = icmp eq i32 %190, 0
br i1 %191, label %192, label %193
192: ; preds = %188
store i32 328, i32* %2
br label %221
193: ; preds = %188
br label %194
194: ; preds = %1, %193
%195 = load i8*, i8** %3
%196 = call i32 @strcmp(i8* %195, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0))
%197 = icmp eq i32 %196, 0
br i1 %197, label %198, label %199
198: ; preds = %194
store i32 524, i32* %2
br label %221
199: ; preds = %194
br label %200
200: ; preds = %1, %199
%201 = load i8*, i8** %3
%202 = call i32 @strcmp(i8* %201, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.32, i64 0, i64 0))
%203 = icmp eq i32 %202, 0
br i1 %203, label %204, label %205
204: ; preds = %200
store i32 633, i32* %2
br label %221
205: ; preds = %200
br label %206
206: ; preds = %1, %205
%207 = load i8*, i8** %3
%208 = call i32 @strcmp(i8* %207, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.33, i64 0, i64 0))
%209 = icmp eq i32 %208, 0
br i1 %209, label %210, label %211
210: ; preds = %206
store i32 1277, i32* %2
br label %221
211: ; preds = %206
br label %212
212: ; preds = %1, %211
%213 = load i8*, i8** %3
%214 = call i32 @strcmp(i8* %213, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.34, i64 0, i64 0))
%215 = icmp eq i32 %214, 0
br i1 %215, label %216, label %217
216: ; preds = %212
store i32 867, i32* %2
br label %221
217: ; preds = %212
br label %218
218: ; preds = %1, %217
%219 = call i32 (...) @printhelp()
br label %220
220: ; preds = %218
store i32 1, i32* %2
br label %221
221: ; preds = %220, %216, %210, %204, %198, %192, %186, %180, %174, %168, %162, %156, %150, %144, %138, %132, %126, %120, %114, %108, %102, %96, %90, %84, %78, %72, %66, %60, %54, %48, %42, %36, %30, %24, %18, %12
%222 = load i32, i32* %2
ret i32 %222
}

LLVM IR (-O2):
@.str = [4 x i8] c"txt\00"
@.str.1 = [2 x i8] c"c\00"
@.str.2 = [6 x i8] c"cmake\00"
@.str.3 = [7 x i8] c"chmake\00"
@.str.4 = [4 x i8] c"c++\00"
@.str.5 = [8 x i8] c"c++make\00"
@.str.6 = [9 x i8] c"c++hmake\00"
@.str.7 = [6 x i8] c"cproj\00"
@.str.8 = [2 x i8] c"h\00"
@.str.9 = [3 x i8] c"ch\00"
@.str.10 = [5 x i8] c"c++h\00"
@.str.11 = [5 x i8] c"java\00"
@.str.12 = [7 x i8] c"python\00"
@.str.13 = [3 x i8] c"go\00"
@.str.14 = [6 x i8] c"scala\00"
@.str.15 = [8 x i8] c"haskell\00"
@.str.16 = [3 x i8] c"sh\00"
@.str.17 = [5 x i8] c"bash\00"
@.str.18 = [4 x i8] c"ksh\00"
@.str.19 = [4 x i8] c"csh\00"
@.str.20 = [5 x i8] c"perl\00"
@.str.21 = [12 x i8] c"scalascript\00"
@.str.22 = [11 x i8] c"nodescript\00"
@.str.23 = [13 x i8] c"pythonscript\00"
@.str.24 = [5 x i8] c"html\00"
@.str.25 = [11 x i8] c"htmlscript\00"
@.str.26 = [4 x i8] c"css\00"
@.str.27 = [11 x i8] c"javascript\00"
@.str.28 = [5 x i8] c"ruby\00"
@.str.29 = [7 x i8] c"jquery\00"
@.str.30 = [4 x i8] c"php\00"
@.str.31 = [6 x i8] c"ocaml\00"
@.str.32 = [7 x i8] c"erlang\00"
@.str.33 = [13 x i8] c"coffeescript\00"
@.str.34 = [9 x i8] c"markdown\00"
define i32 @checkstring(i8* %0) {
%2 = tail call i32 @calcstrsum(i8* %0)
switch i32 %2, label %108 [
i32 352, label %3
i32 99, label %6
i32 513, label %9
i32 617, label %12
i32 185, label %15
i32 599, label %18
i32 703, label %21
i32 542, label %24
i32 104, label %27
i32 203, label %30
i32 289, label %33
i32 418, label %36
i32 674, label %39
i32 214, label %42
i32 516, label %45
i32 740, label %48
i32 219, label %51
i32 414, label %54
i32 326, label %57
i32 318, label %60
i32 435, label %63
i32 1177, label %66
i32 1083, label %69
i32 1335, label %72
i32 437, label %75
i32 1098, label %78
i32 329, label %81
i32 1079, label %84
i32 450, label %87
i32 672, label %90
i32 328, label %93
i32 524, label %96
i32 633, label %99
i32 1277, label %102
i32 867, label %105
]
3: ; preds = %1
%4 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%5 = icmp eq i32 %4, 0
br i1 %5, label %110, label %6
6: ; preds = %3, %1
%7 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%8 = icmp eq i32 %7, 0
br i1 %8, label %110, label %9
9: ; preds = %6, %1
%10 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%11 = icmp eq i32 %10, 0
br i1 %11, label %110, label %12
12: ; preds = %9, %1
%13 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
%14 = icmp eq i32 %13, 0
br i1 %14, label %110, label %15
15: ; preds = %12, %1
%16 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%17 = icmp eq i32 %16, 0
br i1 %17, label %110, label %18
18: ; preds = %15, %1
%19 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0))
%20 = icmp eq i32 %19, 0
br i1 %20, label %110, label %21
21: ; preds = %18, %1
%22 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.6, i64 0, i64 0))
%23 = icmp eq i32 %22, 0
br i1 %23, label %110, label %24
24: ; preds = %21, %1
%25 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.7, i64 0, i64 0))
%26 = icmp eq i32 %25, 0
br i1 %26, label %110, label %27
27: ; preds = %24, %1
%28 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.8, i64 0, i64 0))
%29 = icmp eq i32 %28, 0
br i1 %29, label %110, label %30
30: ; preds = %27, %1
%31 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
%32 = icmp eq i32 %31, 0
br i1 %32, label %110, label %33
33: ; preds = %30, %1
%34 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
%35 = icmp eq i32 %34, 0
br i1 %35, label %110, label %36
36: ; preds = %33, %1
%37 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0))
%38 = icmp eq i32 %37, 0
br i1 %38, label %110, label %39
39: ; preds = %36, %1
%40 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%41 = icmp eq i32 %40, 0
br i1 %41, label %110, label %42
42: ; preds = %39, %1
%43 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%44 = icmp eq i32 %43, 0
br i1 %44, label %110, label %45
45: ; preds = %42, %1
%46 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0))
%47 = icmp eq i32 %46, 0
br i1 %47, label %110, label %48
48: ; preds = %45, %1
%49 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.15, i64 0, i64 0))
%50 = icmp eq i32 %49, 0
br i1 %50, label %110, label %51
51: ; preds = %48, %1
%52 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
%53 = icmp eq i32 %52, 0
br i1 %53, label %110, label %54
54: ; preds = %51, %1
%55 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0))
%56 = icmp eq i32 %55, 0
br i1 %56, label %110, label %57
57: ; preds = %54, %1
%58 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%59 = icmp eq i32 %58, 0
br i1 %59, label %110, label %60
60: ; preds = %57, %1
%61 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%62 = icmp eq i32 %61, 0
br i1 %62, label %110, label %63
63: ; preds = %60, %1
%64 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%65 = icmp eq i32 %64, 0
br i1 %65, label %110, label %66
66: ; preds = %63, %1
%67 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.21, i64 0, i64 0))
%68 = icmp eq i32 %67, 0
br i1 %68, label %110, label %69
69: ; preds = %66, %1
%70 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
%71 = icmp eq i32 %70, 0
br i1 %71, label %110, label %72
72: ; preds = %69, %1
%73 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(13) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.23, i64 0, i64 0))
%74 = icmp eq i32 %73, 0
br i1 %74, label %110, label %75
75: ; preds = %72, %1
%76 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.24, i64 0, i64 0))
%77 = icmp eq i32 %76, 0
br i1 %77, label %110, label %78
78: ; preds = %75, %1
%79 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0))
%80 = icmp eq i32 %79, 0
br i1 %80, label %110, label %81
81: ; preds = %78, %1
%82 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
%83 = icmp eq i32 %82, 0
br i1 %83, label %110, label %84
84: ; preds = %81, %1
%85 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
%86 = icmp eq i32 %85, 0
br i1 %86, label %110, label %87
87: ; preds = %84, %1
%88 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0))
%89 = icmp eq i32 %88, 0
br i1 %89, label %110, label %90
90: ; preds = %87, %1
%91 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0))
%92 = icmp eq i32 %91, 0
br i1 %92, label %110, label %93
93: ; preds = %90, %1
%94 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%95 = icmp eq i32 %94, 0
br i1 %95, label %110, label %96
96: ; preds = %93, %1
%97 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0))
%98 = icmp eq i32 %97, 0
br i1 %98, label %110, label %99
99: ; preds = %96, %1
%100 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.32, i64 0, i64 0))
%101 = icmp eq i32 %100, 0
br i1 %101, label %110, label %102
102: ; preds = %99, %1
%103 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(13) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.33, i64 0, i64 0))
%104 = icmp eq i32 %103, 0
br i1 %104, label %110, label %105
105: ; preds = %102, %1
%106 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.34, i64 0, i64 0))
%107 = icmp eq i32 %106, 0
br i1 %107, label %110, label %108
108: ; preds = %105, %1
%109 = tail call i32 (...) @printhelp()
br label %110
110: ; preds = %105, %102, %99, %96, %93, %90, %87, %84, %81, %78, %75, %72, %69, %66, %63, %60, %57, %54, %51, %48, %45, %42, %39, %36, %33, %30, %27, %24, %21, %18, %15, %12, %9, %6, %3, %108
%111 = phi i32 [ 1, %108 ], [ 352, %3 ], [ 99, %6 ], [ 513, %9 ], [ 617, %12 ], [ 185, %15 ], [ 599, %18 ], [ 703, %21 ], [ 542, %24 ], [ 104, %27 ], [ 203, %30 ], [ 289, %33 ], [ 418, %36 ], [ 674, %39 ], [ 214, %42 ], [ 516, %45 ], [ 740, %48 ], [ 219, %51 ], [ 414, %54 ], [ 326, %57 ], [ 318, %60 ], [ 435, %63 ], [ 1177, %66 ], [ 1083, %69 ], [ 1335, %72 ], [ 437, %75 ], [ 1098, %78 ], [ 329, %81 ], [ 1079, %84 ], [ 450, %87 ], [ 672, %90 ], [ 328, %93 ], [ 524, %96 ], [ 633, %99 ], [ 1277, %102 ], [ 867, %105 ]
ret i32 %111
}