#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 */
scalar_t__ isblank(char);
int nextToken(char **str, char **c, int *count) {
  char item;
  item = **str;
  while (isblank(item))
    item = *(++*str);
  *c = *str;
  (*str)++;
  *count = 1;
  switch (**c) {
  case '+':
    return (100);
  case '-':
    return (101);
  case '*':
    return (102);
  case '/':
    return (103);
  case '%':
    return (104);
  case '(':
    return (110);
  case ')':
    return (111);
  case 'V':
    return (300);
  case '^':
    return (403);
  case '&':
    return (401);
  case '|':
    return (402);
  case '~':
    return (400);
  case '0':
    if (*(*str) == 'x') {
      (*str)++;
      *count = 2;
      return (8);
    }
    return (11);
  case '<':
    *count = 2;
    switch (*(*str)++) {
    case '<':
      return (404);
    }
  case '>':
    *count = 2;
    switch (*(*str)++) {
    case '>':
      return (405);
    }
  case 'B':
    *count = 2;
    switch (*(*str)++) {
    case '0':
      return (200);
    case '1':
      return (201);
    case '2':
      return (202);
    case '3':
      return (203);
    case '4':
      return (204);
    case '5':
      return (205);
    case '6':
      return (206);
    case '7':
      return (207);
    case '8':
      return (208);
    case '9':
      return (209);
    case 'P':
      return (220);
    }
  case 'P':
    *count = 2;
    switch (*(*str)++) {
    case '0':
      return (210);
    case '1':
      return (211);
    case '2':
      return (212);
    case '3':
      return (213);
    case '4':
      return (214);
    case '5':
      return (215);
    case '6':
      return (216);
    case '7':
      return (217);
    case '8':
      return (218);
    case '9':
      return (219);
    }
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    return (11);
  case 'a':
  case 'b':
  case 'c':
  case 'd':
  case 'e':
  case 'f':
    return (10);
  case '.':
    return (12);
  case '\0':
    return (0);
  default:
    return (-100);
  }
}


