int isanynum(char *str) {
  while ((*str == ' ') || (*str == '\t'))
    str++;
  if (*str == '-') {
    str++;
    while ((*str == ' ') || (*str == '\t'))
      str++;
    while ((*str >= '0') && (*str <= '9'))
      str++;
    if ((*str == 0) || (*str == ' ') || (*str == '\t')) {
      return (1);
    }
  }
  if (*str == '0') {
    str++;
    if ((*str == 'x') || (*str == 'X')) {
      str++;
      switch (*str) {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
      case 'a':
      case 'A':
      case 'b':
      case 'B':
      case 'c':
      case 'C':
      case 'd':
      case 'D':
      case 'e':
      case 'E':
      case 'f':
      case 'F':
        str++;
        break;
      default:
        return (0);
        break;
      }
      while ((*str != 0) && (*str != ' ') && (*str != '\t')) {
        switch (*str) {
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
        case 'a':
        case 'A':
        case 'b':
        case 'B':
        case 'c':
        case 'C':
        case 'd':
        case 'D':
        case 'e':
        case 'E':
        case 'f':
        case 'F':
          str++;
          break;
        default:
          return (0);
          break;
        }
      }
      return (1);
    }
  }
  if ((*str >= '0') || (*str <= '9')) {
    while ((*str != 0) && (*str != ' ') && (*str != '\t')) {
      if ((*str < '0') || (*str > '9'))
        return (0);
      str++;
    }
    return (1);
  }
  return (0);
}


