int locok(char **sudu, int x, int y, int num) {
  int i, j, i1, j1;
  for (i = 0; i < 9; i++)
    if (i != x && sudu[i][y] == num)
      return 0;
  for (i = 0; i < 9; i++)
    if (i != y && sudu[x][i] == num)
      return 0;
  i = x / 3 * 3;
  j = y / 3 * 3;
  i1 = i + 3;
  j1 = j + 3;
  for (; i < i1; i++)
    for (j = j1 - 3; j < j1; j++) {
      if (i == x && j == y)
        continue;
      if (sudu[i][j] == num)
        return 0;
    }
  return 1;
}


x86 assembly (clang, -O0):
<locok>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    %edx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jge    116a <locok+0x6a>
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1157 <locok+0x57>
mov    -0x10(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x18(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    -0x1c(%rbp),%eax
jne    1157 <locok+0x57>
movl   $0x0,-0x4(%rbp)
jmp    128b <locok+0x18b>
jmp    115c <locok+0x5c>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1118 <locok+0x18>
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jge    11c3 <locok+0xc3>
mov    -0x20(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     11b0 <locok+0xb0>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x20(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    -0x1c(%rbp),%eax
jne    11b0 <locok+0xb0>
movl   $0x0,-0x4(%rbp)
jmp    128b <locok+0x18b>
jmp    11b5 <locok+0xb5>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1171 <locok+0x71>
mov    -0x14(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
imul   $0x3,%eax,%eax
mov    %eax,-0x20(%rbp)
mov    -0x18(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
imul   $0x3,%eax,%eax
mov    %eax,-0x24(%rbp)
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x28(%rbp)
mov    -0x24(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    1284 <locok+0x184>
mov    -0x2c(%rbp),%eax
sub    $0x3,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    1271 <locok+0x171>
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1235 <locok+0x135>
mov    -0x24(%rbp),%eax
cmp    -0x18(%rbp),%eax
jne    1235 <locok+0x135>
jmp    1263 <locok+0x163>
mov    -0x10(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x24(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    -0x1c(%rbp),%eax
jne    125e <locok+0x15e>
movl   $0x0,-0x4(%rbp)
jmp    128b <locok+0x18b>
jmp    1263 <locok+0x163>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    120c <locok+0x10c>
jmp    1276 <locok+0x176>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    11f7 <locok+0xf7>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<locok>:
push   %rbx
movslq %edx,%r8
test   %esi,%esi
je     114a <locok+0x4a>
mov    (%rdi),%rax
movsbl (%rax,%r8,1),%r9d
xor    %eax,%eax
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x1,%esi
je     115e <locok+0x5e>
mov    0x8(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x2,%esi
jne    115e <locok+0x5e>
mov    0x18(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
jne    1177 <locok+0x77>
jmp    1310 <locok+0x210>
mov    0x8(%rdi),%rax
movsbl (%rax,%r8,1),%r9d
xor    %eax,%eax
cmp    %ecx,%r9d
je     1310 <locok+0x210>
mov    0x10(%rdi),%rax
movsbl (%rax,%r8,1),%r9d
xor    %eax,%eax
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x3,%esi
jne    11ba <locok+0xba>
mov    0x20(%rdi),%rax
movsbl (%rax,%r8,1),%r9d
xor    %eax,%eax
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x5,%esi
je     11e3 <locok+0xe3>
mov    0x28(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x6,%esi
jne    11e3 <locok+0xe3>
mov    0x38(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
jne    1213 <locok+0x113>
jmp    1310 <locok+0x210>
mov    0x18(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x4,%esi
jne    1177 <locok+0x77>
mov    0x28(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
je     1310 <locok+0x210>
mov    0x30(%rdi),%rax
movsbl (%rax,%r8,1),%r9d
xor    %eax,%eax
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x7,%esi
je     1213 <locok+0x113>
mov    0x38(%rdi),%r9
movsbl (%r9,%r8,1),%r9d
cmp    %ecx,%r9d
je     1310 <locok+0x210>
cmp    $0x8,%esi
je     1227 <locok+0x127>
mov    0x40(%rdi),%rax
movsbl (%rax,%r8,1),%r9d
xor    %eax,%eax
cmp    %ecx,%r9d
je     1310 <locok+0x210>
movslq %esi,%rbx
mov    (%rdi,%rbx,8),%rax
test   %edx,%edx
je     126a <locok+0x16a>
movsbl (%rax),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x1,%edx
je     1278 <locok+0x178>
mov    (%rdi,%rbx,8),%rsi
movsbl 0x1(%rsi),%esi
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x2,%edx
jne    1278 <locok+0x178>
mov    (%rdi,%rbx,8),%rsi
movsbl 0x3(%rsi),%esi
cmp    %ecx,%esi
jne    128f <locok+0x18f>
jmp    1310 <locok+0x210>
movsbl 0x1(%rax),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     1310 <locok+0x210>
mov    (%rdi,%rbx,8),%rax
movsbl 0x2(%rax),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x3,%edx
jne    12c1 <locok+0x1c1>
mov    (%rdi,%rbx,8),%rax
movsbl 0x4(%rax),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x5,%edx
je     12de <locok+0x1de>
mov    (%rdi,%rbx,8),%rsi
movsbl 0x5(%rsi),%esi
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x6,%edx
jne    12de <locok+0x1de>
mov    (%rdi,%rbx,8),%rdx
movsbl 0x7(%rdx),%edx
cmp    %ecx,%edx
jne    1302 <locok+0x202>
jmp    1310 <locok+0x210>
mov    (%rdi,%rbx,8),%rsi
movsbl 0x3(%rsi),%esi
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x4,%edx
jne    128f <locok+0x18f>
mov    (%rdi,%rbx,8),%rsi
movsbl 0x5(%rsi),%esi
cmp    %ecx,%esi
je     1310 <locok+0x210>
mov    (%rdi,%rbx,8),%rax
movsbl 0x6(%rax),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x7,%edx
je     1302 <locok+0x202>
mov    (%rdi,%rbx,8),%rsi
movsbl 0x7(%rsi),%esi
cmp    %ecx,%esi
je     1310 <locok+0x210>
cmp    $0x8,%edx
je     1312 <locok+0x212>
mov    (%rdi,%rbx,8),%rax
movsbl 0x8(%rax),%edx
xor    %eax,%eax
cmp    %ecx,%edx
jne    1312 <locok+0x212>
pop    %rbx
ret
imul   $0x55555556,%rbx,%rax
mov    %rax,%rdx
shr    $0x3f,%rdx
shr    $0x20,%rax
add    %edx,%eax
lea    (%rax,%rax,2),%r10d
imul   $0x55555556,%r8,%rsi
mov    %rsi,%rdx
shr    $0x3f,%rdx
shr    $0x20,%rsi
add    %edx,%esi
lea    (%rsi,%rsi,2),%edx
movslq %edx,%r9
movslq %r10d,%rdx
lea    (%rsi,%rsi,2),%esi
add    $0x2,%esi
movslq %esi,%r10
lea    (%rax,%rax,2),%eax
add    $0x2,%eax
movslq %eax,%r11
neg    %r8
add    $0xffffffffffffffff,%r9
jmp    1373 <locok+0x273>
lea    0x1(%rdx),%rsi
mov    $0x1,%eax
cmp    %r11,%rdx
mov    %rsi,%rdx
jge    1310 <locok+0x210>
mov    %r9,%rax
jmp    138e <locok+0x28e>
mov    (%rdi,%rdx,8),%rsi
movsbl 0x1(%rsi,%rax,1),%esi
cmp    %ecx,%esi
je     139f <locok+0x29f>
add    $0x1,%rax
cmp    %r10,%rax
jge    1362 <locok+0x262>
cmp    %rbx,%rdx
jne    1378 <locok+0x278>
lea    (%r8,%rax,1),%rsi
cmp    $0xffffffffffffffff,%rsi
je     1385 <locok+0x285>
jmp    1378 <locok+0x278>
xor    %eax,%eax
pop    %rbx
ret

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

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