int collision(int ship1, int ship1D, int l1, int ship2, int ship2D, int l2) {
  if (ship1 == ship2)
    return 1;
  if (ship1D == 0 && ship2D == 0 && ship1 / 10 == ship2 / 10) {
    if (ship1 < ship2 && ship1 + l1 > ship2)
      return 1;
    if (ship1 > ship2 && ship2 + l2 > ship1)
      return 1;
    return 0;
  }
  if (ship1D == 0 && ship2D == 1) {
    if (ship1 % 10 <= ship2 % 10 && ship1 % 10 + l1 > ship2 % 10 &&
        ship2 / 10 <= ship1 / 10 && ship2 / 10 + l2 > ship1 / 10)
      return 1;
    return 0;
  }
  if (ship1D == 1 && ship2D == 0) {
    if (ship2 % 10 <= ship1 % 10 && ship2 % 10 + l2 > ship1 % 10 &&
        ship1 / 10 <= ship2 / 10 && ship1 / 10 + l1 > ship2 / 10)
      return 1;
    return 0;
  }
  if (ship1D == 1 && ship2D == 1 && ship1 % 10 == ship2 % 10) {
    if (ship1 / 10 < ship2 / 10 && ship1 / 10 + l1 > ship2 / 10)
      return 1;
    if (ship1 / 10 > ship2 / 10 && ship2 / 10 + l2 > ship1 / 10)
      return 1;
  }
  return 0;
}


