unsigned char ieee_p_2592010699_sub_261918181200356752_503743352(char *t1,
                                                                 char *t2,
                                                                 char *t3) {
  char t5[24];
  unsigned char t0;
  char *t6;
  unsigned char t7;
  char *t8;
  char *t9;
  int t10;
  char *t11;
  int t12;
  char *t13;
  int t14;
  int t15;
  int t16;
  int t17;
  int t18;
  char *t19;
  int t20;
  char *t21;
  int t22;
  int t23;
  unsigned int t24;
  unsigned int t25;
  unsigned int t26;
  char *t27;
  unsigned char t28;
  char *t29;
  static char *nl0[] = {&&LAB9, &&LAB9,  &&LAB10, &&LAB10, &&LAB9,
                        &&LAB9, &&LAB10, &&LAB10, &&LAB9};
LAB0:
  t6 = (t5 + 4U);
  t7 = (t2 != 0);
  if (t7 == 1)
    goto LAB3;
LAB2:
  t8 = (t5 + 12U);
  *((char **)t8) = t3;
  t9 = (t3 + 8U);
  t10 = *((int *)t9);
  t11 = (t3 + 4U);
  t12 = *((int *)t11);
  t13 = (t3 + 0U);
  t14 = *((int *)t13);
  t15 = t14;
  t16 = t12;
LAB4:
  t17 = (t16 * t10);
  t18 = (t15 * t10);
  if (t18 <= t17)
    goto LAB5;
LAB7:
  t0 = (unsigned char)0;
LAB1:
  return t0;
LAB3:
  *((char **)t6) = t2;
  goto LAB2;
LAB5:
  t19 = (t3 + 0U);
  t20 = *((int *)t19);
  t21 = (t3 + 8U);
  t22 = *((int *)t21);
  t23 = (t15 - t20);
  t24 = (t23 * t22);
  t25 = (1U * t24);
  t26 = (0 + t25);
  t27 = (t2 + t26);
  t28 = *((unsigned char *)t27);
  t29 = (char *)((nl0) + t28);
  goto **((char **)t29);
LAB6:
  if (t15 == t16)
    goto LAB7;
LAB12:
  t12 = (t15 + t10);
  t15 = t12;
  goto LAB4;
LAB8:
  goto LAB6;
LAB9:
  t0 = (unsigned char)1;
  goto LAB1;
LAB10:
  goto LAB8;
LAB11:
  goto LAB8;
LAB13:;
}


