int fat_equ_filename(char *filename, char *dir_entry_name) {
  int i;
  int j;
  for (i = 0; i < 8 && filename[i] && filename[i] != '.' && dir_entry_name[i];
       i++) {
    if (dir_entry_name[i] >= 'A' && dir_entry_name[i] <= 'Z') {
      if ((dir_entry_name[i] | 0x20) != (filename[i] | 0x20)) {
        return 0;
      }
    } else if (filename[i] != dir_entry_name[i]) {
      return 0;
    }
  }
  i++;
  j = 8;
  while (filename[i] && dir_entry_name[j]) {
    if (dir_entry_name[j] >= 'A' && dir_entry_name[j] <= 'Z') {
      if ((dir_entry_name[j] | 0x20) != (filename[i] | 0x20)) {
        return 0;
      }
    } else if (filename[i] != dir_entry_name[j]) {
      return 0;
    }
    i++;
    j++;
  }
  return 1;
}


x86 assembly (clang, -O0):
<fat_equ_filename>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
movl   $0x0,-0x1c(%rbp)
xor    %eax,%eax
cmpl   $0x8,-0x1c(%rbp)
mov    %al,-0x21(%rbp)
jge    116b <fat_equ_filename+0x6b>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x21(%rbp)
je     116b <fat_equ_filename+0x6b>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x2e,%ecx
mov    %al,-0x21(%rbp)
je     116b <fat_equ_filename+0x6b>
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x21(%rbp)
mov    -0x21(%rbp),%al
test   $0x1,%al
jne    117b <fat_equ_filename+0x7b>
jmp    1220 <fat_equ_filename+0x120>
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jl     11dc <fat_equ_filename+0xdc>
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5a,%eax
jg     11dc <fat_equ_filename+0xdc>
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
or     $0x20,%eax
mov    -0x10(%rbp),%rcx
movslq -0x1c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
or     $0x20,%ecx
cmp    %ecx,%eax
je     11d7 <fat_equ_filename+0xd7>
movl   $0x0,-0x4(%rbp)
jmp    131f <fat_equ_filename+0x21f>
jmp    120d <fat_equ_filename+0x10d>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x18(%rbp),%rcx
movslq -0x1c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     1208 <fat_equ_filename+0x108>
movl   $0x0,-0x4(%rbp)
jmp    131f <fat_equ_filename+0x21f>
jmp    120d <fat_equ_filename+0x10d>
jmp    1212 <fat_equ_filename+0x112>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1113 <fat_equ_filename+0x13>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
movl   $0x8,-0x20(%rbp)
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x22(%rbp)
je     125f <fat_equ_filename+0x15f>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x0,%eax
setne  %al
mov    %al,-0x22(%rbp)
mov    -0x22(%rbp),%al
test   $0x1,%al
jne    126f <fat_equ_filename+0x16f>
jmp    1318 <fat_equ_filename+0x218>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x41,%eax
jl     12d0 <fat_equ_filename+0x1d0>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5a,%eax
jg     12d0 <fat_equ_filename+0x1d0>
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
or     $0x20,%eax
mov    -0x10(%rbp),%rcx
movslq -0x1c(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
or     $0x20,%ecx
cmp    %ecx,%eax
je     12cb <fat_equ_filename+0x1cb>
movl   $0x0,-0x4(%rbp)
jmp    131f <fat_equ_filename+0x21f>
jmp    1301 <fat_equ_filename+0x201>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    -0x18(%rbp),%rcx
movslq -0x20(%rbp),%rdx
movsbl (%rcx,%rdx,1),%ecx
cmp    %ecx,%eax
je     12fc <fat_equ_filename+0x1fc>
movl   $0x0,-0x4(%rbp)
jmp    131f <fat_equ_filename+0x21f>
jmp    1301 <fat_equ_filename+0x201>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1230 <fat_equ_filename+0x130>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<fat_equ_filename>:
mov    (%rdi),%dl
mov    $0x1,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    (%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x19,%al
ja     1134 <fat_equ_filename+0x34>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
je     113a <fat_equ_filename+0x3a>
ret
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x1(%rdi),%dl
mov    $0x2,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x1(%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x1a,%al
jae    1171 <fat_equ_filename+0x71>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
jne    1133 <fat_equ_filename+0x33>
jmp    1177 <fat_equ_filename+0x77>
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x2(%rdi),%dl
mov    $0x3,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x2(%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x1a,%al
jae    11ae <fat_equ_filename+0xae>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
jne    1133 <fat_equ_filename+0x33>
jmp    11b8 <fat_equ_filename+0xb8>
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x3(%rdi),%dl
mov    $0x4,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x3(%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x1a,%al
jae    11f3 <fat_equ_filename+0xf3>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
jne    1133 <fat_equ_filename+0x33>
jmp    11fd <fat_equ_filename+0xfd>
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x4(%rdi),%dl
mov    $0x5,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x4(%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x1a,%al
jae    1238 <fat_equ_filename+0x138>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
jne    1133 <fat_equ_filename+0x33>
jmp    1242 <fat_equ_filename+0x142>
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x5(%rdi),%dl
mov    $0x6,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x5(%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x1a,%al
jae    127d <fat_equ_filename+0x17d>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
jne    1133 <fat_equ_filename+0x33>
jmp    1287 <fat_equ_filename+0x187>
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x6(%rdi),%dl
mov    $0x7,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x6(%rsi),%cl
test   %cl,%cl
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%rcx),%eax
cmp    $0x1a,%al
jae    12b6 <fat_equ_filename+0x1b6>
xor    %dl,%cl
xor    %eax,%eax
test   $0xdf,%cl
jne    1133 <fat_equ_filename+0x33>
jmp    12c0 <fat_equ_filename+0x1c0>
xor    %eax,%eax
cmp    %cl,%dl
jne    1133 <fat_equ_filename+0x33>
mov    0x7(%rdi),%dl
mov    $0x8,%r9d
test   %dl,%dl
je     130b <fat_equ_filename+0x20b>
cmp    $0x2e,%dl
je     130b <fat_equ_filename+0x20b>
mov    0x7(%rsi),%r8b
test   %r8b,%r8b
je     130b <fat_equ_filename+0x20b>
lea    -0x41(%r8),%eax
cmp    $0x1a,%al
jae    12fa <fat_equ_filename+0x1fa>
xor    %dl,%r8b
xor    %eax,%eax
test   $0xdf,%r8b
jne    1133 <fat_equ_filename+0x33>
mov    $0x9,%r9d
jmp    130b <fat_equ_filename+0x20b>
xor    %eax,%eax
mov    $0x9,%r9d
cmp    %r8b,%dl
jne    1133 <fat_equ_filename+0x33>
mov    (%rdi,%r9,1),%r10b
mov    $0x1,%eax
test   %r10b,%r10b
je     1133 <fat_equ_filename+0x33>
lea    (%r9,%rdi,1),%r8
add    $0x1,%r8
xor    %edi,%edi
jmp    1347 <fat_equ_filename+0x247>
nopl   0x0(%rax)
cmp    %cl,%r10b
jne    1364 <fat_equ_filename+0x264>
movzbl (%r8,%rdi,1),%r10d
add    $0x1,%rdi
test   %r10b,%r10b
je     1133 <fat_equ_filename+0x33>
movzbl 0x8(%rsi,%rdi,1),%ecx
test   %cl,%cl
je     1133 <fat_equ_filename+0x33>
lea    -0x41(%rcx),%edx
cmp    $0x19,%dl
ja     1330 <fat_equ_filename+0x230>
xor    %r10b,%cl
test   $0xdf,%cl
je     1335 <fat_equ_filename+0x235>
xor    %eax,%eax
ret

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

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