int locok(char **sudu, int x, int y, int num) {
  int i, j, i1, j1;
  if (sudu[x][y] != '.')
    return 2;
  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 - 3; 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)
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movslq -0x18(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     113a <locok+0x3a>
movl   $0x2,-0x4(%rbp)
jmp    12bd <locok+0x1bd>
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jge    1193 <locok+0x93>
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
je     1180 <locok+0x80>
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    1180 <locok+0x80>
movl   $0x0,-0x4(%rbp)
jmp    12bd <locok+0x1bd>
jmp    1185 <locok+0x85>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1141 <locok+0x41>
movl   $0x0,-0x20(%rbp)
cmpl   $0x9,-0x20(%rbp)
jge    11ec <locok+0xec>
mov    -0x20(%rbp),%eax
cmp    -0x18(%rbp),%eax
je     11d9 <locok+0xd9>
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    11d9 <locok+0xd9>
movl   $0x0,-0x4(%rbp)
jmp    12bd <locok+0x1bd>
jmp    11de <locok+0xde>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    119a <locok+0x9a>
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    -0x28(%rbp),%eax
sub    $0x3,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    12b6 <locok+0x1b6>
mov    -0x2c(%rbp),%eax
sub    $0x3,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    12a3 <locok+0x1a3>
mov    -0x20(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1267 <locok+0x167>
mov    -0x24(%rbp),%eax
cmp    -0x18(%rbp),%eax
jne    1267 <locok+0x167>
jmp    1295 <locok+0x195>
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    1290 <locok+0x190>
movl   $0x0,-0x4(%rbp)
jmp    12bd <locok+0x1bd>
jmp    1295 <locok+0x195>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    123e <locok+0x13e>
jmp    12a8 <locok+0x1a8>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1229 <locok+0x129>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<locok>:
push   %rbx
movslq %esi,%r8
mov    (%rdi,%r8,8),%r10
movslq %edx,%r9
mov    $0x2,%eax
cmpb   $0x2e,(%r10,%r9,1)
jne    12f7 <locok+0x1f7>
test   %esi,%esi
je     1161 <locok+0x61>
mov    (%rdi),%rax
movsbl (%rax,%r9,1),%r11d
xor    %eax,%eax
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x1,%esi
je     1175 <locok+0x75>
mov    0x8(%rdi),%r11
movsbl (%r11,%r9,1),%r11d
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x2,%esi
jne    1175 <locok+0x75>
mov    0x18(%rdi),%r11
movsbl (%r11,%r9,1),%r11d
cmp    %ecx,%r11d
jne    118e <locok+0x8e>
jmp    12f7 <locok+0x1f7>
mov    0x8(%rdi),%rax
movsbl (%rax,%r9,1),%r11d
xor    %eax,%eax
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
mov    0x10(%rdi),%rax
movsbl (%rax,%r9,1),%r11d
xor    %eax,%eax
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x3,%esi
jne    11d0 <locok+0xd0>
mov    0x20(%rdi),%rax
movsbl (%rax,%r9,1),%r11d
xor    %eax,%eax
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x5,%esi
je     11f9 <locok+0xf9>
mov    0x28(%rdi),%r11
movsbl (%r11,%r9,1),%r11d
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x6,%esi
jne    11f9 <locok+0xf9>
mov    0x38(%rdi),%rsi
movsbl (%rsi,%r9,1),%esi
cmp    %ecx,%esi
jne    1229 <locok+0x129>
jmp    12f7 <locok+0x1f7>
mov    0x18(%rdi),%r11
movsbl (%r11,%r9,1),%r11d
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x4,%esi
jne    118e <locok+0x8e>
mov    0x28(%rdi),%r11
movsbl (%r11,%r9,1),%r11d
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
mov    0x30(%rdi),%rax
movsbl (%rax,%r9,1),%r11d
xor    %eax,%eax
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x7,%esi
je     1229 <locok+0x129>
mov    0x38(%rdi),%r11
movsbl (%r11,%r9,1),%r11d
cmp    %ecx,%r11d
je     12f7 <locok+0x1f7>
cmp    $0x8,%esi
je     123c <locok+0x13c>
mov    0x40(%rdi),%rax
movsbl (%rax,%r9,1),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
test   %edx,%edx
je     1273 <locok+0x173>
movsbl (%r10),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x1,%edx
je     127e <locok+0x17e>
movsbl 0x1(%r10),%esi
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x2,%edx
jne    127e <locok+0x17e>
movsbl 0x3(%r10),%esi
cmp    %ecx,%esi
jne    128e <locok+0x18e>
jmp    12f7 <locok+0x1f7>
movsbl 0x1(%r10),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
movsbl 0x2(%r10),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x3,%edx
jne    12b7 <locok+0x1b7>
movsbl 0x4(%r10),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x5,%edx
je     12ce <locok+0x1ce>
movsbl 0x5(%r10),%esi
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x6,%edx
jne    12ce <locok+0x1ce>
movsbl 0x7(%r10),%edx
cmp    %ecx,%edx
jne    12ec <locok+0x1ec>
jmp    12f7 <locok+0x1f7>
movsbl 0x3(%r10),%esi
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x4,%edx
jne    128e <locok+0x18e>
movsbl 0x5(%r10),%esi
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
movsbl 0x6(%r10),%esi
xor    %eax,%eax
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x7,%edx
je     12ec <locok+0x1ec>
movsbl 0x7(%r10),%esi
cmp    %ecx,%esi
je     12f7 <locok+0x1f7>
cmp    $0x8,%edx
je     12f9 <locok+0x1f9>
movsbl 0x8(%r10),%edx
xor    %eax,%eax
cmp    %ecx,%edx
jne    12f9 <locok+0x1f9>
pop    %rbx
ret
imul   $0x55555556,%r8,%rax
mov    %rax,%rdx
shr    $0x3f,%rdx
shr    $0x20,%rax
add    %edx,%eax
lea    (%rax,%rax,2),%r11d
imul   $0x55555556,%r9,%rdx
mov    %rdx,%rsi
shr    $0x3f,%rsi
shr    $0x20,%rdx
add    %esi,%edx
lea    (%rdx,%rdx,2),%esi
movslq %esi,%r10
movslq %r11d,%rsi
lea    (%rdx,%rdx,2),%edx
add    $0x2,%edx
movslq %edx,%rdx
lea    (%rax,%rax,2),%eax
add    $0x2,%eax
movslq %eax,%r11
neg    %r9
add    $0xffffffffffffffff,%r10
jmp    135a <locok+0x25a>
lea    0x1(%rsi),%rbx
mov    $0x1,%eax
cmp    %r11,%rsi
mov    %rbx,%rsi
jge    12f7 <locok+0x1f7>
mov    %r10,%rax
jmp    1375 <locok+0x275>
mov    (%rdi,%rsi,8),%rbx
movsbl 0x1(%rbx,%rax,1),%ebx
cmp    %ecx,%ebx
je     1386 <locok+0x286>
add    $0x1,%rax
cmp    %rdx,%rax
jge    1349 <locok+0x249>
cmp    %r8,%rsi
jne    135f <locok+0x25f>
lea    (%r9,%rax,1),%rbx
cmp    $0xffffffffffffffff,%rbx
je     136c <locok+0x26c>
jmp    135f <locok+0x25f>
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
%14 = load i8**, i8*** %6
%15 = load i32, i32* %7
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds i8*, i8** %14, i64 %16
%18 = load i8*, i8** %17
%19 = load i32, i32* %8
%20 = sext i32 %19 to i64
%21 = getelementptr inbounds i8, i8* %18, i64 %20
%22 = load i8, i8* %21
%23 = sext i8 %22 to i32
%24 = icmp ne i32 %23, 46
br i1 %24, label %25, label %26
25: ; preds = %4
store i32 2, i32* %5
br label %134
26: ; preds = %4
store i32 0, i32* %10
br label %27
27: ; preds = %49, %26
%28 = load i32, i32* %10
%29 = icmp slt i32 %28, 9
br i1 %29, label %30, label %52
30: ; preds = %27
%31 = load i32, i32* %10
%32 = load i32, i32* %7
%33 = icmp ne i32 %31, %32
br i1 %33, label %34, label %48
34: ; preds = %30
%35 = load i8**, i8*** %6
%36 = load i32, i32* %10
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds i8*, i8** %35, i64 %37
%39 = load i8*, i8** %38
%40 = load i32, i32* %8
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds i8, i8* %39, i64 %41
%43 = load i8, i8* %42
%44 = sext i8 %43 to i32
%45 = load i32, i32* %9
%46 = icmp eq i32 %44, %45
br i1 %46, label %47, label %48
47: ; preds = %34
store i32 0, i32* %5
br label %134
48: ; preds = %34, %30
br label %49
49: ; preds = %48
%50 = load i32, i32* %10
%51 = add nsw i32 %50, 1
store i32 %51, i32* %10
br label %27
52: ; preds = %27
store i32 0, i32* %10
br label %53
53: ; preds = %75, %52
%54 = load i32, i32* %10
%55 = icmp slt i32 %54, 9
br i1 %55, label %56, label %78
56: ; preds = %53
%57 = load i32, i32* %10
%58 = load i32, i32* %8
%59 = icmp ne i32 %57, %58
br i1 %59, label %60, label %74
60: ; preds = %56
%61 = load i8**, i8*** %6
%62 = load i32, i32* %7
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds i8*, i8** %61, i64 %63
%65 = load i8*, i8** %64
%66 = load i32, i32* %10
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds i8, i8* %65, i64 %67
%69 = load i8, i8* %68
%70 = sext i8 %69 to i32
%71 = load i32, i32* %9
%72 = icmp eq i32 %70, %71
br i1 %72, label %73, label %74
73: ; preds = %60
store i32 0, i32* %5
br label %134
74: ; preds = %60, %56
br label %75
75: ; preds = %74
%76 = load i32, i32* %10
%77 = add nsw i32 %76, 1
store i32 %77, i32* %10
br label %53
78: ; preds = %53
%79 = load i32, i32* %7
%80 = sdiv i32 %79, 3
%81 = mul nsw i32 %80, 3
store i32 %81, i32* %10
%82 = load i32, i32* %8
%83 = sdiv i32 %82, 3
%84 = mul nsw i32 %83, 3
store i32 %84, i32* %11
%85 = load i32, i32* %10
%86 = add nsw i32 %85, 3
store i32 %86, i32* %12
%87 = load i32, i32* %11
%88 = add nsw i32 %87, 3
store i32 %88, i32* %13
%89 = load i32, i32* %12
%90 = sub nsw i32 %89, 3
store i32 %90, i32* %10
br label %91
91: ; preds = %130, %78
%92 = load i32, i32* %10
%93 = load i32, i32* %12
%94 = icmp slt i32 %92, %93
br i1 %94, label %95, label %133
95: ; preds = %91
%96 = load i32, i32* %13
%97 = sub nsw i32 %96, 3
store i32 %97, i32* %11
br label %98
98: ; preds = %126, %95
%99 = load i32, i32* %11
%100 = load i32, i32* %13
%101 = icmp slt i32 %99, %100
br i1 %101, label %102, label %129
102: ; preds = %98
%103 = load i32, i32* %10
%104 = load i32, i32* %7
%105 = icmp eq i32 %103, %104
br i1 %105, label %106, label %111
106: ; preds = %102
%107 = load i32, i32* %11
%108 = load i32, i32* %8
%109 = icmp eq i32 %107, %108
br i1 %109, label %110, label %111
110: ; preds = %106
br label %126
111: ; preds = %106, %102
%112 = load i8**, i8*** %6
%113 = load i32, i32* %10
%114 = sext i32 %113 to i64
%115 = getelementptr inbounds i8*, i8** %112, i64 %114
%116 = load i8*, i8** %115
%117 = load i32, i32* %11
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds i8, i8* %116, i64 %118
%120 = load i8, i8* %119
%121 = sext i8 %120 to i32
%122 = load i32, i32* %9
%123 = icmp eq i32 %121, %122
br i1 %123, label %124, label %125
124: ; preds = %111
store i32 0, i32* %5
br label %134
125: ; preds = %111
br label %126
126: ; preds = %125, %110
%127 = load i32, i32* %11
%128 = add nsw i32 %127, 1
store i32 %128, i32* %11
br label %98
129: ; preds = %98
br label %130
130: ; preds = %129
%131 = load i32, i32* %10
%132 = add nsw i32 %131, 1
store i32 %132, i32* %10
br label %91
133: ; preds = %91
store i32 1, i32* %5
br label %134
134: ; preds = %133, %124, %73, %47, %25
%135 = load i32, i32* %5
ret i32 %135
}

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