#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*/ exit(int);
int isprint(int);
int IsPrint(int enc, int c) {
  if (enc == 0)
    return isprint(c);
  if (c >= 0x20 && c <= 0x7e)
    return 1;
  switch (enc) {
  case 1:
    if (c >= 0x09 && c <= 0x0d)
      return 1;
    if (c == 0x85)
      return 1;
  case 2:
  case 3:
  case 5:
  case 6:
  case 10:
  case 11:
  case 13:
  case 14:
  case 15:
  case 16:
    if (c >= 0xa0 && c <= 0xff)
      return 1;
    break;
  case 4:
    if (c >= 0xa0) {
      if (c == 0xa5 || c == 0xae || c == 0xbe || c == 0xc3 || c == 0xd0 ||
          c == 0xe3 || c == 0xf0)
        return 0;
      else
        return 1;
    }
    break;
  case 7:
    if (c == 0xa0)
      return 1;
    if (c == 0xa4 || c == 0xac || c == 0xad || c == 0xbb || c == 0xbf)
      return 1;
    if (c >= 0xc1 && c <= 0xda)
      return 1;
    if (c >= 0xe0 && c <= 0xf2)
      return 1;
    break;
  case 8:
    if (c >= 0xa0 && c <= 0xfe && c != 0xa4 && c != 0xa5 && c != 0xaa &&
        c != 0xae && c != 0xd2)
      return 1;
    break;
  case 9:
    if (c >= 0xa0 && c <= 0xfa) {
      if (c >= 0xbf && c <= 0xde)
        return 0;
      if (c == 0xa1)
        return 0;
      return 1;
    }
    break;
  case 12:
    if (c >= 0xa0 && c <= 0xda)
      return 1;
    if (c >= 0xdf && c <= 0xfb)
      return 1;
    break;
  case 17:
    if (c == 0xa0)
      return 1;
    if (c >= 0xc0 && c <= 0xff)
      return 1;
    break;
  case 18:
    if (c >= 0x80 && c <= 0xff)
      return 1;
    break;
  default:
    exit(-1);
  }
  return 0;
}


