int check_FAT_dir_entry(const unsigned char *entry,
                        const unsigned int entry_nr) {
  int i;
  if ((entry[0xB] & (1 | 2 | 4 | 8 | 16 | 32)) == (1 | 2 | 4 | 8))
    return 1;
  if (entry[0] == 0) {
    for (i = 0; i < 0x20; i++)
      if (entry[i] != '\0')
        return 2;
    return 0;
  }
  if (entry[0] == 0x20)
    return 2;
  if (entry[0] == 0xE5)
    return 1;
  if (entry_nr < 10 && (entry[0xB] & 8) == 8)
    return 1;
  for (i = 0; i < 8 + 3; i++) {
    const unsigned char car = entry[i];
    if ((car >= 0x06 && car <= 0x1f) || (car >= 0x3a && car <= 0x3f) ||
        (car >= 'a' && car <= 'z'))
      return 2;
    switch (car) {
    case 0x1:
    case 0x2:
    case 0x3:
    case 0x4:
    case '"':
    case '*':
    case '+':
    case ',':
    case '.':
    case '/':
    case '[':
    case '\\':
    case ']':
    case '|':
      return 2;
    default:
      break;
    }
  }
  return 1;
}


x86 assembly (clang, -O0):
<check_FAT_dir_entry>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    -0x10(%rbp),%rax
movzbl 0xb(%rax),%eax
and    $0x3f,%eax
cmp    $0xf,%eax
jne    112b <check_FAT_dir_entry+0x2b>
movl   $0x1,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
mov    -0x10(%rbp),%rax
movzbl (%rax),%eax
cmp    $0x0,%eax
jne    118c <check_FAT_dir_entry+0x8c>
movl   $0x0,-0x18(%rbp)
cmpl   $0x20,-0x18(%rbp)
jge    1180 <check_FAT_dir_entry+0x80>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
movzbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
je     116d <check_FAT_dir_entry+0x6d>
movl   $0x2,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
jmp    1172 <check_FAT_dir_entry+0x72>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1142 <check_FAT_dir_entry+0x42>
movl   $0x0,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
mov    -0x10(%rbp),%rax
movzbl (%rax),%eax
cmp    $0x20,%eax
jne    11a8 <check_FAT_dir_entry+0xa8>
movl   $0x2,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
mov    -0x10(%rbp),%rax
movzbl (%rax),%eax
cmp    $0xe5,%eax
jne    11c6 <check_FAT_dir_entry+0xc6>
movl   $0x1,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
cmpl   $0xa,-0x14(%rbp)
jae    11f0 <check_FAT_dir_entry+0xf0>
mov    -0x10(%rbp),%rax
movzbl 0xb(%rax),%eax
and    $0x8,%eax
cmp    $0x8,%eax
jne    11f0 <check_FAT_dir_entry+0xf0>
movl   $0x1,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
movl   $0x0,-0x18(%rbp)
cmpl   $0xb,-0x18(%rbp)
jge    12b7 <check_FAT_dir_entry+0x1b7>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x19(%rbp)
movzbl -0x19(%rbp),%eax
cmp    $0x6,%eax
jl     1229 <check_FAT_dir_entry+0x129>
movzbl -0x19(%rbp),%eax
cmp    $0x1f,%eax
jle    125d <check_FAT_dir_entry+0x15d>
movzbl -0x19(%rbp),%eax
cmp    $0x3a,%eax
jl     1243 <check_FAT_dir_entry+0x143>
movzbl -0x19(%rbp),%eax
cmp    $0x3f,%eax
jle    125d <check_FAT_dir_entry+0x15d>
movzbl -0x19(%rbp),%eax
cmp    $0x61,%eax
jl     1269 <check_FAT_dir_entry+0x169>
movzbl -0x19(%rbp),%eax
cmp    $0x7a,%eax
jg     1269 <check_FAT_dir_entry+0x169>
movl   $0x2,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
movzbl -0x19(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x7b,%eax
ja     129f <check_FAT_dir_entry+0x19f>
mov    -0x28(%rbp),%rax
lea    0xd76(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x2,-0x4(%rbp)
jmp    12be <check_FAT_dir_entry+0x1be>
jmp    12a4 <check_FAT_dir_entry+0x1a4>
jmp    12a9 <check_FAT_dir_entry+0x1a9>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11f7 <check_FAT_dir_entry+0xf7>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<check_FAT_dir_entry>:
movzbl 0xb(%rdi),%ecx
mov    %ecx,%eax
and    $0x3f,%eax
cmp    $0xf,%eax
jne    1114 <check_FAT_dir_entry+0x14>
mov    $0x1,%eax
ret
mov    (%rdi),%dl
cmp    $0xe5,%dl
je     110e <check_FAT_dir_entry+0xe>
mov    $0x2,%eax
cmp    $0x20,%dl
je     1113 <check_FAT_dir_entry+0x13>
test   %dl,%dl
jne    1216 <check_FAT_dir_entry+0x116>
cmpb   $0x0,0x1(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x2(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x3(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x4(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x5(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x6(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x7(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x8(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x9(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
or     0xa(%rdi),%cl
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0xc(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0xd(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0xe(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0xf(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x10(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x11(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x12(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x13(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x14(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x15(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x16(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x17(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x18(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x19(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x1a(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x1b(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x1c(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x1d(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
cmpb   $0x0,0x1e(%rdi)
jne    1113 <check_FAT_dir_entry+0x13>
xor    %eax,%eax
cmpb   $0x0,0x1f(%rdi)
setne  %al
add    %eax,%eax
ret
cmp    $0x9,%esi
ja     1224 <check_FAT_dir_entry+0x124>
and    $0x8,%ecx
jne    110e <check_FAT_dir_entry+0xe>
lea    -0x6(%rdx),%ecx
cmp    $0x1a,%cl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rdx),%ecx
cmp    $0x6,%cl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rdx),%ecx
cmp    $0x1a,%cl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%dl
cmp    $0x7b,%dl
ja     1263 <check_FAT_dir_entry+0x163>
movzbl %dl,%ecx
lea    0xda6(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x1(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     12a5 <check_FAT_dir_entry+0x1a5>
movzbl %cl,%ecx
lea    0xf54(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x2(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     12e7 <check_FAT_dir_entry+0x1e7>
movzbl %cl,%ecx
lea    0x1102(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x3(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     1329 <check_FAT_dir_entry+0x229>
movzbl %cl,%ecx
lea    0x12b0(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x4(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     136b <check_FAT_dir_entry+0x26b>
movzbl %cl,%ecx
lea    0x145e(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x5(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     13ad <check_FAT_dir_entry+0x2ad>
movzbl %cl,%ecx
lea    0x160c(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x6(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     13ef <check_FAT_dir_entry+0x2ef>
movzbl %cl,%ecx
lea    0x17ba(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x7(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     1431 <check_FAT_dir_entry+0x331>
movzbl %cl,%ecx
lea    0x1968(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x8(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     1473 <check_FAT_dir_entry+0x373>
movzbl %cl,%ecx
lea    0x1b16(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0x9(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     14b5 <check_FAT_dir_entry+0x3b5>
movzbl %cl,%ecx
lea    0x1cc4(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    0xa(%rdi),%cl
lea    -0x6(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x3a(%rcx),%edx
cmp    $0x6,%dl
jb     1113 <check_FAT_dir_entry+0x13>
lea    -0x61(%rcx),%edx
cmp    $0x1a,%dl
jb     1113 <check_FAT_dir_entry+0x13>
add    $0xff,%cl
cmp    $0x7b,%cl
ja     110e <check_FAT_dir_entry+0xe>
movzbl %cl,%ecx
lea    0x1e6e(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx

LLVM IR (-O0):
define i32 @check_FAT_dir_entry(i8* %0, i32 %1) {
%3 = alloca i32
%4 = alloca i8*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i8
store i8* %0, i8** %4
store i32 %1, i32* %5
%8 = load i8*, i8** %4
%9 = getelementptr inbounds i8, i8* %8, i64 11
%10 = load i8, i8* %9
%11 = zext i8 %10 to i32
%12 = and i32 %11, 63
%13 = icmp eq i32 %12, 15
br i1 %13, label %14, label %15
14: ; preds = %2
store i32 1, i32* %3
br label %108
15: ; preds = %2
%16 = load i8*, i8** %4
%17 = getelementptr inbounds i8, i8* %16, i64 0
%18 = load i8, i8* %17
%19 = zext i8 %18 to i32
%20 = icmp eq i32 %19, 0
br i1 %20, label %21, label %39
21: ; preds = %15
store i32 0, i32* %6
br label %22
22: ; preds = %35, %21
%23 = load i32, i32* %6
%24 = icmp slt i32 %23, 32
br i1 %24, label %25, label %38
25: ; preds = %22
%26 = load i8*, i8** %4
%27 = load i32, i32* %6
%28 = sext i32 %27 to i64
%29 = getelementptr inbounds i8, i8* %26, i64 %28
%30 = load i8, i8* %29
%31 = zext i8 %30 to i32
%32 = icmp ne i32 %31, 0
br i1 %32, label %33, label %34
33: ; preds = %25
store i32 2, i32* %3
br label %108
34: ; preds = %25
br label %35
35: ; preds = %34
%36 = load i32, i32* %6
%37 = add nsw i32 %36, 1
store i32 %37, i32* %6
br label %22
38: ; preds = %22
store i32 0, i32* %3
br label %108
39: ; preds = %15
%40 = load i8*, i8** %4
%41 = getelementptr inbounds i8, i8* %40, i64 0
%42 = load i8, i8* %41
%43 = zext i8 %42 to i32
%44 = icmp eq i32 %43, 32
br i1 %44, label %45, label %46
45: ; preds = %39
store i32 2, i32* %3
br label %108
46: ; preds = %39
%47 = load i8*, i8** %4
%48 = getelementptr inbounds i8, i8* %47, i64 0
%49 = load i8, i8* %48
%50 = zext i8 %49 to i32
%51 = icmp eq i32 %50, 229
br i1 %51, label %52, label %53
52: ; preds = %46
store i32 1, i32* %3
br label %108
53: ; preds = %46
%54 = load i32, i32* %5
%55 = icmp ult i32 %54, 10
br i1 %55, label %56, label %64
56: ; preds = %53
%57 = load i8*, i8** %4
%58 = getelementptr inbounds i8, i8* %57, i64 11
%59 = load i8, i8* %58
%60 = zext i8 %59 to i32
%61 = and i32 %60, 8
%62 = icmp eq i32 %61, 8
br i1 %62, label %63, label %64
63: ; preds = %56
store i32 1, i32* %3
br label %108
64: ; preds = %56, %53
store i32 0, i32* %6
br label %65
65: ; preds = %104, %64
%66 = load i32, i32* %6
%67 = icmp slt i32 %66, 11
br i1 %67, label %68, label %107
68: ; preds = %65
%69 = load i8*, i8** %4
%70 = load i32, i32* %6
%71 = sext i32 %70 to i64
%72 = getelementptr inbounds i8, i8* %69, i64 %71
%73 = load i8, i8* %72
store i8 %73, i8* %7
%74 = load i8, i8* %7
%75 = zext i8 %74 to i32
%76 = icmp sge i32 %75, 6
br i1 %76, label %77, label %81
77: ; preds = %68
%78 = load i8, i8* %7
%79 = zext i8 %78 to i32
%80 = icmp sle i32 %79, 31
br i1 %80, label %97, label %81
81: ; preds = %77, %68
%82 = load i8, i8* %7
%83 = zext i8 %82 to i32
%84 = icmp sge i32 %83, 58
br i1 %84, label %85, label %89
85: ; preds = %81
%86 = load i8, i8* %7
%87 = zext i8 %86 to i32
%88 = icmp sle i32 %87, 63
br i1 %88, label %97, label %89
89: ; preds = %85, %81
%90 = load i8, i8* %7
%91 = zext i8 %90 to i32
%92 = icmp sge i32 %91, 97
br i1 %92, label %93, label %98
93: ; preds = %89
%94 = load i8, i8* %7
%95 = zext i8 %94 to i32
%96 = icmp sle i32 %95, 122
br i1 %96, label %97, label %98
97: ; preds = %93, %85, %77
store i32 2, i32* %3
br label %108
98: ; preds = %93, %89
%99 = load i8, i8* %7
%100 = zext i8 %99 to i32
switch i32 %100, label %102 [
i32 1, label %101
i32 2, label %101
i32 3, label %101
i32 4, label %101
i32 34, label %101
i32 42, label %101
i32 43, label %101
i32 44, label %101
i32 46, label %101
i32 47, label %101
i32 91, label %101
i32 92, label %101
i32 93, label %101
i32 124, label %101
]
101: ; preds = %98, %98, %98, %98, %98, %98, %98, %98, %98, %98, %98, %98, %98, %98
store i32 2, i32* %3
br label %108
102: ; preds = %98
br label %103
103: ; preds = %102
br label %104
104: ; preds = %103
%105 = load i32, i32* %6
%106 = add nsw i32 %105, 1
store i32 %106, i32* %6
br label %65
107: ; preds = %65
store i32 1, i32* %3
br label %108
108: ; preds = %107, %101, %97, %63, %52, %45, %38, %33, %14
%109 = load i32, i32* %3
ret i32 %109
}

LLVM IR (-O2):
define i32 @check_FAT_dir_entry(i8* nocapture %0, i32 %1) {
%3 = getelementptr inbounds i8, i8* %0, i64 11
%4 = load i8, i8* %3
%5 = zext i8 %4 to i32
%6 = and i32 %5, 63
%7 = icmp eq i32 %6, 15
br i1 %7, label %270, label %8
8: ; preds = %2
%9 = load i8, i8* %0
switch i8 %9, label %134 [
i8 0, label %10
i8 32, label %270
i8 -27, label %133
]
10: ; preds = %8
%11 = getelementptr inbounds i8, i8* %0, i64 1
%12 = load i8, i8* %11
%13 = icmp eq i8 %12, 0
br i1 %13, label %14, label %270
14: ; preds = %10
%15 = getelementptr inbounds i8, i8* %0, i64 2
%16 = load i8, i8* %15
%17 = icmp eq i8 %16, 0
br i1 %17, label %18, label %270
18: ; preds = %14
%19 = getelementptr inbounds i8, i8* %0, i64 3
%20 = load i8, i8* %19
%21 = icmp eq i8 %20, 0
br i1 %21, label %22, label %270
22: ; preds = %18
%23 = getelementptr inbounds i8, i8* %0, i64 4
%24 = load i8, i8* %23
%25 = icmp eq i8 %24, 0
br i1 %25, label %26, label %270
26: ; preds = %22
%27 = getelementptr inbounds i8, i8* %0, i64 5
%28 = load i8, i8* %27
%29 = icmp eq i8 %28, 0
br i1 %29, label %30, label %270
30: ; preds = %26
%31 = getelementptr inbounds i8, i8* %0, i64 6
%32 = load i8, i8* %31
%33 = icmp eq i8 %32, 0
br i1 %33, label %34, label %270
34: ; preds = %30
%35 = getelementptr inbounds i8, i8* %0, i64 7
%36 = load i8, i8* %35
%37 = icmp eq i8 %36, 0
br i1 %37, label %38, label %270
38: ; preds = %34
%39 = getelementptr inbounds i8, i8* %0, i64 8
%40 = load i8, i8* %39
%41 = icmp eq i8 %40, 0
br i1 %41, label %42, label %270
42: ; preds = %38
%43 = getelementptr inbounds i8, i8* %0, i64 9
%44 = load i8, i8* %43
%45 = icmp eq i8 %44, 0
br i1 %45, label %46, label %270
46: ; preds = %42
%47 = getelementptr inbounds i8, i8* %0, i64 10
%48 = load i8, i8* %47
%49 = icmp eq i8 %48, 0
%50 = icmp eq i8 %4, 0
%51 = select i1 %49, i1 %50, i1 false
br i1 %51, label %52, label %270
52: ; preds = %46
%53 = getelementptr inbounds i8, i8* %0, i64 12
%54 = load i8, i8* %53
%55 = icmp eq i8 %54, 0
br i1 %55, label %56, label %270
56: ; preds = %52
%57 = getelementptr inbounds i8, i8* %0, i64 13
%58 = load i8, i8* %57
%59 = icmp eq i8 %58, 0
br i1 %59, label %60, label %270
60: ; preds = %56
%61 = getelementptr inbounds i8, i8* %0, i64 14
%62 = load i8, i8* %61
%63 = icmp eq i8 %62, 0
br i1 %63, label %64, label %270
64: ; preds = %60
%65 = getelementptr inbounds i8, i8* %0, i64 15
%66 = load i8, i8* %65
%67 = icmp eq i8 %66, 0
br i1 %67, label %68, label %270
68: ; preds = %64
%69 = getelementptr inbounds i8, i8* %0, i64 16
%70 = load i8, i8* %69
%71 = icmp eq i8 %70, 0
br i1 %71, label %72, label %270
72: ; preds = %68
%73 = getelementptr inbounds i8, i8* %0, i64 17
%74 = load i8, i8* %73
%75 = icmp eq i8 %74, 0
br i1 %75, label %76, label %270
76: ; preds = %72
%77 = getelementptr inbounds i8, i8* %0, i64 18
%78 = load i8, i8* %77
%79 = icmp eq i8 %78, 0
br i1 %79, label %80, label %270
80: ; preds = %76
%81 = getelementptr inbounds i8, i8* %0, i64 19
%82 = load i8, i8* %81
%83 = icmp eq i8 %82, 0
br i1 %83, label %84, label %270
84: ; preds = %80
%85 = getelementptr inbounds i8, i8* %0, i64 20
%86 = load i8, i8* %85
%87 = icmp eq i8 %86, 0
br i1 %87, label %88, label %270
88: ; preds = %84
%89 = getelementptr inbounds i8, i8* %0, i64 21
%90 = load i8, i8* %89
%91 = icmp eq i8 %90, 0
br i1 %91, label %92, label %270
92: ; preds = %88
%93 = getelementptr inbounds i8, i8* %0, i64 22
%94 = load i8, i8* %93
%95 = icmp eq i8 %94, 0
br i1 %95, label %96, label %270
96: ; preds = %92
%97 = getelementptr inbounds i8, i8* %0, i64 23
%98 = load i8, i8* %97
%99 = icmp eq i8 %98, 0
br i1 %99, label %100, label %270
100: ; preds = %96
%101 = getelementptr inbounds i8, i8* %0, i64 24
%102 = load i8, i8* %101
%103 = icmp eq i8 %102, 0
br i1 %103, label %104, label %270
104: ; preds = %100
%105 = getelementptr inbounds i8, i8* %0, i64 25
%106 = load i8, i8* %105
%107 = icmp eq i8 %106, 0
br i1 %107, label %108, label %270
108: ; preds = %104
%109 = getelementptr inbounds i8, i8* %0, i64 26
%110 = load i8, i8* %109
%111 = icmp eq i8 %110, 0
br i1 %111, label %112, label %270
112: ; preds = %108
%113 = getelementptr inbounds i8, i8* %0, i64 27
%114 = load i8, i8* %113
%115 = icmp eq i8 %114, 0
br i1 %115, label %116, label %270
116: ; preds = %112
%117 = getelementptr inbounds i8, i8* %0, i64 28
%118 = load i8, i8* %117
%119 = icmp eq i8 %118, 0
br i1 %119, label %120, label %270
120: ; preds = %116
%121 = getelementptr inbounds i8, i8* %0, i64 29
%122 = load i8, i8* %121
%123 = icmp eq i8 %122, 0
br i1 %123, label %124, label %270
124: ; preds = %120
%125 = getelementptr inbounds i8, i8* %0, i64 30
%126 = load i8, i8* %125
%127 = icmp eq i8 %126, 0
br i1 %127, label %128, label %270
128: ; preds = %124
%129 = getelementptr inbounds i8, i8* %0, i64 31
%130 = load i8, i8* %129
%131 = icmp eq i8 %130, 0
%132 = select i1 %131, i32 0, i32 2
br label %270
133: ; preds = %8
br label %270
134: ; preds = %8
%135 = icmp ugt i32 %1, 9
%136 = and i32 %5, 8
%137 = icmp eq i32 %136, 0
%138 = select i1 %135, i1 true, i1 %137
br i1 %138, label %139, label %270
139: ; preds = %134
%140 = add i8 %9, -6
%141 = icmp ult i8 %140, 26
%142 = add i8 %9, -58
%143 = icmp ult i8 %142, 6
%144 = or i1 %141, %143
%145 = add i8 %9, -97
%146 = icmp ult i8 %145, 26
%147 = select i1 %144, i1 true, i1 %146
br i1 %147, label %270, label %148
148: ; preds = %139
switch i8 %9, label %149 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
149: ; preds = %148
%150 = getelementptr inbounds i8, i8* %0, i64 1
%151 = load i8, i8* %150
%152 = add i8 %151, -6
%153 = icmp ult i8 %152, 26
%154 = add i8 %151, -58
%155 = icmp ult i8 %154, 6
%156 = or i1 %153, %155
%157 = add i8 %151, -97
%158 = icmp ult i8 %157, 26
%159 = select i1 %156, i1 true, i1 %158
br i1 %159, label %270, label %160
160: ; preds = %149
switch i8 %151, label %161 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
161: ; preds = %160
%162 = getelementptr inbounds i8, i8* %0, i64 2
%163 = load i8, i8* %162
%164 = add i8 %163, -6
%165 = icmp ult i8 %164, 26
%166 = add i8 %163, -58
%167 = icmp ult i8 %166, 6
%168 = or i1 %165, %167
%169 = add i8 %163, -97
%170 = icmp ult i8 %169, 26
%171 = select i1 %168, i1 true, i1 %170
br i1 %171, label %270, label %172
172: ; preds = %161
switch i8 %163, label %173 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
173: ; preds = %172
%174 = getelementptr inbounds i8, i8* %0, i64 3
%175 = load i8, i8* %174
%176 = add i8 %175, -6
%177 = icmp ult i8 %176, 26
%178 = add i8 %175, -58
%179 = icmp ult i8 %178, 6
%180 = or i1 %177, %179
%181 = add i8 %175, -97
%182 = icmp ult i8 %181, 26
%183 = select i1 %180, i1 true, i1 %182
br i1 %183, label %270, label %184
184: ; preds = %173
switch i8 %175, label %185 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
185: ; preds = %184
%186 = getelementptr inbounds i8, i8* %0, i64 4
%187 = load i8, i8* %186
%188 = add i8 %187, -6
%189 = icmp ult i8 %188, 26
%190 = add i8 %187, -58
%191 = icmp ult i8 %190, 6
%192 = or i1 %189, %191
%193 = add i8 %187, -97
%194 = icmp ult i8 %193, 26
%195 = select i1 %192, i1 true, i1 %194
br i1 %195, label %270, label %196
196: ; preds = %185
switch i8 %187, label %197 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
197: ; preds = %196
%198 = getelementptr inbounds i8, i8* %0, i64 5
%199 = load i8, i8* %198
%200 = add i8 %199, -6
%201 = icmp ult i8 %200, 26
%202 = add i8 %199, -58
%203 = icmp ult i8 %202, 6
%204 = or i1 %201, %203
%205 = add i8 %199, -97
%206 = icmp ult i8 %205, 26
%207 = select i1 %204, i1 true, i1 %206
br i1 %207, label %270, label %208
208: ; preds = %197
switch i8 %199, label %209 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
209: ; preds = %208
%210 = getelementptr inbounds i8, i8* %0, i64 6
%211 = load i8, i8* %210
%212 = add i8 %211, -6
%213 = icmp ult i8 %212, 26
%214 = add i8 %211, -58
%215 = icmp ult i8 %214, 6
%216 = or i1 %213, %215
%217 = add i8 %211, -97
%218 = icmp ult i8 %217, 26
%219 = select i1 %216, i1 true, i1 %218
br i1 %219, label %270, label %220
220: ; preds = %209
switch i8 %211, label %221 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
221: ; preds = %220
%222 = getelementptr inbounds i8, i8* %0, i64 7
%223 = load i8, i8* %222
%224 = add i8 %223, -6
%225 = icmp ult i8 %224, 26
%226 = add i8 %223, -58
%227 = icmp ult i8 %226, 6
%228 = or i1 %225, %227
%229 = add i8 %223, -97
%230 = icmp ult i8 %229, 26
%231 = select i1 %228, i1 true, i1 %230
br i1 %231, label %270, label %232
232: ; preds = %221
switch i8 %223, label %233 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
233: ; preds = %232
%234 = getelementptr inbounds i8, i8* %0, i64 8
%235 = load i8, i8* %234
%236 = add i8 %235, -6
%237 = icmp ult i8 %236, 26
%238 = add i8 %235, -58
%239 = icmp ult i8 %238, 6
%240 = or i1 %237, %239
%241 = add i8 %235, -97
%242 = icmp ult i8 %241, 26
%243 = select i1 %240, i1 true, i1 %242
br i1 %243, label %270, label %244
244: ; preds = %233
switch i8 %235, label %245 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
245: ; preds = %244
%246 = getelementptr inbounds i8, i8* %0, i64 9
%247 = load i8, i8* %246
%248 = add i8 %247, -6
%249 = icmp ult i8 %248, 26
%250 = add i8 %247, -58
%251 = icmp ult i8 %250, 6
%252 = or i1 %249, %251
%253 = add i8 %247, -97
%254 = icmp ult i8 %253, 26
%255 = select i1 %252, i1 true, i1 %254
br i1 %255, label %270, label %256
256: ; preds = %245
switch i8 %247, label %257 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
257: ; preds = %256
%258 = getelementptr inbounds i8, i8* %0, i64 10
%259 = load i8, i8* %258
%260 = add i8 %259, -6
%261 = icmp ult i8 %260, 26
%262 = add i8 %259, -58
%263 = icmp ult i8 %262, 6
%264 = or i1 %261, %263
%265 = add i8 %259, -97
%266 = icmp ult i8 %265, 26
%267 = select i1 %264, i1 true, i1 %266
br i1 %267, label %270, label %268
268: ; preds = %257
switch i8 %259, label %269 [
i8 1, label %270
i8 2, label %270
i8 3, label %270
i8 4, label %270
i8 34, label %270
i8 42, label %270
i8 43, label %270
i8 44, label %270
i8 46, label %270
i8 47, label %270
i8 91, label %270
i8 92, label %270
i8 93, label %270
i8 124, label %270
]
269: ; preds = %268
br label %270
270: ; preds = %128, %10, %14, %18, %22, %26, %30, %34, %38, %42, %46, %52, %56, %60, %64, %68, %72, %76, %80, %84, %88, %92, %96, %100, %104, %108, %112, %116, %120, %124, %139, %148, %148, %148, %148, %148, %148, %148, %148, %148, %148, %148, %148, %148, %148, %149, %160, %160, %160, %160, %160, %160, %160, %160, %160, %160, %160, %160, %160, %160, %161, %172, %172, %172, %172, %172, %172, %172, %172, %172, %172, %172, %172, %172, %172, %173, %184, %184, %184, %184, %184, %184, %184, %184, %184, %184, %184, %184, %184, %184, %185, %196, %196, %196, %196, %196, %196, %196, %196, %196, %196, %196, %196, %196, %196, %197, %208, %208, %208, %208, %208, %208, %208, %208, %208, %208, %208, %208, %208, %208, %209, %220, %220, %220, %220, %220, %220, %220, %220, %220, %220, %220, %220, %220, %220, %221, %232, %232, %232, %232, %232, %232, %232, %232, %232, %232, %232, %232, %232, %232, %233, %244, %244, %244, %244, %244, %244, %244, %244, %244, %244, %244, %244, %244, %244, %245, %256, %256, %256, %256, %256, %256, %256, %256, %256, %256, %256, %256, %256, %256, %257, %268, %268, %268, %268, %268, %268, %268, %268, %268, %268, %268, %268, %268, %268, %269, %134, %8, %2, %133
%271 = phi i32 [ 1, %133 ], [ 1, %2 ], [ 2, %8 ], [ 1, %134 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %148 ], [ 2, %139 ], [ 2, %149 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %160 ], [ 2, %161 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %172 ], [ 2, %173 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %184 ], [ 2, %185 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %196 ], [ 2, %197 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %208 ], [ 2, %209 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %220 ], [ 2, %221 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %232 ], [ 2, %233 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %244 ], [ 2, %245 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %256 ], [ 2, %257 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 2, %268 ], [ 1, %269 ], [ 2, %10 ], [ 2, %14 ], [ 2, %18 ], [ 2, %22 ], [ 2, %26 ], [ 2, %30 ], [ 2, %34 ], [ 2, %38 ], [ 2, %42 ], [ 2, %46 ], [ 2, %52 ], [ 2, %56 ], [ 2, %60 ], [ 2, %64 ], [ 2, %68 ], [ 2, %72 ], [ 2, %76 ], [ 2, %80 ], [ 2, %84 ], [ 2, %88 ], [ 2, %92 ], [ 2, %96 ], [ 2, %100 ], [ 2, %104 ], [ 2, %108 ], [ 2, %112 ], [ 2, %116 ], [ 2, %120 ], [ 2, %124 ], [ %132, %128 ]
ret i32 %271
}