x86 assembly (clang, -O0):
<nextToken>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
mov    (%rax),%al
mov    %al,-0x21(%rbp)
movsbl -0x21(%rbp),%edi
call   1030 <isblank@plt>
cmp    $0x0,%rax
je     115f <nextToken+0x4f>
mov    -0x10(%rbp),%rcx
mov    (%rcx),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,(%rcx)
mov    0x1(%rax),%al
mov    %al,-0x21(%rbp)
jmp    1130 <nextToken+0x20>
mov    -0x10(%rbp),%rax
mov    (%rax),%rcx
mov    -0x18(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x10(%rbp),%rax
mov    (%rax),%rcx
add    $0x1,%rcx
mov    %rcx,(%rax)
mov    -0x20(%rbp),%rax
movl   $0x1,(%rax)
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
movsbl (%rax),%eax
mov    %eax,%ecx
mov    %rcx,-0x30(%rbp)
sub    $0x7e,%eax
ja     14b9 <nextToken+0x3a9>
mov    -0x30(%rbp),%rax
lea    0xe57(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x64,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x65,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x66,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x67,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x68,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x6e,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x6f,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x12c,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x193,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x191,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x192,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x190,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
movsbl (%rax),%eax
cmp    $0x78,%eax
jne    1279 <nextToken+0x169>
mov    -0x10(%rbp),%rax
mov    (%rax),%rcx
add    $0x1,%rcx
mov    %rcx,(%rax)
mov    -0x20(%rbp),%rax
movl   $0x2,(%rax)
movl   $0x8,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xb,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
mov    -0x20(%rbp),%rax
movl   $0x2,(%rax)
mov    -0x10(%rbp),%rcx
mov    (%rcx),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,(%rcx)
mov    (%rax),%al
sub    $0x3c,%al
jne    12bb <nextToken+0x1ab>
jmp    12af <nextToken+0x19f>
movl   $0x194,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
jmp    12c0 <nextToken+0x1b0>
mov    -0x20(%rbp),%rax
movl   $0x2,(%rax)
mov    -0x10(%rbp),%rcx
mov    (%rcx),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,(%rcx)
mov    (%rax),%al
sub    $0x3e,%al
jne    12f6 <nextToken+0x1e6>
jmp    12ea <nextToken+0x1da>
movl   $0x195,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
jmp    12fb <nextToken+0x1eb>
mov    -0x20(%rbp),%rax
movl   $0x2,(%rax)
mov    -0x10(%rbp),%rcx
mov    (%rcx),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,(%rcx)
movsbl (%rax),%eax
add    $0xffffffd0,%eax
mov    %eax,%ecx
mov    %rcx,-0x38(%rbp)
sub    $0x20,%eax
ja     13c3 <nextToken+0x2b3>
mov    -0x38(%rbp),%rax
lea    0xec6(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xc8,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xc9,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xca,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xcb,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xcc,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xcd,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xce,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xcf,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd0,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd1,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xdc,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
jmp    13c8 <nextToken+0x2b8>
mov    -0x20(%rbp),%rax
movl   $0x2,(%rax)
mov    -0x10(%rbp),%rcx
mov    (%rcx),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,(%rcx)
movsbl (%rax),%eax
add    $0xffffffd0,%eax
mov    %eax,%ecx
mov    %rcx,-0x40(%rbp)
sub    $0x9,%eax
ja     1484 <nextToken+0x374>
mov    -0x40(%rbp),%rax
lea    0xe7d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xd2,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd3,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd4,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd5,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd6,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd7,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd8,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xd9,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xda,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xdb,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
jmp    1489 <nextToken+0x379>
movl   $0xb,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xa,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xc,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0x0,-0x4(%rbp)
jmp    14c0 <nextToken+0x3b0>
movl   $0xffffff9c,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<nextToken>:
push   %r15
push   %r14
push   %rbx
mov    %rdx,%r14
mov    %rsi,%r15
mov    %rdi,%rbx
mov    (%rdi),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
call   1030 <isblank@plt>
test   %rax,%rax
je     114a <nextToken+0x3a>
mov    (%rbx),%rax
lea    0x1(%rax),%rcx
mov    %rcx,(%rbx)
movsbl 0x1(%rax),%edi
jmp    1130 <nextToken+0x20>
mov    (%rbx),%rax
mov    %rax,(%r15)
mov    (%rbx),%rdx
lea    0x1(%rdx),%rcx
mov    %rcx,(%rbx)
movl   $0x1,(%r14)
mov    (%r15),%rax
movsbl (%rax),%esi
cmp    $0x7e,%esi
ja     1197 <nextToken+0x87>
mov    $0x64,%eax
lea    0xe88(%rip),%rdi
movslq (%rdi,%rsi,4),%rsi
add    %rdi,%rsi
jmp    *%rsi
mov    $0xb,%eax
jmp    118d <nextToken+0x7d>
mov    $0xa,%eax
pop    %rbx
pop    %r14
pop    %r15
ret
xor    %eax,%eax
jmp    118d <nextToken+0x7d>
mov    $0xffffff9c,%eax
jmp    118d <nextToken+0x7d>
mov    $0x68,%eax
jmp    118d <nextToken+0x7d>
mov    $0x191,%eax
jmp    118d <nextToken+0x7d>
mov    $0x6e,%eax
jmp    118d <nextToken+0x7d>
mov    $0x6f,%eax
jmp    118d <nextToken+0x7d>
mov    $0x66,%eax
jmp    118d <nextToken+0x7d>
mov    $0x65,%eax
jmp    118d <nextToken+0x7d>
mov    $0xc,%eax
jmp    118d <nextToken+0x7d>
mov    $0x67,%eax
jmp    118d <nextToken+0x7d>
mov    $0xb,%eax
cmpb   $0x78,(%rcx)
jne    118d <nextToken+0x7d>
add    $0x2,%rdx
mov    %rdx,(%rbx)
movl   $0x2,(%r14)
mov    $0x8,%eax
jmp    118d <nextToken+0x7d>
movl   $0x2,(%r14)
lea    0x2(%rdx),%rcx
mov    %rcx,(%rbx)
mov    $0x194,%eax
cmpb   $0x3c,0x1(%rdx)
je     118d <nextToken+0x7d>
movl   $0x2,(%r14)
lea    0x1(%rcx),%rdx
mov    %rdx,(%rbx)
mov    $0x195,%eax
cmpb   $0x3e,(%rcx)
mov    %rdx,%rcx
je     118d <nextToken+0x7d>
mov    %rcx,%rax
movl   $0x2,(%r14)
add    $0x1,%rcx
mov    %rcx,(%rbx)
movsbl (%rax),%edx
add    $0xffffffd0,%edx
cmp    $0x20,%edx
ja     126c <nextToken+0x15c>
mov    $0xc8,%eax
lea    0xfa3(%rip),%rsi
movslq (%rsi,%rdx,4),%rdx
add    %rsi,%rdx
jmp    *%rdx
mov    $0xc9,%eax
jmp    118d <nextToken+0x7d>
movl   $0x2,(%r14)
lea    0x1(%rcx),%rax
mov    %rax,(%rbx)
movsbl (%rcx),%eax
lea    -0x30(%rax),%ecx
cmp    $0xa,%ecx
jae    1181 <nextToken+0x71>
add    $0xa2,%eax
jmp    118d <nextToken+0x7d>
mov    $0x12c,%eax
jmp    118d <nextToken+0x7d>
mov    $0x193,%eax
jmp    118d <nextToken+0x7d>
mov    $0x192,%eax
jmp    118d <nextToken+0x7d>
mov    $0x190,%eax
jmp    118d <nextToken+0x7d>
mov    $0xca,%eax
jmp    118d <nextToken+0x7d>
mov    $0xcb,%eax
jmp    118d <nextToken+0x7d>
mov    $0xcc,%eax
jmp    118d <nextToken+0x7d>
mov    $0xcd,%eax
jmp    118d <nextToken+0x7d>
mov    $0xce,%eax
jmp    118d <nextToken+0x7d>
mov    $0xcf,%eax
jmp    118d <nextToken+0x7d>
mov    $0xd0,%eax
jmp    118d <nextToken+0x7d>
mov    $0xd1,%eax
jmp    118d <nextToken+0x7d>
mov    $0xdc,%eax
jmp    118d <nextToken+0x7d>

LLVM IR (-O0):
define i32 @nextToken(i8** %0, i8** %1, i32* %2) {
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i8**
%7 = alloca i32*
%8 = alloca i8
store i8** %0, i8*** %5
store i8** %1, i8*** %6
store i32* %2, i32** %7
%9 = load i8**, i8*** %5
%10 = load i8*, i8** %9
%11 = load i8, i8* %10
store i8 %11, i8* %8
br label %12
12: ; preds = %16, %3
%13 = load i8, i8* %8
%14 = call i64 @isblank(i8 signext %13)
%15 = icmp ne i64 %14, 0
br i1 %15, label %16, label %21
16: ; preds = %12
%17 = load i8**, i8*** %5
%18 = load i8*, i8** %17
%19 = getelementptr inbounds i8, i8* %18, i32 1
store i8* %19, i8** %17
%20 = load i8, i8* %19
store i8 %20, i8* %8
br label %12
21: ; preds = %12
%22 = load i8**, i8*** %5
%23 = load i8*, i8** %22
%24 = load i8**, i8*** %6
store i8* %23, i8** %24
%25 = load i8**, i8*** %5
%26 = load i8*, i8** %25
%27 = getelementptr inbounds i8, i8* %26, i32 1
store i8* %27, i8** %25
%28 = load i32*, i32** %7
store i32 1, i32* %28
%29 = load i8**, i8*** %6
%30 = load i8*, i8** %29
%31 = load i8, i8* %30
%32 = sext i8 %31 to i32
switch i32 %32, label %116 [
i32 43, label %33
i32 45, label %34
i32 42, label %35
i32 47, label %36
i32 37, label %37
i32 40, label %38
i32 41, label %39
i32 86, label %40
i32 94, label %41
i32 38, label %42
i32 124, label %43
i32 126, label %44
i32 48, label %45
i32 60, label %57
i32 62, label %66
i32 66, label %75
i32 80, label %94
i32 49, label %112
i32 50, label %112
i32 51, label %112
i32 52, label %112
i32 53, label %112
i32 54, label %112
i32 55, label %112
i32 56, label %112
i32 57, label %112
i32 97, label %113
i32 98, label %113
i32 99, label %113
i32 100, label %113
i32 101, label %113
i32 102, label %113
i32 46, label %114
i32 0, label %115
]
33: ; preds = %21
store i32 100, i32* %4
br label %117
34: ; preds = %21
store i32 101, i32* %4
br label %117
35: ; preds = %21
store i32 102, i32* %4
br label %117
36: ; preds = %21
store i32 103, i32* %4
br label %117
37: ; preds = %21
store i32 104, i32* %4
br label %117
38: ; preds = %21
store i32 110, i32* %4
br label %117
39: ; preds = %21
store i32 111, i32* %4
br label %117
40: ; preds = %21
store i32 300, i32* %4
br label %117
41: ; preds = %21
store i32 403, i32* %4
br label %117
42: ; preds = %21
store i32 401, i32* %4
br label %117
43: ; preds = %21
store i32 402, i32* %4
br label %117
44: ; preds = %21
store i32 400, i32* %4
br label %117
45: ; preds = %21
%46 = load i8**, i8*** %5
%47 = load i8*, i8** %46
%48 = load i8, i8* %47
%49 = sext i8 %48 to i32
%50 = icmp eq i32 %49, 120
br i1 %50, label %51, label %56
51: ; preds = %45
%52 = load i8**, i8*** %5
%53 = load i8*, i8** %52
%54 = getelementptr inbounds i8, i8* %53, i32 1
store i8* %54, i8** %52
%55 = load i32*, i32** %7
store i32 2, i32* %55
store i32 8, i32* %4
br label %117
56: ; preds = %45
store i32 11, i32* %4
br label %117
57: ; preds = %21
%58 = load i32*, i32** %7
store i32 2, i32* %58
%59 = load i8**, i8*** %5
%60 = load i8*, i8** %59
%61 = getelementptr inbounds i8, i8* %60, i32 1
store i8* %61, i8** %59
%62 = load i8, i8* %60
%63 = sext i8 %62 to i32
switch i32 %63, label %65 [
i32 60, label %64
]
64: ; preds = %57
store i32 404, i32* %4
br label %117
65: ; preds = %57
br label %66
66: ; preds = %21, %65
%67 = load i32*, i32** %7
store i32 2, i32* %67
%68 = load i8**, i8*** %5
%69 = load i8*, i8** %68
%70 = getelementptr inbounds i8, i8* %69, i32 1
store i8* %70, i8** %68
%71 = load i8, i8* %69
%72 = sext i8 %71 to i32
switch i32 %72, label %74 [
i32 62, label %73
]
73: ; preds = %66
store i32 405, i32* %4
br label %117
74: ; preds = %66
br label %75
75: ; preds = %21, %74
%76 = load i32*, i32** %7
store i32 2, i32* %76
%77 = load i8**, i8*** %5
%78 = load i8*, i8** %77
%79 = getelementptr inbounds i8, i8* %78, i32 1
store i8* %79, i8** %77
%80 = load i8, i8* %78
%81 = sext i8 %80 to i32
switch i32 %81, label %93 [
i32 48, label %82
i32 49, label %83
i32 50, label %84
i32 51, label %85
i32 52, label %86
i32 53, label %87
i32 54, label %88
i32 55, label %89
i32 56, label %90
i32 57, label %91
i32 80, label %92
]
82: ; preds = %75
store i32 200, i32* %4
br label %117
83: ; preds = %75
store i32 201, i32* %4
br label %117
84: ; preds = %75
store i32 202, i32* %4
br label %117
85: ; preds = %75
store i32 203, i32* %4
br label %117
86: ; preds = %75
store i32 204, i32* %4
br label %117
87: ; preds = %75
store i32 205, i32* %4
br label %117
88: ; preds = %75
store i32 206, i32* %4
br label %117
89: ; preds = %75
store i32 207, i32* %4
br label %117
90: ; preds = %75
store i32 208, i32* %4
br label %117
91: ; preds = %75
store i32 209, i32* %4
br label %117
92: ; preds = %75
store i32 220, i32* %4
br label %117
93: ; preds = %75
br label %94
94: ; preds = %21, %93
%95 = load i32*, i32** %7
store i32 2, i32* %95
%96 = load i8**, i8*** %5
%97 = load i8*, i8** %96
%98 = getelementptr inbounds i8, i8* %97, i32 1
store i8* %98, i8** %96
%99 = load i8, i8* %97
%100 = sext i8 %99 to i32
switch i32 %100, label %111 [
i32 48, label %101
i32 49, label %102
i32 50, label %103
i32 51, label %104
i32 52, label %105
i32 53, label %106
i32 54, label %107
i32 55, label %108
i32 56, label %109
i32 57, label %110
]
101: ; preds = %94
store i32 210, i32* %4
br label %117
102: ; preds = %94
store i32 211, i32* %4
br label %117
103: ; preds = %94
store i32 212, i32* %4
br label %117
104: ; preds = %94
store i32 213, i32* %4
br label %117
105: ; preds = %94
store i32 214, i32* %4
br label %117
106: ; preds = %94
store i32 215, i32* %4
br label %117
107: ; preds = %94
store i32 216, i32* %4
br label %117
108: ; preds = %94
store i32 217, i32* %4
br label %117
109: ; preds = %94
store i32 218, i32* %4
br label %117
110: ; preds = %94
store i32 219, i32* %4
br label %117
111: ; preds = %94
br label %112
112: ; preds = %21, %21, %21, %21, %21, %21, %21, %21, %21, %111
store i32 11, i32* %4
br label %117
113: ; preds = %21, %21, %21, %21, %21, %21
store i32 10, i32* %4
br label %117
114: ; preds = %21
store i32 12, i32* %4
br label %117
115: ; preds = %21
store i32 0, i32* %4
br label %117
116: ; preds = %21
store i32 -100, i32* %4
br label %117
117: ; preds = %116, %115, %114, %113, %112, %110, %109, %108, %107, %106, %105, %104, %103, %102, %101, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %73, %64, %56, %51, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33
%118 = load i32, i32* %4
ret i32 %118
}

LLVM IR (-O2):
define i32 @nextToken(i8** nocapture %0, i8** nocapture %1, i32* nocapture writeonly %2) {
%4 = load i8*, i8** %0
%5 = load i8, i8* %4
%6 = tail call i64 @isblank(i8 signext %5)
%7 = icmp eq i64 %6, 0
br i1 %7, label %14, label %8
8: ; preds = %3, %8
%9 = load i8*, i8** %0
%10 = getelementptr inbounds i8, i8* %9, i64 1
store i8* %10, i8** %0
%11 = load i8, i8* %10
%12 = tail call i64 @isblank(i8 signext %11)
%13 = icmp eq i64 %12, 0
br i1 %13, label %14, label %8
14: ; preds = %8, %3
%15 = load i8*, i8** %0
store i8* %15, i8** %1
%16 = load i8*, i8** %0
%17 = getelementptr inbounds i8, i8* %16, i64 1
store i8* %17, i8** %0
store i32 1, i32* %2
%18 = load i8*, i8** %1
%19 = load i8, i8* %18
%20 = sext i8 %19 to i32
switch i32 %20, label %72 [
i32 43, label %75
i32 45, label %21
i32 42, label %22
i32 47, label %23
i32 37, label %24
i32 40, label %25
i32 41, label %26
i32 86, label %27
i32 94, label %28
i32 38, label %29
i32 124, label %30
i32 126, label %31
i32 48, label %32
i32 60, label %37
i32 62, label %41
i32 66, label %46
i32 80, label %61
i32 49, label %68
i32 50, label %68
i32 51, label %68
i32 52, label %68
i32 53, label %68
i32 54, label %68
i32 55, label %68
i32 56, label %68
i32 57, label %68
i32 97, label %69
i32 98, label %69
i32 99, label %69
i32 100, label %69
i32 101, label %69
i32 102, label %69
i32 46, label %70
i32 0, label %71
]
21: ; preds = %14
br label %75
22: ; preds = %14
br label %75
23: ; preds = %14
br label %75
24: ; preds = %14
br label %75
25: ; preds = %14
br label %75
26: ; preds = %14
br label %75
27: ; preds = %14
br label %75
28: ; preds = %14
br label %75
29: ; preds = %14
br label %75
30: ; preds = %14
br label %75
31: ; preds = %14
br label %75
32: ; preds = %14
%33 = load i8, i8* %17
%34 = icmp eq i8 %33, 120
br i1 %34, label %35, label %75
35: ; preds = %32
%36 = getelementptr inbounds i8, i8* %16, i64 2
store i8* %36, i8** %0
store i32 2, i32* %2
br label %75
37: ; preds = %14
store i32 2, i32* %2
%38 = getelementptr inbounds i8, i8* %16, i64 2
store i8* %38, i8** %0
%39 = load i8, i8* %17
%40 = icmp eq i8 %39, 60
br i1 %40, label %75, label %41
41: ; preds = %37, %14
%42 = phi i8* [ %38, %37 ], [ %17, %14 ]
store i32 2, i32* %2
%43 = getelementptr inbounds i8, i8* %42, i64 1
store i8* %43, i8** %0
%44 = load i8, i8* %42
%45 = icmp eq i8 %44, 62
br i1 %45, label %75, label %46
46: ; preds = %41, %14
%47 = phi i8* [ %43, %41 ], [ %17, %14 ]
store i32 2, i32* %2
%48 = getelementptr inbounds i8, i8* %47, i64 1
store i8* %48, i8** %0
%49 = load i8, i8* %47
%50 = sext i8 %49 to i32
switch i32 %50, label %61 [
i32 48, label %75
i32 49, label %51
i32 50, label %52
i32 51, label %53
i32 52, label %54
i32 53, label %55
i32 54, label %56
i32 55, label %57
i32 56, label %58
i32 57, label %59
i32 80, label %60
]
51: ; preds = %46
br label %75
52: ; preds = %46
br label %75
53: ; preds = %46
br label %75
54: ; preds = %46
br label %75
55: ; preds = %46
br label %75
56: ; preds = %46
br label %75
57: ; preds = %46
br label %75
58: ; preds = %46
br label %75
59: ; preds = %46
br label %75
60: ; preds = %46
br label %75
61: ; preds = %46, %14
%62 = phi i8* [ %48, %46 ], [ %17, %14 ]
store i32 2, i32* %2
%63 = getelementptr inbounds i8, i8* %62, i64 1
store i8* %63, i8** %0
%64 = load i8, i8* %62
%65 = sext i8 %64 to i32
%66 = add nsw i32 %65, -48
%67 = icmp ult i32 %66, 10
br i1 %67, label %73, label %68
68: ; preds = %61, %14, %14, %14, %14, %14, %14, %14, %14, %14
br label %75
69: ; preds = %14, %14, %14, %14, %14, %14
br label %75
70: ; preds = %14
br label %75
71: ; preds = %14
br label %75
72: ; preds = %14
br label %75
73: ; preds = %61
%74 = add nsw i32 %65, 162
br label %75
75: ; preds = %73, %46, %41, %37, %32, %14, %72, %71, %70, %69, %68, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %35, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21
%76 = phi i32 [ -100, %72 ], [ 0, %71 ], [ 12, %70 ], [ 10, %69 ], [ 11, %68 ], [ 220, %60 ], [ 209, %59 ], [ 208, %58 ], [ 207, %57 ], [ 206, %56 ], [ 205, %55 ], [ 204, %54 ], [ 203, %53 ], [ 202, %52 ], [ 201, %51 ], [ 8, %35 ], [ 400, %31 ], [ 402, %30 ], [ 401, %29 ], [ 403, %28 ], [ 300, %27 ], [ 111, %26 ], [ 110, %25 ], [ 104, %24 ], [ 103, %23 ], [ 102, %22 ], [ 101, %21 ], [ 100, %14 ], [ 11, %32 ], [ 404, %37 ], [ 405, %41 ], [ 200, %46 ], [ %74, %73 ]
ret i32 %76
}