x86 assembly (clang, -O0):
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
lea    -0x40(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x50(%rbp)
cmpq   $0x0,-0x18(%rbp)
setne  %al
and    $0x1,%al
movzbl %al,%eax
mov    %al,-0x51(%rbp)
movzbl -0x51(%rbp),%eax
cmp    $0x1,%eax
jne    1142 <ieee_p_2592010699_sub_261918181200356752_503743352+0x42>
jmp    1202 <ieee_p_2592010699_sub_261918181200356752_503743352+0x102>
jmp    1147 <ieee_p_2592010699_sub_261918181200356752_503743352+0x47>
lea    -0x40(%rbp),%rax
add    $0xc,%rax
mov    %rax,-0x60(%rbp)
mov    -0x20(%rbp),%rcx
mov    -0x60(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x20(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x20(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
mov    %eax,-0x90(%rbp)
mov    -0x7c(%rbp),%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
imul   -0x6c(%rbp),%eax
mov    %eax,-0x98(%rbp)
mov    -0x90(%rbp),%eax
imul   -0x6c(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x9c(%rbp),%eax
cmp    -0x98(%rbp),%eax
jg     11ee <ieee_p_2592010699_sub_261918181200356752_503743352+0xee>
jmp    1212 <ieee_p_2592010699_sub_261918181200356752_503743352+0x112>
jmp    11f3 <ieee_p_2592010699_sub_261918181200356752_503743352+0xf3>
movb   $0x0,-0x41(%rbp)
mov    -0x41(%rbp),%al
mov    %al,-0x1(%rbp)
jmp    132e <ieee_p_2592010699_sub_261918181200356752_503743352+0x22e>
mov    -0x18(%rbp),%rcx
mov    -0x50(%rbp),%rax
mov    %rcx,(%rax)
jmp    1147 <ieee_p_2592010699_sub_261918181200356752_503743352+0x47>
mov    -0x20(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0xac(%rbp)
mov    -0x20(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0xb8(%rbp)
mov    -0xb8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0xbc(%rbp)
mov    -0x90(%rbp),%eax
sub    -0xac(%rbp),%eax
mov    %eax,-0xc0(%rbp)
mov    -0xc0(%rbp),%eax
imul   -0xbc(%rbp),%eax
mov    %eax,-0xc4(%rbp)
mov    -0xc4(%rbp),%eax
shl    $0x0,%eax
mov    %eax,-0xc8(%rbp)
mov    -0xc8(%rbp),%eax
add    $0x0,%eax
mov    %eax,-0xcc(%rbp)
mov    -0x18(%rbp),%rax
mov    -0xcc(%rbp),%ecx
add    %rcx,%rax
mov    %rax,-0xd8(%rbp)
mov    -0xd8(%rbp),%rax
mov    (%rax),%al
mov    %al,-0xd9(%rbp)
movzbl -0xd9(%rbp),%eax
movslq %eax,%rcx
lea    0x2d6f(%rip),%rax
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xe8(%rbp)
mov    -0xe8(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0xf0(%rbp)
jmp    1338 <ieee_p_2592010699_sub_261918181200356752_503743352+0x238>
mov    -0x90(%rbp),%eax
cmp    -0x94(%rbp),%eax
jne    12fc <ieee_p_2592010699_sub_261918181200356752_503743352+0x1fc>
jmp    11f3 <ieee_p_2592010699_sub_261918181200356752_503743352+0xf3>
jmp    1301 <ieee_p_2592010699_sub_261918181200356752_503743352+0x201>
mov    -0x90(%rbp),%eax
add    -0x6c(%rbp),%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
mov    %eax,-0x90(%rbp)
jmp    11b7 <ieee_p_2592010699_sub_261918181200356752_503743352+0xb7>
jmp    12e5 <ieee_p_2592010699_sub_261918181200356752_503743352+0x1e5>
movb   $0x1,-0x41(%rbp)
jmp    11f7 <ieee_p_2592010699_sub_261918181200356752_503743352+0xf7>
jmp    131b <ieee_p_2592010699_sub_261918181200356752_503743352+0x21b>
movzbl -0x1(%rbp),%eax
add    $0x70,%rsp
pop    %rbp
ret
mov    -0xf0(%rbp),%rax
jmp    *%rax

x86 assembly (clang, -O2):
mov    0x8(%rdx),%eax
mov    (%rdx),%r9d
mov    0x4(%rdx),%r10d
mov    %r10d,%edi
imul   %eax,%edi
mov    %r9d,%ecx
imul   %eax,%ecx
cmp    %edi,%ecx
jle    111d <ieee_p_2592010699_sub_261918181200356752_503743352+0x1d>
xor    %eax,%eax
ret
lea    0x2cdc(%rip),%r8
mov    %r9d,%ecx
nopw   0x0(%rax,%rax,1)
mov    %ecx,%edx
sub    %r9d,%edx
imul   %eax,%edx
movzbl (%rsi,%rdx,1),%edx
jmp    *(%r8,%rdx,8)
cmp    %r10d,%ecx
je     111a <ieee_p_2592010699_sub_261918181200356752_503743352+0x1a>
add    %eax,%ecx
mov    %ecx,%edx
imul   %eax,%edx
cmp    %edi,%edx
jle    1130 <ieee_p_2592010699_sub_261918181200356752_503743352+0x30>
jmp    111a <ieee_p_2592010699_sub_261918181200356752_503743352+0x1a>
mov    $0x1,%al
ret

LLVM IR (-O0):
@ieee_p_2592010699_sub_261918181200356752_503743352.nl0 = internal global [9 x i8*] [i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %135), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %135), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %136), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %136), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %135), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %135), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %136), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %136), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %135)]
define zeroext i8 @ieee_p_2592010699_sub_261918181200356752_503743352(i8* %0, i8* %1, i8* %2) {
%4 = alloca i8
%5 = alloca i8*
%6 = alloca i8*
%7 = alloca i8*
%8 = alloca [24 x i8]
%9 = alloca i8
%10 = alloca i8*
%11 = alloca i8
%12 = alloca i8*
%13 = alloca i8*
%14 = alloca i32
%15 = alloca i8*
%16 = alloca i32
%17 = alloca i8*
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i8*
%24 = alloca i32
%25 = alloca i8*
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i8*
%32 = alloca i8
%33 = alloca i8*
store i8* %0, i8** %5
store i8* %1, i8** %6
store i8* %2, i8** %7
br label %34
34: ; preds = %3
%35 = getelementptr inbounds [24 x i8], [24 x i8]* %8, i64 0, i64 0
%36 = getelementptr inbounds i8, i8* %35, i64 4
store i8* %36, i8** %10
%37 = load i8*, i8** %6
%38 = icmp ne i8* %37, null
%39 = zext i1 %38 to i32
%40 = trunc i32 %39 to i8
store i8 %40, i8* %11
%41 = load i8, i8* %11
%42 = zext i8 %41 to i32
%43 = icmp eq i32 %42, 1
br i1 %43, label %44, label %45
44: ; preds = %34
br label %84
45: ; preds = %34
br label %46
46: ; preds = %84, %45
%47 = getelementptr inbounds [24 x i8], [24 x i8]* %8, i64 0, i64 0
%48 = getelementptr inbounds i8, i8* %47, i64 12
store i8* %48, i8** %12
%49 = load i8*, i8** %7
%50 = load i8*, i8** %12
%51 = bitcast i8* %50 to i8**
store i8* %49, i8** %51
%52 = load i8*, i8** %7
%53 = getelementptr inbounds i8, i8* %52, i64 8
store i8* %53, i8** %13
%54 = load i8*, i8** %13
%55 = bitcast i8* %54 to i32*
%56 = load i32, i32* %55
store i32 %56, i32* %14
%57 = load i8*, i8** %7
%58 = getelementptr inbounds i8, i8* %57, i64 4
store i8* %58, i8** %15
%59 = load i8*, i8** %15
%60 = bitcast i8* %59 to i32*
%61 = load i32, i32* %60
store i32 %61, i32* %16
%62 = load i8*, i8** %7
%63 = getelementptr inbounds i8, i8* %62, i64 0
store i8* %63, i8** %17
%64 = load i8*, i8** %17
%65 = bitcast i8* %64 to i32*
%66 = load i32, i32* %65
store i32 %66, i32* %18
%67 = load i32, i32* %18
store i32 %67, i32* %19
%68 = load i32, i32* %16
store i32 %68, i32* %20
br label %69
69: ; preds = %129, %46
%70 = load i32, i32* %20
%71 = load i32, i32* %14
%72 = mul nsw i32 %70, %71
store i32 %72, i32* %21
%73 = load i32, i32* %19
%74 = load i32, i32* %14
%75 = mul nsw i32 %73, %74
store i32 %75, i32* %22
%76 = load i32, i32* %22
%77 = load i32, i32* %21
%78 = icmp sle i32 %76, %77
br i1 %78, label %79, label %80
79: ; preds = %69
br label %88
80: ; preds = %69
br label %81
81: ; preds = %127, %80
store i8 0, i8* %9
br label %82
82: ; preds = %135, %81
%83 = load i8, i8* %9
store i8 %83, i8* %4
br label %139
84: ; preds = %44
%85 = load i8*, i8** %6
%86 = load i8*, i8** %10
%87 = bitcast i8* %86 to i8**
store i8* %85, i8** %87
br label %46
88: ; preds = %79
%89 = load i8*, i8** %7
%90 = getelementptr inbounds i8, i8* %89, i64 0
store i8* %90, i8** %23
%91 = load i8*, i8** %23
%92 = bitcast i8* %91 to i32*
%93 = load i32, i32* %92
store i32 %93, i32* %24
%94 = load i8*, i8** %7
%95 = getelementptr inbounds i8, i8* %94, i64 8
store i8* %95, i8** %25
%96 = load i8*, i8** %25
%97 = bitcast i8* %96 to i32*
%98 = load i32, i32* %97
store i32 %98, i32* %26
%99 = load i32, i32* %19
%100 = load i32, i32* %24
%101 = sub nsw i32 %99, %100
store i32 %101, i32* %27
%102 = load i32, i32* %27
%103 = load i32, i32* %26
%104 = mul nsw i32 %102, %103
store i32 %104, i32* %28
%105 = load i32, i32* %28
%106 = mul i32 1, %105
store i32 %106, i32* %29
%107 = load i32, i32* %29
%108 = add i32 0, %107
store i32 %108, i32* %30
%109 = load i8*, i8** %6
%110 = load i32, i32* %30
%111 = zext i32 %110 to i64
%112 = getelementptr inbounds i8, i8* %109, i64 %111
store i8* %112, i8** %31
%113 = load i8*, i8** %31
%114 = load i8, i8* %113
store i8 %114, i8* %32
%115 = load i8, i8* %32
%116 = zext i8 %115 to i32
%117 = sext i32 %116 to i64
%118 = getelementptr inbounds i8*, i8** getelementptr inbounds ([9 x i8*], [9 x i8*]* @ieee_p_2592010699_sub_261918181200356752_503743352.nl0, i64 0, i64 0), i64 %117
%119 = bitcast i8** %118 to i8*
store i8* %119, i8** %33
%120 = load i8*, i8** %33
%121 = bitcast i8* %120 to i8**
%122 = load i8*, i8** %121
br label %141
123: ; preds = %134
%124 = load i32, i32* %19
%125 = load i32, i32* %20
%126 = icmp eq i32 %124, %125
br i1 %126, label %127, label %128
127: ; preds = %123
br label %81
128: ; preds = %123
br label %129
129: ; preds = %128
%130 = load i32, i32* %19
%131 = load i32, i32* %14
%132 = add nsw i32 %130, %131
store i32 %132, i32* %16
%133 = load i32, i32* %16
store i32 %133, i32* %19
br label %69
134: ; preds = %137, %136
br label %123
135: ; preds = %141, %141, %141, %141, %141
store i8 1, i8* %9
br label %82
136: ; preds = %141, %141, %141, %141
br label %134
137: ; No predecessors!
br label %134
138: ; No predecessors!
br label %139
139: ; preds = %138, %82
%140 = load i8, i8* %4
ret i8 %140
141: ; preds = %88
%142 = phi i8* [ %122, %88 ]
indirectbr i8* %142, [label %135, label %135, label %136, label %136, label %135, label %135, label %136, label %136, label %135]
}