x86 assembly (clang, -O0):
<isanynum>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0x11(%rbp)
je     112d <isanynum+0x2d>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x11(%rbp)
mov    -0x11(%rbp),%al
test   $0x1,%al
jne    113d <isanynum+0x3d>
jmp    114e <isanynum+0x4e>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1108 <isanynum+0x8>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2d,%eax
jne    123c <isanynum+0x13c>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0x12(%rbp)
je     118f <isanynum+0x8f>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x12(%rbp)
mov    -0x12(%rbp),%al
test   $0x1,%al
jne    119f <isanynum+0x9f>
jmp    11b0 <isanynum+0xb0>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    116a <isanynum+0x6a>
jmp    11b5 <isanynum+0xb5>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x30,%ecx
mov    %al,-0x13(%rbp)
jl     11da <isanynum+0xda>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
setle  %al
mov    %al,-0x13(%rbp)
mov    -0x13(%rbp),%al
test   $0x1,%al
jne    11ea <isanynum+0xea>
jmp    11fb <isanynum+0xfb>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    11b5 <isanynum+0xb5>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
je     122b <isanynum+0x12b>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x20,%eax
je     122b <isanynum+0x12b>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
jne    1237 <isanynum+0x137>
movl   $0x1,-0x4(%rbp)
jmp    1468 <isanynum+0x368>
jmp    123c <isanynum+0x13c>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jne    13a9 <isanynum+0x2a9>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x78,%eax
je     1278 <isanynum+0x178>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x58,%eax
jne    13a4 <isanynum+0x2a4>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
mov    %eax,-0x18(%rbp)
add    $0xffffffd0,%eax
sub    $0xa,%eax
jb     12c7 <isanynum+0x1c7>
jmp    129f <isanynum+0x19f>
mov    -0x18(%rbp),%eax
add    $0xffffffbf,%eax
sub    $0x6,%eax
jb     12c7 <isanynum+0x1c7>
jmp    12b3 <isanynum+0x1b3>
mov    -0x18(%rbp),%eax
add    $0xffffff9f,%eax
sub    $0x5,%eax
ja     12d8 <isanynum+0x1d8>
jmp    12c7 <isanynum+0x1c7>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    12e4 <isanynum+0x1e4>
movl   $0x0,-0x4(%rbp)
jmp    1468 <isanynum+0x368>
jmp    12e9 <isanynum+0x1e9>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x19(%rbp)
je     1323 <isanynum+0x223>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x20,%ecx
mov    %al,-0x19(%rbp)
je     1323 <isanynum+0x223>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
setne  %al
mov    %al,-0x19(%rbp)
mov    -0x19(%rbp),%al
test   $0x1,%al
jne    1333 <isanynum+0x233>
jmp    1398 <isanynum+0x298>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
mov    %eax,-0x20(%rbp)
add    $0xffffffd0,%eax
sub    $0xa,%eax
jb     1376 <isanynum+0x276>
jmp    134e <isanynum+0x24e>
mov    -0x20(%rbp),%eax
add    $0xffffffbf,%eax
sub    $0x6,%eax
jb     1376 <isanynum+0x276>
jmp    1362 <isanynum+0x262>
mov    -0x20(%rbp),%eax
add    $0xffffff9f,%eax
sub    $0x5,%eax
ja     1387 <isanynum+0x287>
jmp    1376 <isanynum+0x276>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1393 <isanynum+0x293>
movl   $0x0,-0x4(%rbp)
jmp    1468 <isanynum+0x368>
jmp    12e9 <isanynum+0x1e9>
movl   $0x1,-0x4(%rbp)
jmp    1468 <isanynum+0x368>
jmp    13a9 <isanynum+0x2a9>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jge    13c9 <isanynum+0x2c9>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
jg     1461 <isanynum+0x361>
jmp    13ce <isanynum+0x2ce>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x21(%rbp)
je     1408 <isanynum+0x308>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x20,%ecx
mov    %al,-0x21(%rbp)
je     1408 <isanynum+0x308>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
setne  %al
mov    %al,-0x21(%rbp)
mov    -0x21(%rbp),%al
test   $0x1,%al
jne    1418 <isanynum+0x318>
jmp    1455 <isanynum+0x355>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     1438 <isanynum+0x338>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
jle    1444 <isanynum+0x344>
movl   $0x0,-0x4(%rbp)
jmp    1468 <isanynum+0x368>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    13ce <isanynum+0x2ce>
movl   $0x1,-0x4(%rbp)
jmp    1468 <isanynum+0x368>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<isanynum>:
add    $0x1,%rdi
lea    0xef5(%rip),%rax
nopl   0x0(%rax,%rax,1)
movzbl -0x1(%rdi),%ecx
lea    -0x9(%rcx),%edx
cmp    $0x27,%dl
ja     1181 <isanynum+0x81>
movzbl %dl,%edx
movslq (%rax,%rdx,4),%rdx
add    %rax,%rdx
jmp    *%rdx
add    $0x1,%rdi
jmp    1110 <isanynum+0x10>
xchg   %ax,%ax
add    $0x1,%rdi
movzbl (%rdi),%ecx
cmp    $0x20,%cl
je     1130 <isanynum+0x30>
cmp    $0x9,%cl
je     1130 <isanynum+0x30>
lea    -0x30(%rcx),%eax
cmp    $0x9,%al
ja     115f <isanynum+0x5f>
nopl   0x0(%rax,%rax,1)
movzbl 0x1(%rdi),%ecx
add    $0x1,%rdi
lea    -0x30(%rcx),%eax
cmp    $0xa,%al
jb     1150 <isanynum+0x50>
cmp    $0x20,%cl
ja     11e7 <isanynum+0xe7>
mov    $0x1,%eax
movzbl %cl,%edx
movabs $0x100000201,%rsi
bt     %rdx,%rsi
jae    11e7 <isanynum+0xe7>
ret
add    $0xffffffffffffffff,%rdi
jmp    11e7 <isanynum+0xe7>
mov    (%rdi),%cl
mov    %ecx,%eax
or     $0x20,%al
cmp    $0x78,%al
jne    11e7 <isanynum+0xe7>
movsbl 0x1(%rdi),%edx
xor    %eax,%eax
add    $0xffffffd0,%edx
cmp    $0x36,%edx
ja     1180 <isanynum+0x80>
movabs $0x7e0000007e03ff,%rcx
bt     %rdx,%rcx
jae    1180 <isanynum+0x80>
add    $0x2,%rdi
movabs $0x100000201,%rdx
nopl   (%rax)
movzbl (%rdi),%esi
cmp    $0x20,%rsi
ja     11cf <isanynum+0xcf>
bt     %rsi,%rdx
jb     121d <isanynum+0x11d>
movsbl %sil,%esi
add    $0xffffffd0,%esi
cmp    $0x36,%esi
ja     1180 <isanynum+0x80>
bt     %rsi,%rcx
jae    1180 <isanynum+0x80>
add    $0x1,%rdi
jmp    11c0 <isanynum+0xc0>
add    $0x1,%rdi
movabs $0x100000201,%rax
cmp    $0x20,%cl
jbe    1214 <isanynum+0x114>
nopw   0x0(%rax,%rax,1)
add    $0xc6,%cl
cmp    $0xf6,%cl
jb     1223 <isanynum+0x123>
movzbl (%rdi),%ecx
add    $0x1,%rdi
cmp    $0x20,%cl
ja     1200 <isanynum+0x100>
movzbl %cl,%edx
bt     %rdx,%rax
jae    1200 <isanynum+0x100>
mov    $0x1,%eax
ret
xor    %eax,%eax
ret

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