x86 assembly (clang, -O0):
<collision>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
mov    %r8d,-0x18(%rbp)
mov    %r9d,-0x1c(%rbp)
mov    -0x8(%rbp),%eax
cmp    -0x14(%rbp),%eax
jne    1130 <collision+0x30>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
cmpl   $0x0,-0xc(%rbp)
jne    11c4 <collision+0xc4>
cmpl   $0x0,-0x18(%rbp)
jne    11c4 <collision+0xc4>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x20(%rbp),%eax
cmp    %ecx,%eax
jne    11c4 <collision+0xc4>
mov    -0x8(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1191 <collision+0x91>
mov    -0x8(%rbp),%eax
add    -0x10(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    1191 <collision+0x91>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
mov    -0x8(%rbp),%eax
cmp    -0x14(%rbp),%eax
jle    11b8 <collision+0xb8>
mov    -0x14(%rbp),%eax
add    -0x1c(%rbp),%eax
cmp    -0x8(%rbp),%eax
jle    11b8 <collision+0xb8>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
movl   $0x0,-0x4(%rbp)
jmp    1454 <collision+0x354>
cmpl   $0x0,-0xc(%rbp)
jne    128e <collision+0x18e>
cmpl   $0x1,-0x18(%rbp)
jne    128e <collision+0x18e>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x24(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    -0x24(%rbp),%edx
cmp    %eax,%edx
jg     1282 <collision+0x182>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
add    -0x10(%rbp),%edx
mov    %edx,-0x28(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    -0x28(%rbp),%edx
cmp    %eax,%edx
jle    1282 <collision+0x182>
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x2c(%rbp),%eax
cmp    %ecx,%eax
jg     1282 <collision+0x182>
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
add    -0x1c(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x30(%rbp),%eax
cmp    %ecx,%eax
jle    1282 <collision+0x182>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
movl   $0x0,-0x4(%rbp)
jmp    1454 <collision+0x354>
cmpl   $0x1,-0xc(%rbp)
jne    1358 <collision+0x258>
cmpl   $0x0,-0x18(%rbp)
jne    1358 <collision+0x258>
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x34(%rbp)
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    -0x34(%rbp),%edx
cmp    %eax,%edx
jg     134c <collision+0x24c>
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
add    -0x1c(%rbp),%edx
mov    %edx,-0x38(%rbp)
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    -0x38(%rbp),%edx
cmp    %eax,%edx
jle    134c <collision+0x24c>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x3c(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x3c(%rbp),%eax
cmp    %ecx,%eax
jg     134c <collision+0x24c>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
add    -0x10(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x40(%rbp),%eax
cmp    %ecx,%eax
jle    134c <collision+0x24c>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
movl   $0x0,-0x4(%rbp)
jmp    1454 <collision+0x354>
cmpl   $0x1,-0xc(%rbp)
jne    144d <collision+0x34d>
cmpl   $0x1,-0x18(%rbp)
jne    144d <collision+0x34d>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,-0x44(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %edx,%eax
mov    -0x44(%rbp),%edx
cmp    %eax,%edx
jne    144d <collision+0x34d>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x48(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x48(%rbp),%eax
cmp    %ecx,%eax
jge    13ed <collision+0x2ed>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
add    -0x10(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x4c(%rbp),%eax
cmp    %ecx,%eax
jle    13ed <collision+0x2ed>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,-0x50(%rbp)
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x50(%rbp),%eax
cmp    %ecx,%eax
jle    1448 <collision+0x348>
mov    -0x14(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
add    -0x1c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x54(%rbp),%eax
cmp    %ecx,%eax
jle    1448 <collision+0x348>
movl   $0x1,-0x4(%rbp)
jmp    1454 <collision+0x354>
jmp    144d <collision+0x34d>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<collision>:
push   %rbx
mov    $0x1,%eax
cmp    %ecx,%edi
je     1159 <collision+0x59>
mov    %r8d,%r10d
or     %esi,%r10d
jne    115b <collision+0x5b>
movslq %edi,%r10
imul   $0x66666667,%r10,%r10
mov    %r10,%r11
shr    $0x3f,%r11
sar    $0x22,%r10
add    %r11d,%r10d
movslq %ecx,%r11
imul   $0x66666667,%r11,%r11
mov    %r11,%rbx
shr    $0x3f,%rbx
sar    $0x22,%r11
add    %ebx,%r11d
cmp    %r11d,%r10d
jne    115b <collision+0x5b>
cmp    %ecx,%edi
jge    12b4 <collision+0x1b4>
add    %edi,%edx
cmp    %ecx,%edx
jle    12b4 <collision+0x1b4>
pop    %rbx
ret
test   %esi,%esi
jne    11cb <collision+0xcb>
cmp    $0x1,%r8d
jne    11cb <collision+0xcb>
movslq %edi,%rsi
imul   $0x66666667,%rsi,%r10
mov    %r10,%r8
shr    $0x3f,%r8
sar    $0x22,%r10
lea    (%r10,%r8,1),%esi
add    %esi,%esi
lea    (%rsi,%rsi,4),%esi
sub    %esi,%edi
movslq %ecx,%rsi
imul   $0x66666667,%rsi,%rsi
mov    %rsi,%r11
shr    $0x3f,%r11
sar    $0x22,%rsi
lea    (%rsi,%r11,1),%ebx
add    %ebx,%ebx
lea    (%rbx,%rbx,4),%ebx
sub    %ebx,%ecx
cmp    %ecx,%edi
jg     12b0 <collision+0x1b0>
add    %edx,%edi
cmp    %ecx,%edi
jle    12b0 <collision+0x1b0>
add    %r11d,%esi
add    %r8d,%r10d
cmp    %r10d,%esi
jg     12b0 <collision+0x1b0>
add    %r9d,%esi
jmp    1235 <collision+0x135>
cmp    $0x1,%esi
jne    1240 <collision+0x140>
test   %r8d,%r8d
jne    1240 <collision+0x140>
movslq %ecx,%rsi
imul   $0x66666667,%rsi,%r10
mov    %r10,%r8
shr    $0x3f,%r8
sar    $0x22,%r10
lea    (%r10,%r8,1),%esi
add    %esi,%esi
lea    (%rsi,%rsi,4),%esi
sub    %esi,%ecx
movslq %edi,%rsi
imul   $0x66666667,%rsi,%rsi
mov    %rsi,%r11
shr    $0x3f,%r11
sar    $0x22,%rsi
lea    (%rsi,%r11,1),%ebx
add    %ebx,%ebx
lea    (%rbx,%rbx,4),%ebx
sub    %ebx,%edi
cmp    %edi,%ecx
jg     12b0 <collision+0x1b0>
add    %r9d,%ecx
cmp    %edi,%ecx
jle    12b0 <collision+0x1b0>
add    %r11d,%esi
add    %r8d,%r10d
cmp    %r10d,%esi
jg     12b0 <collision+0x1b0>
add    %edx,%esi
cmp    %r10d,%esi
jg     1159 <collision+0x59>
jmp    12b0 <collision+0x1b0>
cmp    $0x1,%esi
jne    12b0 <collision+0x1b0>
cmp    $0x1,%r8d
jne    12b0 <collision+0x1b0>
movslq %edi,%rsi
imul   $0x66666667,%rsi,%r8
mov    %r8,%rsi
shr    $0x3f,%rsi
sar    $0x22,%r8
add    %esi,%r8d
lea    (%r8,%r8,1),%esi
lea    (%rsi,%rsi,4),%esi
sub    %esi,%edi
movslq %ecx,%rsi
imul   $0x66666667,%rsi,%rsi
mov    %rsi,%rbx
shr    $0x3f,%rbx
sar    $0x22,%rsi
add    %ebx,%esi
lea    (%rsi,%rsi,1),%ebx
lea    (%rbx,%rbx,4),%ebx
sub    %ebx,%ecx
cmp    %ecx,%edi
jne    12b0 <collision+0x1b0>
cmp    %esi,%r8d
jge    129f <collision+0x19f>
add    %r8d,%edx
cmp    %esi,%edx
jg     1159 <collision+0x59>
cmp    %esi,%r8d
jle    12b0 <collision+0x1b0>
add    %r9d,%esi
cmp    %r8d,%esi
jg     1159 <collision+0x59>
xor    %eax,%eax
pop    %rbx
ret
cmp    %ecx,%edi
setg   %al
add    %ecx,%r9d
cmp    %edi,%r9d
setg   %cl
and    %al,%cl
movzbl %cl,%eax
pop    %rbx
ret

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

LLVM IR (-O2):
define i32 @collision(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5) {
%7 = icmp eq i32 %0, %3
br i1 %7, label %83, label %8
8: ; preds = %6
%9 = icmp eq i32 %1, 0
%10 = icmp eq i32 %4, 0
%11 = or i32 %4, %1
%12 = icmp eq i32 %11, 0
br i1 %12, label %13, label %28
13: ; preds = %8
%14 = sdiv i32 %0, 10
%15 = sdiv i32 %3, 10
%16 = icmp eq i32 %14, %15
br i1 %16, label %17, label %28
17: ; preds = %13
%18 = icmp slt i32 %0, %3
%19 = add nsw i32 %2, %0
%20 = icmp sgt i32 %19, %3
%21 = select i1 %18, i1 %20, i1 false
br i1 %21, label %83, label %22
22: ; preds = %17
%23 = icmp sgt i32 %0, %3
%24 = add nsw i32 %5, %3
%25 = icmp sgt i32 %24, %0
%26 = select i1 %23, i1 %25, i1 false
%27 = zext i1 %26 to i32
br label %83
28: ; preds = %13, %8
%29 = icmp eq i32 %4, 1
%30 = and i1 %9, %29
br i1 %30, label %31, label %46
31: ; preds = %28
%32 = srem i32 %0, 10
%33 = srem i32 %3, 10
%34 = icmp sle i32 %32, %33
%35 = add nsw i32 %32, %2
%36 = icmp sgt i32 %35, %33
%37 = select i1 %34, i1 %36, i1 false
br i1 %37, label %38, label %45
38: ; preds = %31
%39 = sdiv i32 %3, 10
%40 = sdiv i32 %0, 10
%41 = icmp sle i32 %39, %40
%42 = add nsw i32 %39, %5
%43 = icmp sgt i32 %42, %40
%44 = select i1 %41, i1 %43, i1 false
br i1 %44, label %83, label %45
45: ; preds = %38, %31
br label %83
46: ; preds = %28
%47 = icmp eq i32 %1, 1
%48 = and i1 %47, %10
br i1 %48, label %49, label %64
49: ; preds = %46
%50 = srem i32 %3, 10
%51 = srem i32 %0, 10
%52 = icmp sle i32 %50, %51
%53 = add nsw i32 %50, %5
%54 = icmp sgt i32 %53, %51
%55 = select i1 %52, i1 %54, i1 false
br i1 %55, label %56, label %63
56: ; preds = %49
%57 = sdiv i32 %0, 10
%58 = sdiv i32 %3, 10
%59 = icmp sle i32 %57, %58
%60 = add nsw i32 %57, %2
%61 = icmp sgt i32 %60, %58
%62 = select i1 %59, i1 %61, i1 false
br i1 %62, label %83, label %63
63: ; preds = %56, %49
br label %83
64: ; preds = %46
%65 = and i1 %47, %29
br i1 %65, label %66, label %82
66: ; preds = %64
%67 = srem i32 %0, 10
%68 = sdiv i32 %0, 10
%69 = srem i32 %3, 10
%70 = sdiv i32 %3, 10
%71 = icmp eq i32 %67, %69
br i1 %71, label %72, label %82
72: ; preds = %66
%73 = icmp slt i32 %68, %70
%74 = add nsw i32 %68, %2
%75 = icmp sgt i32 %74, %70
%76 = select i1 %73, i1 %75, i1 false
br i1 %76, label %83, label %77
77: ; preds = %72
%78 = icmp sgt i32 %68, %70
%79 = add nsw i32 %70, %5
%80 = icmp sgt i32 %79, %68
%81 = select i1 %78, i1 %80, i1 false
br i1 %81, label %83, label %82
82: ; preds = %77, %66, %64
br label %83
83: ; preds = %22, %77, %72, %56, %38, %17, %6, %82, %63, %45
%84 = phi i32 [ 0, %45 ], [ 0, %63 ], [ 0, %82 ], [ 1, %6 ], [ 1, %17 ], [ 1, %38 ], [ 1, %56 ], [ 1, %72 ], [ 1, %77 ], [ %27, %22 ]
ret i32 %84
}