LLVM IR (-O2):
@ieee_p_2592010699_sub_261918181200356752_503743352.nl0 = internal unnamed_addr constant [9 x i8*] [i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %15), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %15), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %27), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %27), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %15), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %15), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %27), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %27), i8* blockaddress(@ieee_p_2592010699_sub_261918181200356752_503743352, %15)]
define zeroext i8 @ieee_p_2592010699_sub_261918181200356752_503743352(i8* nocapture readnone %0, i8* nocapture %1, i8* nocapture %2) {
%4 = getelementptr inbounds i8, i8* %2, i64 8
%5 = bitcast i8* %4 to i32*
%6 = load i32, i32* %5
%7 = getelementptr inbounds i8, i8* %2, i64 4
%8 = bitcast i8* %7 to i32*
%9 = load i32, i32* %8
%10 = bitcast i8* %2 to i32*
%11 = load i32, i32* %10
%12 = mul nsw i32 %9, %6
%13 = mul nsw i32 %11, %6
%14 = icmp sgt i32 %13, %12
br i1 %14, label %15, label %17
15: ; preds = %27, %3, %17
%16 = phi i8 [ 1, %17 ], [ 0, %3 ], [ 0, %27 ]
ret i8 %16
17: ; preds = %3, %27
%18 = phi i32 [ %29, %27 ], [ %11, %3 ]
%19 = sub nsw i32 %18, %11
%20 = mul nsw i32 %19, %6
%21 = zext i32 %20 to i64
%22 = getelementptr inbounds i8, i8* %1, i64 %21
%23 = load i8, i8* %22
%24 = zext i8 %23 to i64
%25 = getelementptr inbounds [9 x i8*], [9 x i8*]* @ieee_p_2592010699_sub_261918181200356752_503743352.nl0, i64 0, i64 %24
%26 = load i8*, i8** %25
indirectbr i8* %26, [label %15, label %27]
27: ; preds = %17
%28 = icmp eq i32 %18, %9
%29 = add nsw i32 %18, %6
%30 = mul nsw i32 %29, %6
%31 = icmp sgt i32 %30, %12
%32 = select i1 %28, i1 true, i1 %31
br i1 %32, label %15, label %17
}