LLVM IR (-O2):
define i32 @isanynum(i8* nocapture %0) {
br label %2
2: ; preds = %5, %1
%3 = phi i8* [ %0, %1 ], [ %6, %5 ]
%4 = load i8, i8* %3
switch i8 %4, label %27 [
i8 32, label %5
i8 9, label %5
i8 45, label %7
i8 48, label %24
]
5: ; preds = %2, %2
%6 = getelementptr inbounds i8, i8* %3, i64 1
br label %2
7: ; preds = %2, %11
%8 = phi i8* [ %9, %11 ], [ %3, %2 ]
%9 = getelementptr inbounds i8, i8* %8, i64 1
%10 = load i8, i8* %9
switch i8 %10, label %12 [
i8 32, label %11
i8 9, label %11
]
11: ; preds = %7, %7
br label %7
12: ; preds = %7
%13 = add i8 %10, -48
%14 = icmp ult i8 %13, 10
br i1 %14, label %15, label %21
15: ; preds = %12, %15
%16 = phi i8* [ %17, %15 ], [ %9, %12 ]
%17 = getelementptr inbounds i8, i8* %16, i64 1
%18 = load i8, i8* %17
%19 = add i8 %18, -48
%20 = icmp ult i8 %19, 10
br i1 %20, label %15, label %21
21: ; preds = %15, %12
%22 = phi i8 [ %10, %12 ], [ %18, %15 ]
%23 = phi i8* [ %9, %12 ], [ %17, %15 ]
switch i8 %22, label %27 [
i8 0, label %52
i8 32, label %52
i8 9, label %52
]
24: ; preds = %2
%25 = getelementptr inbounds i8, i8* %3, i64 1
%26 = load i8, i8* %25
switch i8 %26, label %27 [
i8 120, label %30
i8 88, label %30
]
27: ; preds = %2, %21, %24
%28 = phi i8 [ %22, %21 ], [ %26, %24 ], [ %4, %2 ]
%29 = phi i8* [ %23, %21 ], [ %25, %24 ], [ %3, %2 ]
br label %43
30: ; preds = %24, %24
%31 = getelementptr inbounds i8, i8* %3, i64 2
%32 = load i8, i8* %31
%33 = sext i8 %32 to i32
switch i32 %33, label %52 [
i32 48, label %34
i32 49, label %34
i32 50, label %34
i32 51, label %34
i32 52, label %34
i32 53, label %34
i32 54, label %34
i32 55, label %34
i32 56, label %34
i32 57, label %34
i32 97, label %34
i32 65, label %34
i32 98, label %34
i32 66, label %34
i32 99, label %34
i32 67, label %34
i32 100, label %34
i32 68, label %34
i32 101, label %34
i32 69, label %34
i32 102, label %34
i32 70, label %34
]
34: ; preds = %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30, %30
%35 = getelementptr inbounds i8, i8* %3, i64 3
br label %36
36: ; preds = %41, %34
%37 = phi i8* [ %35, %34 ], [ %42, %41 ]
%38 = load i8, i8* %37
switch i8 %38, label %39 [
i8 0, label %52
i8 32, label %52
i8 9, label %52
]
39: ; preds = %36
%40 = sext i8 %38 to i32
switch i32 %40, label %52 [
i32 48, label %41
i32 49, label %41
i32 50, label %41
i32 51, label %41
i32 52, label %41
i32 53, label %41
i32 54, label %41
i32 55, label %41
i32 56, label %41
i32 57, label %41
i32 97, label %41
i32 65, label %41
i32 98, label %41
i32 66, label %41
i32 99, label %41
i32 67, label %41
i32 100, label %41
i32 68, label %41
i32 101, label %41
i32 69, label %41
i32 102, label %41
i32 70, label %41
]
41: ; preds = %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39, %39
%42 = getelementptr inbounds i8, i8* %37, i64 1
br label %36
43: ; preds = %27, %50
%44 = phi i8 [ %51, %50 ], [ %28, %27 ]
%45 = phi i8* [ %49, %50 ], [ %29, %27 ]
switch i8 %44, label %46 [
i8 0, label %52
i8 32, label %52
i8 9, label %52
]
46: ; preds = %43
%47 = add i8 %44, -58
%48 = icmp ult i8 %47, -10
%49 = getelementptr inbounds i8, i8* %45, i64 1
br i1 %48, label %52, label %50
50: ; preds = %46
%51 = load i8, i8* %49
br label %43
52: ; preds = %36, %36, %36, %39, %43, %43, %43, %46, %30, %21, %21, %21
%53 = phi i32 [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 0, %30 ], [ 1, %43 ], [ 1, %43 ], [ 1, %43 ], [ 0, %46 ], [ 1, %36 ], [ 1, %36 ], [ 1, %36 ], [ 0, %39 ]
ret i32 %53
}