x86 assembly (clang, -O0):
<IsPrint>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jne    1148 <IsPrint+0x28>
mov    -0xc(%rbp),%edi
call   1030 <isprint@plt>
mov    %eax,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0x20,-0xc(%rbp)
jl     1168 <IsPrint+0x48>
cmpl   $0x7e,-0xc(%rbp)
jg     1168 <IsPrint+0x48>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x11,%eax
ja     14cc <IsPrint+0x3ac>
mov    -0x18(%rbp),%rax
lea    0xe78(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cmpl   $0x9,-0xc(%rbp)
jl     11b1 <IsPrint+0x91>
cmpl   $0xd,-0xc(%rbp)
jg     11b1 <IsPrint+0x91>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0x85,-0xc(%rbp)
jne    11ca <IsPrint+0xaa>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    11cf <IsPrint+0xaf>
cmpl   $0xa0,-0xc(%rbp)
jl     11f5 <IsPrint+0xd5>
cmpl   $0xff,-0xc(%rbp)
jg     11f5 <IsPrint+0xd5>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0xa0,-0xc(%rbp)
jl     127a <IsPrint+0x15a>
cmpl   $0xa5,-0xc(%rbp)
je     1262 <IsPrint+0x142>
cmpl   $0xae,-0xc(%rbp)
je     1262 <IsPrint+0x142>
cmpl   $0xbe,-0xc(%rbp)
je     1262 <IsPrint+0x142>
cmpl   $0xc3,-0xc(%rbp)
je     1262 <IsPrint+0x142>
cmpl   $0xd0,-0xc(%rbp)
je     1262 <IsPrint+0x142>
cmpl   $0xe3,-0xc(%rbp)
je     1262 <IsPrint+0x142>
cmpl   $0xf0,-0xc(%rbp)
jne    126e <IsPrint+0x14e>
movl   $0x0,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0xa0,-0xc(%rbp)
jne    1298 <IsPrint+0x178>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0xa4,-0xc(%rbp)
je     12d9 <IsPrint+0x1b9>
cmpl   $0xac,-0xc(%rbp)
je     12d9 <IsPrint+0x1b9>
cmpl   $0xad,-0xc(%rbp)
je     12d9 <IsPrint+0x1b9>
cmpl   $0xbb,-0xc(%rbp)
je     12d9 <IsPrint+0x1b9>
cmpl   $0xbf,-0xc(%rbp)
jne    12e5 <IsPrint+0x1c5>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0xc1,-0xc(%rbp)
jl     130b <IsPrint+0x1eb>
cmpl   $0xda,-0xc(%rbp)
jg     130b <IsPrint+0x1eb>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0xe0,-0xc(%rbp)
jl     1331 <IsPrint+0x211>
cmpl   $0xf2,-0xc(%rbp)
jg     1331 <IsPrint+0x211>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0xa0,-0xc(%rbp)
jl     139d <IsPrint+0x27d>
cmpl   $0xfe,-0xc(%rbp)
jg     139d <IsPrint+0x27d>
cmpl   $0xa4,-0xc(%rbp)
je     139d <IsPrint+0x27d>
cmpl   $0xa5,-0xc(%rbp)
je     139d <IsPrint+0x27d>
cmpl   $0xaa,-0xc(%rbp)
je     139d <IsPrint+0x27d>
cmpl   $0xae,-0xc(%rbp)
je     139d <IsPrint+0x27d>
cmpl   $0xd2,-0xc(%rbp)
je     139d <IsPrint+0x27d>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0xa0,-0xc(%rbp)
jl     1407 <IsPrint+0x2e7>
cmpl   $0xfa,-0xc(%rbp)
jg     1407 <IsPrint+0x2e7>
cmpl   $0xbf,-0xc(%rbp)
jl     13e2 <IsPrint+0x2c2>
cmpl   $0xde,-0xc(%rbp)
jg     13e2 <IsPrint+0x2c2>
movl   $0x0,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0xa1,-0xc(%rbp)
jne    13fb <IsPrint+0x2db>
movl   $0x0,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0xa0,-0xc(%rbp)
jl     1432 <IsPrint+0x312>
cmpl   $0xda,-0xc(%rbp)
jg     1432 <IsPrint+0x312>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0xdf,-0xc(%rbp)
jl     1458 <IsPrint+0x338>
cmpl   $0xfb,-0xc(%rbp)
jg     1458 <IsPrint+0x338>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0xa0,-0xc(%rbp)
jne    1476 <IsPrint+0x356>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
cmpl   $0xc0,-0xc(%rbp)
jl     149c <IsPrint+0x37c>
cmpl   $0xff,-0xc(%rbp)
jg     149c <IsPrint+0x37c>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
cmpl   $0x80,-0xc(%rbp)
jl     14c7 <IsPrint+0x3a7>
cmpl   $0xff,-0xc(%rbp)
jg     14c7 <IsPrint+0x3a7>
movl   $0x1,-0x4(%rbp)
jmp    14dd <IsPrint+0x3bd>
jmp    14d6 <IsPrint+0x3b6>
mov    $0xffffffff,%edi
call   1040 <exit@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<IsPrint>:
push   %rax
test   %edi,%edi
je     1162 <IsPrint+0x42>
lea    -0x20(%rsi),%ecx
mov    $0x1,%eax
cmp    $0x5f,%ecx
jb     1160 <IsPrint+0x40>
add    $0xffffffff,%edi
cmp    $0x11,%edi
ja     12c8 <IsPrint+0x1a8>
lea    0xebb(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
add    $0xffffff60,%esi
mov    $0x1,%eax
cmp    $0x60,%esi
jb     1160 <IsPrint+0x40>
xor    %eax,%eax
pop    %rcx
ret
mov    %esi,%edi
pop    %rax
jmp    1030 <isprint@plt>
lea    -0xa0(%rsi),%ecx
cmp    $0x60,%ecx
jb     1160 <IsPrint+0x40>
lea    -0x9(%rsi),%ecx
cmp    $0x5,%ecx
jb     1160 <IsPrint+0x40>
mov    $0x1,%eax
cmp    $0x85,%esi
jne    115e <IsPrint+0x3e>
jmp    1160 <IsPrint+0x40>
cmp    $0xa0,%esi
jl     115e <IsPrint+0x3e>
xor    %eax,%eax
lea    -0xa5(%rsi),%ecx
cmp    $0x3e,%ecx
ja     11b1 <IsPrint+0x91>
movabs $0x4000080042000201,%rdx
bt     %rcx,%rdx
jb     1160 <IsPrint+0x40>
cmp    $0xf0,%esi
je     1160 <IsPrint+0x40>
mov    $0x1,%eax
pop    %rcx
ret
lea    -0xa0(%rsi),%ecx
cmp    $0x1f,%ecx
ja     11d5 <IsPrint+0xb5>
mov    $0x88003011,%edx
bt     %ecx,%edx
jb     1160 <IsPrint+0x40>
lea    -0xc1(%rsi),%ecx
cmp    $0x1a,%ecx
jb     1160 <IsPrint+0x40>
add    $0xffffff20,%esi
mov    $0x1,%eax
cmp    $0x13,%esi
jae    115e <IsPrint+0x3e>
jmp    1160 <IsPrint+0x40>
lea    -0xa0(%rsi),%ecx
cmp    $0x5e,%ecx
ja     115e <IsPrint+0x3e>
add    $0xffffff5c,%esi
cmp    $0x2e,%esi
ja     1160 <IsPrint+0x40>
movabs $0x400000000443,%rax
bt     %rsi,%rax
mov    $0x1,%eax
jb     115e <IsPrint+0x3e>
jmp    1160 <IsPrint+0x40>
lea    -0xa0(%rsi),%eax
cmp    $0x5a,%eax
ja     115e <IsPrint+0x3e>
lea    -0xbf(%rsi),%ecx
xor    %eax,%eax
cmp    $0x20,%ecx
jb     1160 <IsPrint+0x40>
xor    %eax,%eax
cmp    $0xa1,%esi
setne  %al
pop    %rcx
ret
lea    -0xa0(%rsi),%ecx
cmp    $0x3b,%ecx
jb     1160 <IsPrint+0x40>
add    $0xffffff21,%esi
mov    $0x1,%eax
cmp    $0x1d,%esi
jae    115e <IsPrint+0x3e>
jmp    1160 <IsPrint+0x40>
cmp    $0xa0,%esi
je     1160 <IsPrint+0x40>
and    $0xffffffc0,%esi
mov    $0x1,%eax
cmp    $0xc0,%esi
jne    115e <IsPrint+0x3e>
jmp    1160 <IsPrint+0x40>
and    $0xffffff80,%esi
mov    $0x1,%eax
cmp    $0x80,%esi
jne    115e <IsPrint+0x3e>
jmp    1160 <IsPrint+0x40>
mov    $0xffffffff,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
define i32 @IsPrint(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
store i32 %0, i32* %4
store i32 %1, i32* %5
%6 = load i32, i32* %4
%7 = icmp eq i32 %6, 0
br i1 %7, label %8, label %11
8: ; preds = %2
%9 = load i32, i32* %5
%10 = call i32 @isprint(i32 %9)
store i32 %10, i32* %3
br label %182
11: ; preds = %2
%12 = load i32, i32* %5
%13 = icmp sge i32 %12, 32
br i1 %13, label %14, label %18
14: ; preds = %11
%15 = load i32, i32* %5
%16 = icmp sle i32 %15, 126
br i1 %16, label %17, label %18
17: ; preds = %14
store i32 1, i32* %3
br label %182
18: ; preds = %14, %11
%19 = load i32, i32* %4
switch i32 %19, label %179 [
i32 1, label %20
i32 2, label %32
i32 3, label %32
i32 5, label %32
i32 6, label %32
i32 10, label %32
i32 11, label %32
i32 13, label %32
i32 14, label %32
i32 15, label %32
i32 16, label %32
i32 4, label %40
i32 7, label %67
i32 8, label %102
i32 9, label %125
i32 12, label %144
i32 17, label %159
i32 18, label %171
]
20: ; preds = %18
%21 = load i32, i32* %5
%22 = icmp sge i32 %21, 9
br i1 %22, label %23, label %27
23: ; preds = %20
%24 = load i32, i32* %5
%25 = icmp sle i32 %24, 13
br i1 %25, label %26, label %27
26: ; preds = %23
store i32 1, i32* %3
br label %182
27: ; preds = %23, %20
%28 = load i32, i32* %5
%29 = icmp eq i32 %28, 133
br i1 %29, label %30, label %31
30: ; preds = %27
store i32 1, i32* %3
br label %182
31: ; preds = %27
br label %32
32: ; preds = %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %31
%33 = load i32, i32* %5
%34 = icmp sge i32 %33, 160
br i1 %34, label %35, label %39
35: ; preds = %32
%36 = load i32, i32* %5
%37 = icmp sle i32 %36, 255
br i1 %37, label %38, label %39
38: ; preds = %35
store i32 1, i32* %3
br label %182
39: ; preds = %35, %32
br label %181
40: ; preds = %18
%41 = load i32, i32* %5
%42 = icmp sge i32 %41, 160
br i1 %42, label %43, label %66
43: ; preds = %40
%44 = load i32, i32* %5
%45 = icmp eq i32 %44, 165
br i1 %45, label %64, label %46
46: ; preds = %43
%47 = load i32, i32* %5
%48 = icmp eq i32 %47, 174
br i1 %48, label %64, label %49
49: ; preds = %46
%50 = load i32, i32* %5
%51 = icmp eq i32 %50, 190
br i1 %51, label %64, label %52
52: ; preds = %49
%53 = load i32, i32* %5
%54 = icmp eq i32 %53, 195
br i1 %54, label %64, label %55
55: ; preds = %52
%56 = load i32, i32* %5
%57 = icmp eq i32 %56, 208
br i1 %57, label %64, label %58
58: ; preds = %55
%59 = load i32, i32* %5
%60 = icmp eq i32 %59, 227
br i1 %60, label %64, label %61
61: ; preds = %58
%62 = load i32, i32* %5
%63 = icmp eq i32 %62, 240
br i1 %63, label %64, label %65
64: ; preds = %61, %58, %55, %52, %49, %46, %43
store i32 0, i32* %3
br label %182
65: ; preds = %61
store i32 1, i32* %3
br label %182
66: ; preds = %40
br label %181
67: ; preds = %18
%68 = load i32, i32* %5
%69 = icmp eq i32 %68, 160
br i1 %69, label %70, label %71
70: ; preds = %67
store i32 1, i32* %3
br label %182
71: ; preds = %67
%72 = load i32, i32* %5
%73 = icmp eq i32 %72, 164
br i1 %73, label %86, label %74
74: ; preds = %71
%75 = load i32, i32* %5
%76 = icmp eq i32 %75, 172
br i1 %76, label %86, label %77
77: ; preds = %74
%78 = load i32, i32* %5
%79 = icmp eq i32 %78, 173
br i1 %79, label %86, label %80
80: ; preds = %77
%81 = load i32, i32* %5
%82 = icmp eq i32 %81, 187
br i1 %82, label %86, label %83
83: ; preds = %80
%84 = load i32, i32* %5
%85 = icmp eq i32 %84, 191
br i1 %85, label %86, label %87
86: ; preds = %83, %80, %77, %74, %71
store i32 1, i32* %3
br label %182
87: ; preds = %83
%88 = load i32, i32* %5
%89 = icmp sge i32 %88, 193
br i1 %89, label %90, label %94
90: ; preds = %87
%91 = load i32, i32* %5
%92 = icmp sle i32 %91, 218
br i1 %92, label %93, label %94
93: ; preds = %90
store i32 1, i32* %3
br label %182
94: ; preds = %90, %87
%95 = load i32, i32* %5
%96 = icmp sge i32 %95, 224
br i1 %96, label %97, label %101
97: ; preds = %94
%98 = load i32, i32* %5
%99 = icmp sle i32 %98, 242
br i1 %99, label %100, label %101
100: ; preds = %97
store i32 1, i32* %3
br label %182
101: ; preds = %97, %94
br label %181
102: ; preds = %18
%103 = load i32, i32* %5
%104 = icmp sge i32 %103, 160
br i1 %104, label %105, label %124
105: ; preds = %102
%106 = load i32, i32* %5
%107 = icmp sle i32 %106, 254
br i1 %107, label %108, label %124
108: ; preds = %105
%109 = load i32, i32* %5
%110 = icmp ne i32 %109, 164
br i1 %110, label %111, label %124
111: ; preds = %108
%112 = load i32, i32* %5
%113 = icmp ne i32 %112, 165
br i1 %113, label %114, label %124
114: ; preds = %111
%115 = load i32, i32* %5
%116 = icmp ne i32 %115, 170
br i1 %116, label %117, label %124
117: ; preds = %114
%118 = load i32, i32* %5
%119 = icmp ne i32 %118, 174
br i1 %119, label %120, label %124
120: ; preds = %117
%121 = load i32, i32* %5
%122 = icmp ne i32 %121, 210
br i1 %122, label %123, label %124
123: ; preds = %120
store i32 1, i32* %3
br label %182
124: ; preds = %120, %117, %114, %111, %108, %105, %102
br label %181
125: ; preds = %18
%126 = load i32, i32* %5
%127 = icmp sge i32 %126, 160
br i1 %127, label %128, label %143
128: ; preds = %125
%129 = load i32, i32* %5
%130 = icmp sle i32 %129, 250
br i1 %130, label %131, label %143
131: ; preds = %128
%132 = load i32, i32* %5
%133 = icmp sge i32 %132, 191
br i1 %133, label %134, label %138
134: ; preds = %131
%135 = load i32, i32* %5
%136 = icmp sle i32 %135, 222
br i1 %136, label %137, label %138
137: ; preds = %134
store i32 0, i32* %3
br label %182
138: ; preds = %134, %131
%139 = load i32, i32* %5
%140 = icmp eq i32 %139, 161
br i1 %140, label %141, label %142
141: ; preds = %138
store i32 0, i32* %3
br label %182
142: ; preds = %138
store i32 1, i32* %3
br label %182
143: ; preds = %128, %125
br label %181
144: ; preds = %18
%145 = load i32, i32* %5
%146 = icmp sge i32 %145, 160
br i1 %146, label %147, label %151
147: ; preds = %144
%148 = load i32, i32* %5
%149 = icmp sle i32 %148, 218
br i1 %149, label %150, label %151
150: ; preds = %147
store i32 1, i32* %3
br label %182
151: ; preds = %147, %144
%152 = load i32, i32* %5
%153 = icmp sge i32 %152, 223
br i1 %153, label %154, label %158
154: ; preds = %151
%155 = load i32, i32* %5
%156 = icmp sle i32 %155, 251
br i1 %156, label %157, label %158
157: ; preds = %154
store i32 1, i32* %3
br label %182
158: ; preds = %154, %151
br label %181
159: ; preds = %18
%160 = load i32, i32* %5
%161 = icmp eq i32 %160, 160
br i1 %161, label %162, label %163
162: ; preds = %159
store i32 1, i32* %3
br label %182
163: ; preds = %159
%164 = load i32, i32* %5
%165 = icmp sge i32 %164, 192
br i1 %165, label %166, label %170
166: ; preds = %163
%167 = load i32, i32* %5
%168 = icmp sle i32 %167, 255
br i1 %168, label %169, label %170
169: ; preds = %166
store i32 1, i32* %3
br label %182
170: ; preds = %166, %163
br label %181
171: ; preds = %18
%172 = load i32, i32* %5
%173 = icmp sge i32 %172, 128
br i1 %173, label %174, label %178
174: ; preds = %171
%175 = load i32, i32* %5
%176 = icmp sle i32 %175, 255
br i1 %176, label %177, label %178
177: ; preds = %174
store i32 1, i32* %3
br label %182
178: ; preds = %174, %171
br label %181
179: ; preds = %18
%180 = call i32 @exit(i32 -1)
unreachable
181: ; preds = %178, %170, %158, %143, %124, %101, %66, %39
store i32 0, i32* %3
br label %182
182: ; preds = %181, %177, %169, %162, %157, %150, %142, %141, %137, %123, %100, %93, %86, %70, %65, %64, %38, %30, %26, %17, %8
%183 = load i32, i32* %3
ret i32 %183
}

LLVM IR (-O2):
define i32 @IsPrint(i32 %0, i32 %1) {
%3 = icmp eq i32 %0, 0
br i1 %3, label %4, label %6
4: ; preds = %2
%5 = tail call i32 @isprint(i32 %1)
br label %58
6: ; preds = %2
%7 = add i32 %1, -32
%8 = icmp ult i32 %7, 95
br i1 %8, label %58, label %9
9: ; preds = %6
switch i32 %0, label %55 [
i32 1, label %10
i32 2, label %14
i32 3, label %14
i32 5, label %14
i32 6, label %14
i32 10, label %14
i32 11, label %14
i32 13, label %14
i32 14, label %14
i32 15, label %14
i32 16, label %14
i32 4, label %17
i32 7, label %21
i32 8, label %28
i32 9, label %32
i32 12, label %41
i32 17, label %47
i32 18, label %52
]
10: ; preds = %9
%11 = add i32 %1, -160
%12 = icmp ult i32 %11, 96
br i1 %12, label %58, label %13
13: ; preds = %10
switch i32 %1, label %57 [
i32 133, label %58
i32 13, label %58
i32 12, label %58
i32 11, label %58
i32 10, label %58
i32 9, label %58
]
14: ; preds = %9, %9, %9, %9, %9, %9, %9, %9, %9, %9
%15 = add i32 %1, -160
%16 = icmp ult i32 %15, 96
br i1 %16, label %58, label %57
17: ; preds = %9
%18 = icmp sgt i32 %1, 159
br i1 %18, label %19, label %57
19: ; preds = %17
switch i32 %1, label %20 [
i32 240, label %58
i32 227, label %58
i32 208, label %58
i32 195, label %58
i32 190, label %58
i32 174, label %58
i32 165, label %58
]
20: ; preds = %19
br label %58
21: ; preds = %9
switch i32 %1, label %22 [
i32 160, label %58
i32 191, label %58
i32 187, label %58
i32 173, label %58
i32 172, label %58
i32 164, label %58
]
22: ; preds = %21
%23 = add i32 %1, -193
%24 = icmp ult i32 %23, 26
%25 = add i32 %1, -224
%26 = icmp ult i32 %25, 19
%27 = or i1 %24, %26
br i1 %27, label %58, label %57
28: ; preds = %9
%29 = add i32 %1, -160
%30 = icmp ult i32 %29, 95
br i1 %30, label %31, label %57
31: ; preds = %28
switch i32 %1, label %58 [
i32 210, label %57
i32 174, label %57
i32 170, label %57
i32 165, label %57
i32 164, label %57
]
32: ; preds = %9
%33 = add i32 %1, -160
%34 = icmp ult i32 %33, 91
br i1 %34, label %35, label %57
35: ; preds = %32
%36 = add nsw i32 %1, -191
%37 = icmp ult i32 %36, 32
br i1 %37, label %58, label %38
38: ; preds = %35
%39 = icmp ne i32 %1, 161
%40 = zext i1 %39 to i32
br label %58
41: ; preds = %9
%42 = add i32 %1, -160
%43 = icmp ult i32 %42, 59
%44 = add i32 %1, -223
%45 = icmp ult i32 %44, 29
%46 = or i1 %43, %45
br i1 %46, label %58, label %57
47: ; preds = %9
%48 = icmp eq i32 %1, 160
%49 = and i32 %1, -64
%50 = icmp eq i32 %49, 192
%51 = or i1 %48, %50
br i1 %51, label %58, label %57
52: ; preds = %9
%53 = and i32 %1, -128
%54 = icmp eq i32 %53, 128
br i1 %54, label %58, label %57
55: ; preds = %9
%56 = tail call i32 @exit(i32 -1)
unreachable
57: ; preds = %13, %47, %41, %22, %31, %31, %31, %31, %31, %28, %52, %32, %17, %14
br label %58
58: ; preds = %13, %13, %13, %13, %13, %13, %10, %21, %21, %21, %21, %21, %21, %52, %47, %41, %38, %35, %31, %22, %19, %19, %19, %19, %19, %19, %19, %14, %6, %57, %20, %4
%59 = phi i32 [ %5, %4 ], [ 0, %57 ], [ 1, %20 ], [ 1, %6 ], [ 1, %13 ], [ 1, %14 ], [ 0, %19 ], [ 0, %19 ], [ 0, %19 ], [ 0, %19 ], [ 0, %19 ], [ 0, %19 ], [ 0, %19 ], [ 1, %21 ], [ 1, %22 ], [ 1, %31 ], [ 0, %35 ], [ %40, %38 ], [ 1, %41 ], [ 1, %47 ], [ 1, %52 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %10 ], [ 1, %13 ], [ 1, %13 ], [ 1, %13 ], [ 1, %13 ], [ 1, %13 ]
ret i32 %59
}