void heapify(int *a, int n) {
  int k;
  int i;
  int j;
  int item;
  int *mem_7;
  int *mem_8;
  int *mem_9;
  int *mem_10;
  int *mem_11;
  int *mem_12;
  int *mem_13;
  int *mem_14;
  int *mem_15;
  int *mem_16;
  int *mem_17;
  int *mem_18;
  int *mem_19;
  int *mem_20;
  int *mem_21;
  int *mem_22;
  {
    __CrestCall(102, 3);
    __CrestStore(101, (unsigned long)(&n));
    __CrestLoad(103, (unsigned long)0, (long long)1);
    __CrestStore(104, (unsigned long)(&k));
    k = 1;
    {{__CrestLoad(107, (unsigned long)(&k), (long long)k);
    __CrestLoad(106, (unsigned long)(&n), (long long)n);
    __CrestApply2(105, 16, (long long)(k < n));
    if (k < n) {
      __CrestBranch(108, 33, 1);
      mem_7 = a + k;
      __CrestLoad(110, (unsigned long)mem_7, (long long)*mem_7);
      __CrestStore(111, (unsigned long)(&item));
      item = *mem_7;
      __CrestLoad(112, (unsigned long)(&k), (long long)k);
      __CrestStore(113, (unsigned long)(&i));
      i = k;
      __CrestLoad(118, (unsigned long)(&i), (long long)i);
      __CrestLoad(117, (unsigned long)0, (long long)1);
      __CrestApply2(116, 1, (long long)(i - 1));
      __CrestLoad(115, (unsigned long)0, (long long)2);
      __CrestApply2(114, 3, (long long)((i - 1) / 2));
      __CrestStore(119, (unsigned long)(&j));
      j = (i - 1) / 2;
      {
        {
          __CrestLoad(122, (unsigned long)(&i), (long long)i);
          __CrestLoad(121, (unsigned long)0, (long long)0);
          __CrestApply2(120, 14, (long long)(i > 0));
          if (i > 0) {
            __CrestBranch(123, 36, 1);
            {
              mem_8 = a + j;
              {
                __CrestLoad(127, (unsigned long)(&item), (long long)item);
                __CrestLoad(126, (unsigned long)mem_8, (long long)*mem_8);
                __CrestApply2(125, 14, (long long)(item > *mem_8));
                if (item > *mem_8) {
                  __CrestBranch(128, 39, 1);
                  mem_9 = a + i;
                  mem_10 = a + j;
                  __CrestLoad(130, (unsigned long)mem_10, (long long)*mem_10);
                  __CrestStore(131, (unsigned long)mem_9);
                  *mem_9 = *mem_10;
                  __CrestLoad(132, (unsigned long)(&j), (long long)j);
                  __CrestStore(133, (unsigned long)(&i));
                  i = j;
                  __CrestLoad(138, (unsigned long)(&i), (long long)i);
                  __CrestLoad(137, (unsigned long)0, (long long)1);
                  __CrestApply2(136, 1, (long long)(i - 1));
                  __CrestLoad(135, (unsigned long)0, (long long)2);
                  __CrestApply2(134, 3, (long long)((i - 1) / 2));
                  __CrestStore(139, (unsigned long)(&j));
                  j = (i - 1) / 2;
                } else {
                  __CrestBranch(129, 40, 0);
                }
              }
            }
          } else {
            __CrestBranch(124, 41, 0);
          }
        }
        {
          __CrestLoad(142, (unsigned long)(&i), (long long)i);
          __CrestLoad(141, (unsigned long)0, (long long)0);
          __CrestApply2(140, 14, (long long)(i > 0));
          if (i > 0) {
            __CrestBranch(143, 43, 1);
            {
              mem_11 = a + j;
              {
                __CrestLoad(147, (unsigned long)(&item), (long long)item);
                __CrestLoad(146, (unsigned long)mem_11, (long long)*mem_11);
                __CrestApply2(145, 14, (long long)(item > *mem_11));
                if (item > *mem_11) {
                  __CrestBranch(148, 46, 1);
                  mem_12 = a + i;
                  mem_13 = a + j;
                  __CrestLoad(150, (unsigned long)mem_13, (long long)*mem_13);
                  __CrestStore(151, (unsigned long)mem_12);
                  *mem_12 = *mem_13;
                  __CrestLoad(152, (unsigned long)(&j), (long long)j);
                  __CrestStore(153, (unsigned long)(&i));
                  i = j;
                  __CrestLoad(158, (unsigned long)(&i), (long long)i);
                  __CrestLoad(157, (unsigned long)0, (long long)1);
                  __CrestApply2(156, 1, (long long)(i - 1));
                  __CrestLoad(155, (unsigned long)0, (long long)2);
                  __CrestApply2(154, 3, (long long)((i - 1) / 2));
                  __CrestStore(159, (unsigned long)(&j));
                  j = (i - 1) / 2;
                } else {
                  __CrestBranch(149, 47, 0);
                }
              }
            }
          } else {
            __CrestBranch(144, 48, 0);
          }
        }
      }
      mem_14 = a + i;
      __CrestLoad(160, (unsigned long)(&item), (long long)item);
      __CrestStore(161, (unsigned long)mem_14);
      *mem_14 = item;
      __CrestLoad(164, (unsigned long)(&k), (long long)k);
      __CrestLoad(163, (unsigned long)0, (long long)1);
      __CrestApply2(162, 0, (long long)(k + 1));
      __CrestStore(165, (unsigned long)(&k));
      k++;
    } else {
      __CrestBranch(109, 50, 0);
    }
  }
  {
    __CrestLoad(168, (unsigned long)(&k), (long long)k);
    __CrestLoad(167, (unsigned long)(&n), (long long)n);
    __CrestApply2(166, 16, (long long)(k < n));
    if (k < n) {
      __CrestBranch(169, 52, 1);
      mem_15 = a + k;
      __CrestLoad(171, (unsigned long)mem_15, (long long)*mem_15);
      __CrestStore(172, (unsigned long)(&item));
      item = *mem_15;
      __CrestLoad(173, (unsigned long)(&k), (long long)k);
      __CrestStore(174, (unsigned long)(&i));
      i = k;
      __CrestLoad(179, (unsigned long)(&i), (long long)i);
      __CrestLoad(178, (unsigned long)0, (long long)1);
      __CrestApply2(177, 1, (long long)(i - 1));
      __CrestLoad(176, (unsigned long)0, (long long)2);
      __CrestApply2(175, 3, (long long)((i - 1) / 2));
      __CrestStore(180, (unsigned long)(&j));
      j = (i - 1) / 2;
      {
        {
          __CrestLoad(183, (unsigned long)(&i), (long long)i);
          __CrestLoad(182, (unsigned long)0, (long long)0);
          __CrestApply2(181, 14, (long long)(i > 0));
          if (i > 0) {
            __CrestBranch(184, 55, 1);
            {
              mem_16 = a + j;
              {
                __CrestLoad(188, (unsigned long)(&item), (long long)item);
                __CrestLoad(187, (unsigned long)mem_16, (long long)*mem_16);
                __CrestApply2(186, 14, (long long)(item > *mem_16));
                if (item > *mem_16) {
                  __CrestBranch(189, 58, 1);
                  mem_17 = a + i;
                  mem_18 = a + j;
                  __CrestLoad(191, (unsigned long)mem_18, (long long)*mem_18);
                  __CrestStore(192, (unsigned long)mem_17);
                  *mem_17 = *mem_18;
                  __CrestLoad(193, (unsigned long)(&j), (long long)j);
                  __CrestStore(194, (unsigned long)(&i));
                  i = j;
                  __CrestLoad(199, (unsigned long)(&i), (long long)i);
                  __CrestLoad(198, (unsigned long)0, (long long)1);
                  __CrestApply2(197, 1, (long long)(i - 1));
                  __CrestLoad(196, (unsigned long)0, (long long)2);
                  __CrestApply2(195, 3, (long long)((i - 1) / 2));
                  __CrestStore(200, (unsigned long)(&j));
                  j = (i - 1) / 2;
                } else {
                  __CrestBranch(190, 59, 0);
                }
              }
            }
          } else {
            __CrestBranch(185, 60, 0);
          }
        }
        {
          __CrestLoad(203, (unsigned long)(&i), (long long)i);
          __CrestLoad(202, (unsigned long)0, (long long)0);
          __CrestApply2(201, 14, (long long)(i > 0));
          if (i > 0) {
            __CrestBranch(204, 62, 1);
            {
              mem_19 = a + j;
              {
                __CrestLoad(208, (unsigned long)(&item), (long long)item);
                __CrestLoad(207, (unsigned long)mem_19, (long long)*mem_19);
                __CrestApply2(206, 14, (long long)(item > *mem_19));
                if (item > *mem_19) {
                  __CrestBranch(209, 65, 1);
                  mem_20 = a + i;
                  mem_21 = a + j;
                  __CrestLoad(211, (unsigned long)mem_21, (long long)*mem_21);
                  __CrestStore(212, (unsigned long)mem_20);
                  *mem_20 = *mem_21;
                  __CrestLoad(213, (unsigned long)(&j), (long long)j);
                  __CrestStore(214, (unsigned long)(&i));
                  i = j;
                  __CrestLoad(219, (unsigned long)(&i), (long long)i);
                  __CrestLoad(218, (unsigned long)0, (long long)1);
                  __CrestApply2(217, 1, (long long)(i - 1));
                  __CrestLoad(216, (unsigned long)0, (long long)2);
                  __CrestApply2(215, 3, (long long)((i - 1) / 2));
                  __CrestStore(220, (unsigned long)(&j));
                  j = (i - 1) / 2;
                } else {
                  __CrestBranch(210, 66, 0);
                }
              }
            }
          } else {
            __CrestBranch(205, 67, 0);
          }
        }
      }
      mem_22 = a + i;
      __CrestLoad(221, (unsigned long)(&item), (long long)item);
      __CrestStore(222, (unsigned long)mem_22);
      *mem_22 = item;
      __CrestLoad(225, (unsigned long)(&k), (long long)k);
      __CrestLoad(224, (unsigned long)0, (long long)1);
      __CrestApply2(223, 0, (long long)(k + 1));
      __CrestStore(226, (unsigned long)(&k));
      k++;
    } else {
      __CrestBranch(170, 69, 0);
    }
  }
}
{
  __CrestReturn(227);
  return;
}
}
}


x86 assembly (clang, -O0):
<heapify>:
push   %rbp
mov    %rsp,%rbp
sub    $0xa0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    $0x66,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1070 <__CrestCall@plt>
lea    -0xc(%rbp),%rsi
mov    $0x65,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    $0x67,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x10(%rbp),%rsi
mov    $0x68,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
movl   $0x1,-0x10(%rbp)
lea    -0x10(%rbp),%rsi
movslq -0x10(%rbp),%rdx
mov    $0x6b,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0xc(%rbp),%rsi
movslq -0xc(%rbp),%rdx
mov    $0x6a,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x10(%rbp),%eax
cmp    -0xc(%rbp),%eax
setl   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0x69,%edi
mov    $0x10,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    -0x10(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    184b <heapify+0x6eb>
mov    $0x6c,%edi
mov    $0x21,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x28(%rbp),%rsi
mov    -0x28(%rbp),%rax
movslq (%rax),%rdx
mov    $0x6e,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x1c(%rbp),%rsi
mov    $0x6f,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x28(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1c(%rbp)
lea    -0x10(%rbp),%rsi
movslq -0x10(%rbp),%rdx
mov    $0x70,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x14(%rbp),%rsi
mov    $0x71,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x10(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0x76,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0x75,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
movslq %eax,%rdx
mov    $0x74,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    $0x73,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x2,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
movslq %eax,%rdx
mov    $0x72,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x18(%rbp),%rsi
mov    $0x77,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0x7a,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0x79,%edi
xor    %eax,%eax
mov    %eax,%edx
mov    %rdx,%rsi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
cmpl   $0x0,-0x14(%rbp)
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0x78,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
cmpl   $0x0,-0x14(%rbp)
jle    155d <heapify+0x3fd>
mov    $0x7b,%edi
mov    $0x24,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x30(%rbp)
lea    -0x1c(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
mov    $0x7f,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x30(%rbp),%rsi
mov    -0x30(%rbp),%rax
movslq (%rax),%rdx
mov    $0x7e,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x1c(%rbp),%eax
mov    -0x30(%rbp),%rcx
cmp    (%rcx),%eax
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0x7d,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    -0x1c(%rbp),%eax
mov    -0x30(%rbp),%rcx
cmp    (%rcx),%eax
jle    1545 <heapify+0x3e5>
mov    $0x80,%edi
mov    $0x27,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rsi
mov    -0x40(%rbp),%rax
movslq (%rax),%rdx
mov    $0x82,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x38(%rbp),%rsi
mov    $0x83,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x40(%rbp),%rax
mov    (%rax),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x18(%rbp),%rsi
movslq -0x18(%rbp),%rdx
mov    $0x84,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x14(%rbp),%rsi
mov    $0x85,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x18(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0x8a,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0x89,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
movslq %eax,%rdx
mov    $0x88,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    $0x87,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x2,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
movslq %eax,%rdx
mov    $0x86,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x18(%rbp),%rsi
mov    $0x8b,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
jmp    1558 <heapify+0x3f8>
mov    $0x81,%edi
mov    $0x28,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
jmp    1570 <heapify+0x410>
mov    $0x7c,%edi
mov    $0x29,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0x8e,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0x8d,%edi
xor    %eax,%eax
mov    %eax,%edx
mov    %rdx,%rsi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
cmpl   $0x0,-0x14(%rbp)
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0x8c,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
cmpl   $0x0,-0x14(%rbp)
jle    179a <heapify+0x63a>
mov    $0x8f,%edi
mov    $0x2b,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
lea    -0x1c(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
mov    $0x93,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x48(%rbp),%rsi
mov    -0x48(%rbp),%rax
movslq (%rax),%rdx
mov    $0x92,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x1c(%rbp),%eax
mov    -0x48(%rbp),%rcx
cmp    (%rcx),%eax
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0x91,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    -0x1c(%rbp),%eax
mov    -0x48(%rbp),%rcx
cmp    (%rcx),%eax
jle    1782 <heapify+0x622>
mov    $0x94,%edi
mov    $0x2e,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x50(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x58(%rbp)
mov    -0x58(%rbp),%rsi
mov    -0x58(%rbp),%rax
movslq (%rax),%rdx
mov    $0x96,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x50(%rbp),%rsi
mov    $0x97,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x58(%rbp),%rax
mov    (%rax),%ecx
mov    -0x50(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x18(%rbp),%rsi
movslq -0x18(%rbp),%rdx
mov    $0x98,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x14(%rbp),%rsi
mov    $0x99,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x18(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0x9e,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0x9d,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
movslq %eax,%rdx
mov    $0x9c,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    $0x9b,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x2,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
movslq %eax,%rdx
mov    $0x9a,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x18(%rbp),%rsi
mov    $0x9f,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
jmp    1795 <heapify+0x635>
mov    $0x95,%edi
mov    $0x2f,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
jmp    17ad <heapify+0x64d>
mov    $0x90,%edi
mov    $0x30,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x60(%rbp)
lea    -0x1c(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
mov    $0xa0,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x60(%rbp),%rsi
mov    $0xa1,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x1c(%rbp),%ecx
mov    -0x60(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x10(%rbp),%rsi
movslq -0x10(%rbp),%rdx
mov    $0xa4,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xa3,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rdx
mov    $0xa2,%edi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x10(%rbp),%rsi
mov    $0xa5,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    185e <heapify+0x6fe>
mov    $0x6d,%edi
mov    $0x32,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
lea    -0x10(%rbp),%rsi
movslq -0x10(%rbp),%rdx
mov    $0xa8,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0xc(%rbp),%rsi
movslq -0xc(%rbp),%rdx
mov    $0xa7,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x10(%rbp),%eax
cmp    -0xc(%rbp),%eax
setl   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0xa6,%edi
mov    $0x10,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    -0x10(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    1f17 <heapify+0xdb7>
mov    $0xa9,%edi
mov    $0x34,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rsi
mov    -0x68(%rbp),%rax
movslq (%rax),%rdx
mov    $0xab,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x1c(%rbp),%rsi
mov    $0xac,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x68(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x1c(%rbp)
lea    -0x10(%rbp),%rsi
movslq -0x10(%rbp),%rdx
mov    $0xad,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x14(%rbp),%rsi
mov    $0xae,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x10(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0xb3,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xb2,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
movslq %eax,%rdx
mov    $0xb1,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    $0xb0,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x2,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
movslq %eax,%rdx
mov    $0xaf,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x18(%rbp),%rsi
mov    $0xb4,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0xb7,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xb6,%edi
xor    %eax,%eax
mov    %eax,%edx
mov    %rdx,%rsi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
cmpl   $0x0,-0x14(%rbp)
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0xb5,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
cmpl   $0x0,-0x14(%rbp)
jle    1bfc <heapify+0xa9c>
mov    $0xb8,%edi
mov    $0x37,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x70(%rbp)
lea    -0x1c(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
mov    $0xbc,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x70(%rbp),%rsi
mov    -0x70(%rbp),%rax
movslq (%rax),%rdx
mov    $0xbb,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x1c(%rbp),%eax
mov    -0x70(%rbp),%rcx
cmp    (%rcx),%eax
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0xba,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    -0x1c(%rbp),%eax
mov    -0x70(%rbp),%rcx
cmp    (%rcx),%eax
jle    1be4 <heapify+0xa84>
mov    $0xbd,%edi
mov    $0x3a,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x78(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x80(%rbp)
mov    -0x80(%rbp),%rsi
mov    -0x80(%rbp),%rax
movslq (%rax),%rdx
mov    $0xbf,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x78(%rbp),%rsi
mov    $0xc0,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x80(%rbp),%rax
mov    (%rax),%ecx
mov    -0x78(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x18(%rbp),%rsi
movslq -0x18(%rbp),%rdx
mov    $0xc1,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x14(%rbp),%rsi
mov    $0xc2,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x18(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0xc7,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xc6,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
movslq %eax,%rdx
mov    $0xc5,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    $0xc4,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x2,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
movslq %eax,%rdx
mov    $0xc3,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x18(%rbp),%rsi
mov    $0xc8,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
jmp    1bf7 <heapify+0xa97>
mov    $0xbe,%edi
mov    $0x3b,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
jmp    1c0f <heapify+0xaaf>
mov    $0xb9,%edi
mov    $0x3c,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0xcb,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xca,%edi
xor    %eax,%eax
mov    %eax,%edx
mov    %rdx,%rsi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
cmpl   $0x0,-0x14(%rbp)
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0xc9,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
cmpl   $0x0,-0x14(%rbp)
jle    1e5d <heapify+0xcfd>
mov    $0xcc,%edi
mov    $0x3e,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x88(%rbp)
lea    -0x1c(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
mov    $0xd0,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x88(%rbp),%rsi
mov    -0x88(%rbp),%rax
movslq (%rax),%rdx
mov    $0xcf,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x1c(%rbp),%eax
mov    -0x88(%rbp),%rcx
cmp    (%rcx),%eax
setg   %al
and    $0x1,%al
movzbl %al,%eax
movslq %eax,%rdx
mov    $0xce,%edi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    -0x1c(%rbp),%eax
mov    -0x88(%rbp),%rcx
cmp    (%rcx),%eax
jle    1e45 <heapify+0xce5>
mov    $0xd1,%edi
mov    $0x41,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x90(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rsi
mov    -0x98(%rbp),%rax
movslq (%rax),%rdx
mov    $0xd3,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x90(%rbp),%rsi
mov    $0xd4,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x98(%rbp),%rax
mov    (%rax),%ecx
mov    -0x90(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x18(%rbp),%rsi
movslq -0x18(%rbp),%rdx
mov    $0xd5,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
lea    -0x14(%rbp),%rsi
mov    $0xd6,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x18(%rbp),%eax
mov    %eax,-0x14(%rbp)
lea    -0x14(%rbp),%rsi
movslq -0x14(%rbp),%rdx
mov    $0xdb,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xda,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
movslq %eax,%rdx
mov    $0xd9,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
mov    $0xd8,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x2,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
movslq %eax,%rdx
mov    $0xd7,%edi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x18(%rbp),%rsi
mov    $0xdc,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x14(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18(%rbp)
jmp    1e58 <heapify+0xcf8>
mov    $0xd2,%edi
mov    $0x42,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
jmp    1e70 <heapify+0xd10>
mov    $0xcd,%edi
mov    $0x43,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    -0x8(%rbp),%rax
movslq -0x14(%rbp),%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0xa0(%rbp)
lea    -0x1c(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
mov    $0xdd,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0xa0(%rbp),%rsi
mov    $0xde,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x1c(%rbp),%ecx
mov    -0xa0(%rbp),%rax
mov    %ecx,(%rax)
lea    -0x10(%rbp),%rsi
movslq -0x10(%rbp),%rdx
mov    $0xe1,%edi
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    $0xe0,%edi
xor    %eax,%eax
mov    %eax,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1080 <__CrestLoad@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
movslq %eax,%rdx
mov    $0xdf,%edi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <__CrestApply2@plt>
lea    -0x10(%rbp),%rsi
mov    $0xe2,%edi
mov    $0x0,%al
call   1050 <__CrestStore@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1f2a <heapify+0xdca>
mov    $0xaa,%edi
mov    $0x45,%esi
xor    %edx,%edx
mov    $0x0,%al
call   1040 <__CrestBranch@plt>
mov    $0xe3,%edi
mov    $0x0,%al
call   1060 <__CrestReturn@plt>
add    $0xa0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<heapify>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %rdi,%r15
mov    %esi,0x14(%rsp)
mov    $0x66,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1070 <__CrestCall@plt>
lea    0x14(%rsp),%r14
mov    $0x65,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    $0x1,%edx
mov    $0x67,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x10(%rsp),%rbx
mov    $0x68,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movl   $0x1,0x10(%rsp)
mov    $0x1,%edx
mov    $0x6b,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x14(%rsp),%rdx
mov    $0x6a,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x10(%rsp),%eax
xor    %edx,%edx
cmp    0x14(%rsp),%eax
setl   %dl
mov    $0x69,%edi
mov    $0x10,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    0x10(%rsp),%eax
cmp    0x14(%rsp),%eax
jge    150e <heapify+0x3ae>
mov    $0x6c,%edi
mov    $0x21,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x10(%rsp),%rbx
lea    (%r15,%rbx,4),%rsi
movslq (%r15,%rbx,4),%rdx
mov    $0x6e,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0xc(%rsp),%rsi
mov    $0x6f,%edi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    (%r15,%rbx,4),%eax
mov    %eax,0xc(%rsp)
movslq 0x10(%rsp),%rdx
lea    0x10(%rsp),%rsi
mov    $0x70,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x4(%rsp),%r14
mov    $0x71,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x10(%rsp),%rdx
mov    %edx,0x4(%rsp)
mov    $0x76,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0x75,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x4(%rsp),%rdx
add    $0xffffffffffffffff,%rdx
mov    $0x74,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x2,%edx
mov    $0x73,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
movslq %eax,%rdx
mov    $0x72,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
lea    0x8(%rsp),%rsi
mov    $0x77,%edi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x4(%rsp),%rdx
lea    -0x1(%rdx),%eax
shr    $0x1f,%eax
add    %edx,%eax
add    $0xffffffff,%eax
sar    %eax
mov    %eax,0x8(%rsp)
mov    $0x7a,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x79,%edi
xor    %esi,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
xor    %edx,%edx
cmpl   $0x0,0x4(%rsp)
setg   %dl
mov    $0x78,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
cmpl   $0x0,0x4(%rsp)
jle    152a <heapify+0x3ca>
mov    $0x7b,%edi
mov    $0x24,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%r14
movslq 0xc(%rsp),%rdx
lea    0xc(%rsp),%rsi
mov    $0x7f,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq (%r15,%rbx,4),%rdx
mov    $0x7e,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0xc(%rsp),%eax
xor    %edx,%edx
cmp    (%r15,%rbx,4),%eax
setg   %dl
mov    $0x7d,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    0xc(%rsp),%eax
cmp    (%r15,%rbx,4),%eax
jle    1536 <heapify+0x3d6>
mov    $0x80,%edi
mov    $0x27,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%r12
lea    (%r15,%r12,4),%r14
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%rsi
movslq (%r15,%rbx,4),%rdx
mov    $0x82,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x83,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    (%r15,%rbx,4),%eax
mov    %eax,(%r15,%r12,4)
movslq 0x8(%rsp),%rdx
lea    0x8(%rsp),%r14
mov    $0x84,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x4(%rsp),%rbx
mov    $0x85,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x8(%rsp),%rdx
mov    %edx,0x4(%rsp)
mov    $0x8a,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0x89,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x4(%rsp),%rdx
add    $0xffffffffffffffff,%rdx
mov    $0x88,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x2,%edx
mov    $0x87,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
movslq %eax,%rdx
mov    $0x86,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x8b,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
mov    %eax,0x8(%rsp)
jmp    1549 <heapify+0x3e9>
mov    $0x6d,%edi
mov    $0x32,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
mov    0x10(%rsp),%eax
jmp    17de <heapify+0x67e>
mov    $0x7c,%edi
mov    $0x29,%esi
jmp    1540 <heapify+0x3e0>
mov    $0x81,%edi
mov    $0x28,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%rdx
lea    0x4(%rsp),%rsi
mov    $0x8e,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x8d,%edi
xor    %esi,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
xor    %edx,%edx
cmpl   $0x0,0x4(%rsp)
setg   %dl
mov    $0x8c,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
cmpl   $0x0,0x4(%rsp)
jle    172c <heapify+0x5cc>
mov    $0x8f,%edi
mov    $0x2b,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%r14
movslq 0xc(%rsp),%rdx
lea    0xc(%rsp),%rsi
mov    $0x93,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq (%r15,%rbx,4),%rdx
mov    $0x92,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0xc(%rsp),%eax
xor    %edx,%edx
cmp    (%r15,%rbx,4),%eax
setg   %dl
mov    $0x91,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    0xc(%rsp),%eax
cmp    (%r15,%rbx,4),%eax
jle    1738 <heapify+0x5d8>
mov    $0x94,%edi
mov    $0x2e,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%r12
lea    (%r15,%r12,4),%r14
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%rsi
movslq (%r15,%rbx,4),%rdx
mov    $0x96,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x97,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    (%r15,%rbx,4),%eax
mov    %eax,(%r15,%r12,4)
movslq 0x8(%rsp),%rdx
lea    0x8(%rsp),%r14
mov    $0x98,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x4(%rsp),%rbx
mov    $0x99,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x8(%rsp),%rdx
mov    %edx,0x4(%rsp)
mov    $0x9e,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0x9d,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x4(%rsp),%rdx
add    $0xffffffffffffffff,%rdx
mov    $0x9c,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x2,%edx
mov    $0x9b,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
movslq %eax,%rdx
mov    $0x9a,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x9f,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
mov    %eax,0x8(%rsp)
jmp    174b <heapify+0x5eb>
mov    $0x90,%edi
mov    $0x30,%esi
jmp    1742 <heapify+0x5e2>
mov    $0x95,%edi
mov    $0x2f,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%rbx
lea    (%r15,%rbx,4),%r14
movslq 0xc(%rsp),%rdx
lea    0xc(%rsp),%rsi
mov    $0xa0,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0xa1,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0xc(%rsp),%eax
mov    %eax,(%r15,%rbx,4)
movslq 0x10(%rsp),%rdx
lea    0x10(%rsp),%rbx
mov    $0xa4,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0xa3,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x10(%rsp),%rdx
add    $0x1,%rdx
mov    $0xa2,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0xa5,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0x10(%rsp),%eax
add    $0x1,%eax
mov    %eax,0x10(%rsp)
movslq %eax,%rdx
lea    0x10(%rsp),%rsi
mov    $0xa8,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x14(%rsp),%rdx
lea    0x14(%rsp),%rsi
mov    $0xa7,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x10(%rsp),%eax
xor    %edx,%edx
cmp    0x14(%rsp),%eax
setl   %dl
mov    $0xa6,%edi
mov    $0x10,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    0x10(%rsp),%eax
cmp    0x14(%rsp),%eax
jge    1b28 <heapify+0x9c8>
mov    $0xa9,%edi
mov    $0x34,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x10(%rsp),%rbx
lea    (%r15,%rbx,4),%rsi
movslq (%r15,%rbx,4),%rdx
mov    $0xab,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0xc(%rsp),%rsi
mov    $0xac,%edi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    (%r15,%rbx,4),%eax
mov    %eax,0xc(%rsp)
movslq 0x10(%rsp),%rdx
lea    0x10(%rsp),%rsi
mov    $0xad,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x4(%rsp),%r14
mov    $0xae,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x10(%rsp),%rdx
mov    %edx,0x4(%rsp)
mov    $0xb3,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0xb2,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x4(%rsp),%rdx
add    $0xffffffffffffffff,%rdx
mov    $0xb1,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x2,%edx
mov    $0xb0,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
movslq %eax,%rdx
mov    $0xaf,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
lea    0x8(%rsp),%rsi
mov    $0xb4,%edi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x4(%rsp),%rdx
lea    -0x1(%rdx),%eax
shr    $0x1f,%eax
add    %edx,%eax
add    $0xffffffff,%eax
sar    %eax
mov    %eax,0x8(%rsp)
mov    $0xb7,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0xb6,%edi
xor    %esi,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
xor    %edx,%edx
cmpl   $0x0,0x4(%rsp)
setg   %dl
mov    $0xb5,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
cmpl   $0x0,0x4(%rsp)
jle    1b40 <heapify+0x9e0>
mov    $0xb8,%edi
mov    $0x37,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%r14
movslq 0xc(%rsp),%rdx
lea    0xc(%rsp),%rsi
mov    $0xbc,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq (%r15,%rbx,4),%rdx
mov    $0xbb,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0xc(%rsp),%eax
xor    %edx,%edx
cmp    (%r15,%rbx,4),%eax
setg   %dl
mov    $0xba,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    0xc(%rsp),%eax
cmp    (%r15,%rbx,4),%eax
jle    1b4c <heapify+0x9ec>
mov    $0xbd,%edi
mov    $0x3a,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%r12
lea    (%r15,%r12,4),%r14
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%rsi
movslq (%r15,%rbx,4),%rdx
mov    $0xbf,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0xc0,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    (%r15,%rbx,4),%eax
mov    %eax,(%r15,%r12,4)
movslq 0x8(%rsp),%rdx
lea    0x8(%rsp),%r14
mov    $0xc1,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x4(%rsp),%rbx
mov    $0xc2,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x8(%rsp),%rdx
mov    %edx,0x4(%rsp)
mov    $0xc7,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0xc6,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x4(%rsp),%rdx
add    $0xffffffffffffffff,%rdx
mov    $0xc5,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x2,%edx
mov    $0xc4,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
movslq %eax,%rdx
mov    $0xc3,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0xc8,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
mov    %eax,0x8(%rsp)
jmp    1b5f <heapify+0x9ff>
mov    $0xaa,%edi
mov    $0x45,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
jmp    1dee <heapify+0xc8e>
mov    $0xb9,%edi
mov    $0x3c,%esi
jmp    1b56 <heapify+0x9f6>
mov    $0xbe,%edi
mov    $0x3b,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%rdx
lea    0x4(%rsp),%rsi
mov    $0xcb,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0xca,%edi
xor    %esi,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
xor    %edx,%edx
cmpl   $0x0,0x4(%rsp)
setg   %dl
mov    $0xc9,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
cmpl   $0x0,0x4(%rsp)
jle    1d42 <heapify+0xbe2>
mov    $0xcc,%edi
mov    $0x3e,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%r14
movslq 0xc(%rsp),%rdx
lea    0xc(%rsp),%rsi
mov    $0xd0,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq (%r15,%rbx,4),%rdx
mov    $0xcf,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0xc(%rsp),%eax
xor    %edx,%edx
cmp    (%r15,%rbx,4),%eax
setg   %dl
mov    $0xce,%edi
mov    $0xe,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    0xc(%rsp),%eax
cmp    (%r15,%rbx,4),%eax
jle    1d4e <heapify+0xbee>
mov    $0xd1,%edi
mov    $0x41,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%r12
lea    (%r15,%r12,4),%r14
movslq 0x8(%rsp),%rbx
lea    (%r15,%rbx,4),%rsi
movslq (%r15,%rbx,4),%rdx
mov    $0xd3,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0xd4,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    (%r15,%rbx,4),%eax
mov    %eax,(%r15,%r12,4)
movslq 0x8(%rsp),%rdx
lea    0x8(%rsp),%r14
mov    $0xd5,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
lea    0x4(%rsp),%rbx
mov    $0xd6,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
movslq 0x8(%rsp),%rdx
mov    %edx,0x4(%rsp)
mov    $0xdb,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0xda,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x4(%rsp),%rdx
add    $0xffffffffffffffff,%rdx
mov    $0xd9,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0x2,%edx
mov    $0xd8,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
movslq %eax,%rdx
mov    $0xd7,%edi
mov    $0x3,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0xdc,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0x4(%rsp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
shr    $0x1f,%ecx
add    %ecx,%eax
add    $0xffffffff,%eax
sar    %eax
mov    %eax,0x8(%rsp)
jmp    1d61 <heapify+0xc01>
mov    $0xcd,%edi
mov    $0x43,%esi
jmp    1d58 <heapify+0xbf8>
mov    $0xd2,%edi
mov    $0x42,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1040 <__CrestBranch@plt>
movslq 0x4(%rsp),%rbx
lea    (%r15,%rbx,4),%r14
movslq 0xc(%rsp),%rdx
lea    0xc(%rsp),%rsi
mov    $0xdd,%edi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0xde,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
mov    0xc(%rsp),%eax
mov    %eax,(%r15,%rbx,4)
movslq 0x10(%rsp),%rdx
lea    0x10(%rsp),%rbx
mov    $0xe1,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
mov    $0x1,%edx
mov    $0xe0,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1080 <__CrestLoad@plt>
movslq 0x10(%rsp),%rdx
add    $0x1,%rdx
mov    $0xdf,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1030 <__CrestApply2@plt>
mov    $0xe2,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <__CrestStore@plt>
addl   $0x1,0x10(%rsp)
mov    $0xe3,%edi
xor    %eax,%eax
call   1060 <__CrestReturn@plt>
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define void @heapify(i32* %0, i32 %1) {
%3 = alloca i32*
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32*
%10 = alloca i32*
%11 = alloca i32*
%12 = alloca i32*
%13 = alloca i32*
%14 = alloca i32*
%15 = alloca i32*
%16 = alloca i32*
%17 = alloca i32*
%18 = alloca i32*
%19 = alloca i32*
%20 = alloca i32*
%21 = alloca i32*
%22 = alloca i32*
%23 = alloca i32*
%24 = alloca i32*
store i32* %0, i32** %3
store i32 %1, i32* %4
%25 = call i32 (i32, i32, ...) bitcast (i32 (...)* @__CrestCall to i32 (i32, i32, ...)*)(i32 102, i32 3)
%26 = ptrtoint i32* %4 to i64
%27 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 101, i64 %26)
%28 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 103, i64 0, i64 1)
%29 = ptrtoint i32* %5 to i64
%30 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 104, i64 %29)
store i32 1, i32* %5
%31 = ptrtoint i32* %5 to i64
%32 = load i32, i32* %5
%33 = sext i32 %32 to i64
%34 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 107, i64 %31, i64 %33)
%35 = ptrtoint i32* %4 to i64
%36 = load i32, i32* %4
%37 = sext i32 %36 to i64
%38 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 106, i64 %35, i64 %37)
%39 = load i32, i32* %5
%40 = load i32, i32* %4
%41 = icmp slt i32 %39, %40
%42 = zext i1 %41 to i32
%43 = sext i32 %42 to i64
%44 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 105, i32 16, i64 %43)
%45 = load i32, i32* %5
%46 = load i32, i32* %4
%47 = icmp slt i32 %45, %46
br i1 %47, label %48, label %305
48: ; preds = %2
%49 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 108, i32 33, i32 1)
%50 = load i32*, i32** %3
%51 = load i32, i32* %5
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds i32, i32* %50, i64 %52
store i32* %53, i32** %9
%54 = load i32*, i32** %9
%55 = ptrtoint i32* %54 to i64
%56 = load i32*, i32** %9
%57 = load i32, i32* %56
%58 = sext i32 %57 to i64
%59 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 110, i64 %55, i64 %58)
%60 = ptrtoint i32* %8 to i64
%61 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 111, i64 %60)
%62 = load i32*, i32** %9
%63 = load i32, i32* %62
store i32 %63, i32* %8
%64 = ptrtoint i32* %5 to i64
%65 = load i32, i32* %5
%66 = sext i32 %65 to i64
%67 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 112, i64 %64, i64 %66)
%68 = ptrtoint i32* %6 to i64
%69 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 113, i64 %68)
%70 = load i32, i32* %5
store i32 %70, i32* %6
%71 = ptrtoint i32* %6 to i64
%72 = load i32, i32* %6
%73 = sext i32 %72 to i64
%74 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 118, i64 %71, i64 %73)
%75 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 117, i64 0, i64 1)
%76 = load i32, i32* %6
%77 = sub nsw i32 %76, 1
%78 = sext i32 %77 to i64
%79 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 116, i32 1, i64 %78)
%80 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 115, i64 0, i64 2)
%81 = load i32, i32* %6
%82 = sub nsw i32 %81, 1
%83 = sdiv i32 %82, 2
%84 = sext i32 %83 to i64
%85 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 114, i32 3, i64 %84)
%86 = ptrtoint i32* %7 to i64
%87 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 119, i64 %86)
%88 = load i32, i32* %6
%89 = sub nsw i32 %88, 1
%90 = sdiv i32 %89, 2
store i32 %90, i32* %7
%91 = ptrtoint i32* %6 to i64
%92 = load i32, i32* %6
%93 = sext i32 %92 to i64
%94 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 122, i64 %91, i64 %93)
%95 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 121, i64 0, i64 0)
%96 = load i32, i32* %6
%97 = icmp sgt i32 %96, 0
%98 = zext i1 %97 to i32
%99 = sext i32 %98 to i64
%100 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 120, i32 14, i64 %99)
%101 = load i32, i32* %6
%102 = icmp sgt i32 %101, 0
br i1 %102, label %103, label %182
103: ; preds = %48
%104 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 123, i32 36, i32 1)
%105 = load i32*, i32** %3
%106 = load i32, i32* %7
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds i32, i32* %105, i64 %107
store i32* %108, i32** %10
%109 = ptrtoint i32* %8 to i64
%110 = load i32, i32* %8
%111 = sext i32 %110 to i64
%112 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 127, i64 %109, i64 %111)
%113 = load i32*, i32** %10
%114 = ptrtoint i32* %113 to i64
%115 = load i32*, i32** %10
%116 = load i32, i32* %115
%117 = sext i32 %116 to i64
%118 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 126, i64 %114, i64 %117)
%119 = load i32, i32* %8
%120 = load i32*, i32** %10
%121 = load i32, i32* %120
%122 = icmp sgt i32 %119, %121
%123 = zext i1 %122 to i32
%124 = sext i32 %123 to i64
%125 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 125, i32 14, i64 %124)
%126 = load i32, i32* %8
%127 = load i32*, i32** %10
%128 = load i32, i32* %127
%129 = icmp sgt i32 %126, %128
br i1 %129, label %130, label %179
130: ; preds = %103
%131 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 128, i32 39, i32 1)
%132 = load i32*, i32** %3
%133 = load i32, i32* %6
%134 = sext i32 %133 to i64
%135 = getelementptr inbounds i32, i32* %132, i64 %134
store i32* %135, i32** %11
%136 = load i32*, i32** %3
%137 = load i32, i32* %7
%138 = sext i32 %137 to i64
%139 = getelementptr inbounds i32, i32* %136, i64 %138
store i32* %139, i32** %12
%140 = load i32*, i32** %12
%141 = ptrtoint i32* %140 to i64
%142 = load i32*, i32** %12
%143 = load i32, i32* %142
%144 = sext i32 %143 to i64
%145 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 130, i64 %141, i64 %144)
%146 = load i32*, i32** %11
%147 = ptrtoint i32* %146 to i64
%148 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 131, i64 %147)
%149 = load i32*, i32** %12
%150 = load i32, i32* %149
%151 = load i32*, i32** %11
store i32 %150, i32* %151
%152 = ptrtoint i32* %7 to i64
%153 = load i32, i32* %7
%154 = sext i32 %153 to i64
%155 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 132, i64 %152, i64 %154)
%156 = ptrtoint i32* %6 to i64
%157 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 133, i64 %156)
%158 = load i32, i32* %7
store i32 %158, i32* %6
%159 = ptrtoint i32* %6 to i64
%160 = load i32, i32* %6
%161 = sext i32 %160 to i64
%162 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 138, i64 %159, i64 %161)
%163 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 137, i64 0, i64 1)
%164 = load i32, i32* %6
%165 = sub nsw i32 %164, 1
%166 = sext i32 %165 to i64
%167 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 136, i32 1, i64 %166)
%168 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 135, i64 0, i64 2)
%169 = load i32, i32* %6
%170 = sub nsw i32 %169, 1
%171 = sdiv i32 %170, 2
%172 = sext i32 %171 to i64
%173 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 134, i32 3, i64 %172)
%174 = ptrtoint i32* %7 to i64
%175 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 139, i64 %174)
%176 = load i32, i32* %6
%177 = sub nsw i32 %176, 1
%178 = sdiv i32 %177, 2
store i32 %178, i32* %7
br label %181
179: ; preds = %103
%180 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 129, i32 40, i32 0)
br label %181
181: ; preds = %179, %130
br label %184
182: ; preds = %48
%183 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 124, i32 41, i32 0)
br label %184
184: ; preds = %182, %181
%185 = ptrtoint i32* %6 to i64
%186 = load i32, i32* %6
%187 = sext i32 %186 to i64
%188 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 142, i64 %185, i64 %187)
%189 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 141, i64 0, i64 0)
%190 = load i32, i32* %6
%191 = icmp sgt i32 %190, 0
%192 = zext i1 %191 to i32
%193 = sext i32 %192 to i64
%194 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 140, i32 14, i64 %193)
%195 = load i32, i32* %6
%196 = icmp sgt i32 %195, 0
br i1 %196, label %197, label %276
197: ; preds = %184
%198 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 143, i32 43, i32 1)
%199 = load i32*, i32** %3
%200 = load i32, i32* %7
%201 = sext i32 %200 to i64
%202 = getelementptr inbounds i32, i32* %199, i64 %201
store i32* %202, i32** %13
%203 = ptrtoint i32* %8 to i64
%204 = load i32, i32* %8
%205 = sext i32 %204 to i64
%206 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 147, i64 %203, i64 %205)
%207 = load i32*, i32** %13
%208 = ptrtoint i32* %207 to i64
%209 = load i32*, i32** %13
%210 = load i32, i32* %209
%211 = sext i32 %210 to i64
%212 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 146, i64 %208, i64 %211)
%213 = load i32, i32* %8
%214 = load i32*, i32** %13
%215 = load i32, i32* %214
%216 = icmp sgt i32 %213, %215
%217 = zext i1 %216 to i32
%218 = sext i32 %217 to i64
%219 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 145, i32 14, i64 %218)
%220 = load i32, i32* %8
%221 = load i32*, i32** %13
%222 = load i32, i32* %221
%223 = icmp sgt i32 %220, %222
br i1 %223, label %224, label %273
224: ; preds = %197
%225 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 148, i32 46, i32 1)
%226 = load i32*, i32** %3
%227 = load i32, i32* %6
%228 = sext i32 %227 to i64
%229 = getelementptr inbounds i32, i32* %226, i64 %228
store i32* %229, i32** %14
%230 = load i32*, i32** %3
%231 = load i32, i32* %7
%232 = sext i32 %231 to i64
%233 = getelementptr inbounds i32, i32* %230, i64 %232
store i32* %233, i32** %15
%234 = load i32*, i32** %15
%235 = ptrtoint i32* %234 to i64
%236 = load i32*, i32** %15
%237 = load i32, i32* %236
%238 = sext i32 %237 to i64
%239 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 150, i64 %235, i64 %238)
%240 = load i32*, i32** %14
%241 = ptrtoint i32* %240 to i64
%242 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 151, i64 %241)
%243 = load i32*, i32** %15
%244 = load i32, i32* %243
%245 = load i32*, i32** %14
store i32 %244, i32* %245
%246 = ptrtoint i32* %7 to i64
%247 = load i32, i32* %7
%248 = sext i32 %247 to i64
%249 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 152, i64 %246, i64 %248)
%250 = ptrtoint i32* %6 to i64
%251 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 153, i64 %250)
%252 = load i32, i32* %7
store i32 %252, i32* %6
%253 = ptrtoint i32* %6 to i64
%254 = load i32, i32* %6
%255 = sext i32 %254 to i64
%256 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 158, i64 %253, i64 %255)
%257 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 157, i64 0, i64 1)
%258 = load i32, i32* %6
%259 = sub nsw i32 %258, 1
%260 = sext i32 %259 to i64
%261 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 156, i32 1, i64 %260)
%262 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 155, i64 0, i64 2)
%263 = load i32, i32* %6
%264 = sub nsw i32 %263, 1
%265 = sdiv i32 %264, 2
%266 = sext i32 %265 to i64
%267 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 154, i32 3, i64 %266)
%268 = ptrtoint i32* %7 to i64
%269 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 159, i64 %268)
%270 = load i32, i32* %6
%271 = sub nsw i32 %270, 1
%272 = sdiv i32 %271, 2
store i32 %272, i32* %7
br label %275
273: ; preds = %197
%274 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 149, i32 47, i32 0)
br label %275
275: ; preds = %273, %224
br label %278
276: ; preds = %184
%277 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 144, i32 48, i32 0)
br label %278
278: ; preds = %276, %275
%279 = load i32*, i32** %3
%280 = load i32, i32* %6
%281 = sext i32 %280 to i64
%282 = getelementptr inbounds i32, i32* %279, i64 %281
store i32* %282, i32** %16
%283 = ptrtoint i32* %8 to i64
%284 = load i32, i32* %8
%285 = sext i32 %284 to i64
%286 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 160, i64 %283, i64 %285)
%287 = load i32*, i32** %16
%288 = ptrtoint i32* %287 to i64
%289 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 161, i64 %288)
%290 = load i32, i32* %8
%291 = load i32*, i32** %16
store i32 %290, i32* %291
%292 = ptrtoint i32* %5 to i64
%293 = load i32, i32* %5
%294 = sext i32 %293 to i64
%295 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 164, i64 %292, i64 %294)
%296 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 163, i64 0, i64 1)
%297 = load i32, i32* %5
%298 = add nsw i32 %297, 1
%299 = sext i32 %298 to i64
%300 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 162, i32 0, i64 %299)
%301 = ptrtoint i32* %5 to i64
%302 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 165, i64 %301)
%303 = load i32, i32* %5
%304 = add nsw i32 %303, 1
store i32 %304, i32* %5
br label %307
305: ; preds = %2
%306 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 109, i32 50, i32 0)
br label %307
307: ; preds = %305, %278
%308 = ptrtoint i32* %5 to i64
%309 = load i32, i32* %5
%310 = sext i32 %309 to i64
%311 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 168, i64 %308, i64 %310)
%312 = ptrtoint i32* %4 to i64
%313 = load i32, i32* %4
%314 = sext i32 %313 to i64
%315 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 167, i64 %312, i64 %314)
%316 = load i32, i32* %5
%317 = load i32, i32* %4
%318 = icmp slt i32 %316, %317
%319 = zext i1 %318 to i32
%320 = sext i32 %319 to i64
%321 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 166, i32 16, i64 %320)
%322 = load i32, i32* %5
%323 = load i32, i32* %4
%324 = icmp slt i32 %322, %323
br i1 %324, label %325, label %582
325: ; preds = %307
%326 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 169, i32 52, i32 1)
%327 = load i32*, i32** %3
%328 = load i32, i32* %5
%329 = sext i32 %328 to i64
%330 = getelementptr inbounds i32, i32* %327, i64 %329
store i32* %330, i32** %17
%331 = load i32*, i32** %17
%332 = ptrtoint i32* %331 to i64
%333 = load i32*, i32** %17
%334 = load i32, i32* %333
%335 = sext i32 %334 to i64
%336 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 171, i64 %332, i64 %335)
%337 = ptrtoint i32* %8 to i64
%338 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 172, i64 %337)
%339 = load i32*, i32** %17
%340 = load i32, i32* %339
store i32 %340, i32* %8
%341 = ptrtoint i32* %5 to i64
%342 = load i32, i32* %5
%343 = sext i32 %342 to i64
%344 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 173, i64 %341, i64 %343)
%345 = ptrtoint i32* %6 to i64
%346 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 174, i64 %345)
%347 = load i32, i32* %5
store i32 %347, i32* %6
%348 = ptrtoint i32* %6 to i64
%349 = load i32, i32* %6
%350 = sext i32 %349 to i64
%351 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 179, i64 %348, i64 %350)
%352 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 178, i64 0, i64 1)
%353 = load i32, i32* %6
%354 = sub nsw i32 %353, 1
%355 = sext i32 %354 to i64
%356 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 177, i32 1, i64 %355)
%357 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 176, i64 0, i64 2)
%358 = load i32, i32* %6
%359 = sub nsw i32 %358, 1
%360 = sdiv i32 %359, 2
%361 = sext i32 %360 to i64
%362 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 175, i32 3, i64 %361)
%363 = ptrtoint i32* %7 to i64
%364 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 180, i64 %363)
%365 = load i32, i32* %6
%366 = sub nsw i32 %365, 1
%367 = sdiv i32 %366, 2
store i32 %367, i32* %7
%368 = ptrtoint i32* %6 to i64
%369 = load i32, i32* %6
%370 = sext i32 %369 to i64
%371 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 183, i64 %368, i64 %370)
%372 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 182, i64 0, i64 0)
%373 = load i32, i32* %6
%374 = icmp sgt i32 %373, 0
%375 = zext i1 %374 to i32
%376 = sext i32 %375 to i64
%377 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 181, i32 14, i64 %376)
%378 = load i32, i32* %6
%379 = icmp sgt i32 %378, 0
br i1 %379, label %380, label %459
380: ; preds = %325
%381 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 184, i32 55, i32 1)
%382 = load i32*, i32** %3
%383 = load i32, i32* %7
%384 = sext i32 %383 to i64
%385 = getelementptr inbounds i32, i32* %382, i64 %384
store i32* %385, i32** %18
%386 = ptrtoint i32* %8 to i64
%387 = load i32, i32* %8
%388 = sext i32 %387 to i64
%389 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 188, i64 %386, i64 %388)
%390 = load i32*, i32** %18
%391 = ptrtoint i32* %390 to i64
%392 = load i32*, i32** %18
%393 = load i32, i32* %392
%394 = sext i32 %393 to i64
%395 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 187, i64 %391, i64 %394)
%396 = load i32, i32* %8
%397 = load i32*, i32** %18
%398 = load i32, i32* %397
%399 = icmp sgt i32 %396, %398
%400 = zext i1 %399 to i32
%401 = sext i32 %400 to i64
%402 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 186, i32 14, i64 %401)
%403 = load i32, i32* %8
%404 = load i32*, i32** %18
%405 = load i32, i32* %404
%406 = icmp sgt i32 %403, %405
br i1 %406, label %407, label %456
407: ; preds = %380
%408 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 189, i32 58, i32 1)
%409 = load i32*, i32** %3
%410 = load i32, i32* %6
%411 = sext i32 %410 to i64
%412 = getelementptr inbounds i32, i32* %409, i64 %411
store i32* %412, i32** %19
%413 = load i32*, i32** %3
%414 = load i32, i32* %7
%415 = sext i32 %414 to i64
%416 = getelementptr inbounds i32, i32* %413, i64 %415
store i32* %416, i32** %20
%417 = load i32*, i32** %20
%418 = ptrtoint i32* %417 to i64
%419 = load i32*, i32** %20
%420 = load i32, i32* %419
%421 = sext i32 %420 to i64
%422 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 191, i64 %418, i64 %421)
%423 = load i32*, i32** %19
%424 = ptrtoint i32* %423 to i64
%425 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 192, i64 %424)
%426 = load i32*, i32** %20
%427 = load i32, i32* %426
%428 = load i32*, i32** %19
store i32 %427, i32* %428
%429 = ptrtoint i32* %7 to i64
%430 = load i32, i32* %7
%431 = sext i32 %430 to i64
%432 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 193, i64 %429, i64 %431)
%433 = ptrtoint i32* %6 to i64
%434 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 194, i64 %433)
%435 = load i32, i32* %7
store i32 %435, i32* %6
%436 = ptrtoint i32* %6 to i64
%437 = load i32, i32* %6
%438 = sext i32 %437 to i64
%439 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 199, i64 %436, i64 %438)
%440 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 198, i64 0, i64 1)
%441 = load i32, i32* %6
%442 = sub nsw i32 %441, 1
%443 = sext i32 %442 to i64
%444 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 197, i32 1, i64 %443)
%445 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 196, i64 0, i64 2)
%446 = load i32, i32* %6
%447 = sub nsw i32 %446, 1
%448 = sdiv i32 %447, 2
%449 = sext i32 %448 to i64
%450 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 195, i32 3, i64 %449)
%451 = ptrtoint i32* %7 to i64
%452 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 200, i64 %451)
%453 = load i32, i32* %6
%454 = sub nsw i32 %453, 1
%455 = sdiv i32 %454, 2
store i32 %455, i32* %7
br label %458
456: ; preds = %380
%457 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 190, i32 59, i32 0)
br label %458
458: ; preds = %456, %407
br label %461
459: ; preds = %325
%460 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 185, i32 60, i32 0)
br label %461
461: ; preds = %459, %458
%462 = ptrtoint i32* %6 to i64
%463 = load i32, i32* %6
%464 = sext i32 %463 to i64
%465 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 203, i64 %462, i64 %464)
%466 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 202, i64 0, i64 0)
%467 = load i32, i32* %6
%468 = icmp sgt i32 %467, 0
%469 = zext i1 %468 to i32
%470 = sext i32 %469 to i64
%471 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 201, i32 14, i64 %470)
%472 = load i32, i32* %6
%473 = icmp sgt i32 %472, 0
br i1 %473, label %474, label %553
474: ; preds = %461
%475 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 204, i32 62, i32 1)
%476 = load i32*, i32** %3
%477 = load i32, i32* %7
%478 = sext i32 %477 to i64
%479 = getelementptr inbounds i32, i32* %476, i64 %478
store i32* %479, i32** %21
%480 = ptrtoint i32* %8 to i64
%481 = load i32, i32* %8
%482 = sext i32 %481 to i64
%483 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 208, i64 %480, i64 %482)
%484 = load i32*, i32** %21
%485 = ptrtoint i32* %484 to i64
%486 = load i32*, i32** %21
%487 = load i32, i32* %486
%488 = sext i32 %487 to i64
%489 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 207, i64 %485, i64 %488)
%490 = load i32, i32* %8
%491 = load i32*, i32** %21
%492 = load i32, i32* %491
%493 = icmp sgt i32 %490, %492
%494 = zext i1 %493 to i32
%495 = sext i32 %494 to i64
%496 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 206, i32 14, i64 %495)
%497 = load i32, i32* %8
%498 = load i32*, i32** %21
%499 = load i32, i32* %498
%500 = icmp sgt i32 %497, %499
br i1 %500, label %501, label %550
501: ; preds = %474
%502 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 209, i32 65, i32 1)
%503 = load i32*, i32** %3
%504 = load i32, i32* %6
%505 = sext i32 %504 to i64
%506 = getelementptr inbounds i32, i32* %503, i64 %505
store i32* %506, i32** %22
%507 = load i32*, i32** %3
%508 = load i32, i32* %7
%509 = sext i32 %508 to i64
%510 = getelementptr inbounds i32, i32* %507, i64 %509
store i32* %510, i32** %23
%511 = load i32*, i32** %23
%512 = ptrtoint i32* %511 to i64
%513 = load i32*, i32** %23
%514 = load i32, i32* %513
%515 = sext i32 %514 to i64
%516 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 211, i64 %512, i64 %515)
%517 = load i32*, i32** %22
%518 = ptrtoint i32* %517 to i64
%519 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 212, i64 %518)
%520 = load i32*, i32** %23
%521 = load i32, i32* %520
%522 = load i32*, i32** %22
store i32 %521, i32* %522
%523 = ptrtoint i32* %7 to i64
%524 = load i32, i32* %7
%525 = sext i32 %524 to i64
%526 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 213, i64 %523, i64 %525)
%527 = ptrtoint i32* %6 to i64
%528 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 214, i64 %527)
%529 = load i32, i32* %7
store i32 %529, i32* %6
%530 = ptrtoint i32* %6 to i64
%531 = load i32, i32* %6
%532 = sext i32 %531 to i64
%533 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 219, i64 %530, i64 %532)
%534 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 218, i64 0, i64 1)
%535 = load i32, i32* %6
%536 = sub nsw i32 %535, 1
%537 = sext i32 %536 to i64
%538 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 217, i32 1, i64 %537)
%539 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 216, i64 0, i64 2)
%540 = load i32, i32* %6
%541 = sub nsw i32 %540, 1
%542 = sdiv i32 %541, 2
%543 = sext i32 %542 to i64
%544 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 215, i32 3, i64 %543)
%545 = ptrtoint i32* %7 to i64
%546 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 220, i64 %545)
%547 = load i32, i32* %6
%548 = sub nsw i32 %547, 1
%549 = sdiv i32 %548, 2
store i32 %549, i32* %7
br label %552
550: ; preds = %474
%551 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 210, i32 66, i32 0)
br label %552
552: ; preds = %550, %501
br label %555
553: ; preds = %461
%554 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 205, i32 67, i32 0)
br label %555
555: ; preds = %553, %552
%556 = load i32*, i32** %3
%557 = load i32, i32* %6
%558 = sext i32 %557 to i64
%559 = getelementptr inbounds i32, i32* %556, i64 %558
store i32* %559, i32** %24
%560 = ptrtoint i32* %8 to i64
%561 = load i32, i32* %8
%562 = sext i32 %561 to i64
%563 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 221, i64 %560, i64 %562)
%564 = load i32*, i32** %24
%565 = ptrtoint i32* %564 to i64
%566 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 222, i64 %565)
%567 = load i32, i32* %8
%568 = load i32*, i32** %24
store i32 %567, i32* %568
%569 = ptrtoint i32* %5 to i64
%570 = load i32, i32* %5
%571 = sext i32 %570 to i64
%572 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 225, i64 %569, i64 %571)
%573 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 224, i64 0, i64 1)
%574 = load i32, i32* %5
%575 = add nsw i32 %574, 1
%576 = sext i32 %575 to i64
%577 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 223, i32 0, i64 %576)
%578 = ptrtoint i32* %5 to i64
%579 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 226, i64 %578)
%580 = load i32, i32* %5
%581 = add nsw i32 %580, 1
store i32 %581, i32* %5
br label %584
582: ; preds = %307
%583 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 170, i32 69, i32 0)
br label %584
584: ; preds = %582, %555
%585 = call i32 (i32, ...) bitcast (i32 (...)* @__CrestReturn to i32 (i32, ...)*)(i32 227)
ret void
}

LLVM IR (-O2):
define void @heapify(i32* %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
store i32 %1, i32* %3
%8 = bitcast i32* %4 to i8*
%9 = bitcast i32* %5 to i8*
%10 = bitcast i32* %6 to i8*
%11 = bitcast i32* %7 to i8*
%12 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @__CrestCall to i32 (i32, i32, ...)*)(i32 102, i32 3)
%13 = ptrtoint i32* %3 to i64
%14 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 101, i64 %13)
%15 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 103, i64 0, i64 1)
%16 = ptrtoint i32* %4 to i64
%17 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 104, i64 %16)
store i32 1, i32* %4
%18 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 107, i64 %16, i64 1)
%19 = load i32, i32* %3
%20 = sext i32 %19 to i64
%21 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 106, i64 %13, i64 %20)
%22 = load i32, i32* %4
%23 = load i32, i32* %3
%24 = icmp slt i32 %22, %23
%25 = zext i1 %24 to i64
%26 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 105, i32 16, i64 %25)
%27 = load i32, i32* %4
%28 = load i32, i32* %3
%29 = icmp slt i32 %27, %28
br i1 %29, label %30, label %229
30: ; preds = %2
%31 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 108, i32 33, i32 1)
%32 = load i32, i32* %4
%33 = sext i32 %32 to i64
%34 = getelementptr inbounds i32, i32* %0, i64 %33
%35 = ptrtoint i32* %34 to i64
%36 = load i32, i32* %34
%37 = sext i32 %36 to i64
%38 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 110, i64 %35, i64 %37)
%39 = ptrtoint i32* %7 to i64
%40 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 111, i64 %39)
%41 = load i32, i32* %34
store i32 %41, i32* %7
%42 = load i32, i32* %4
%43 = sext i32 %42 to i64
%44 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 112, i64 %16, i64 %43)
%45 = ptrtoint i32* %5 to i64
%46 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 113, i64 %45)
%47 = load i32, i32* %4
store i32 %47, i32* %5
%48 = sext i32 %47 to i64
%49 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 118, i64 %45, i64 %48)
%50 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 117, i64 0, i64 1)
%51 = load i32, i32* %5
%52 = add nsw i32 %51, -1
%53 = sext i32 %52 to i64
%54 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 116, i32 1, i64 %53)
%55 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 115, i64 0, i64 2)
%56 = load i32, i32* %5
%57 = add nsw i32 %56, -1
%58 = sdiv i32 %57, 2
%59 = sext i32 %58 to i64
%60 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 114, i32 3, i64 %59)
%61 = ptrtoint i32* %6 to i64
%62 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 119, i64 %61)
%63 = load i32, i32* %5
%64 = add nsw i32 %63, -1
%65 = sdiv i32 %64, 2
store i32 %65, i32* %6
%66 = sext i32 %63 to i64
%67 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 122, i64 %45, i64 %66)
%68 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 121, i64 0, i64 0)
%69 = load i32, i32* %5
%70 = icmp sgt i32 %69, 0
%71 = zext i1 %70 to i64
%72 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 120, i32 14, i64 %71)
%73 = load i32, i32* %5
%74 = icmp sgt i32 %73, 0
br i1 %74, label %75, label %134
75: ; preds = %30
%76 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 123, i32 36, i32 1)
%77 = load i32, i32* %6
%78 = sext i32 %77 to i64
%79 = getelementptr inbounds i32, i32* %0, i64 %78
%80 = load i32, i32* %7
%81 = sext i32 %80 to i64
%82 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 127, i64 %39, i64 %81)
%83 = ptrtoint i32* %79 to i64
%84 = load i32, i32* %79
%85 = sext i32 %84 to i64
%86 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 126, i64 %83, i64 %85)
%87 = load i32, i32* %7
%88 = load i32, i32* %79
%89 = icmp sgt i32 %87, %88
%90 = zext i1 %89 to i64
%91 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 125, i32 14, i64 %90)
%92 = load i32, i32* %7
%93 = load i32, i32* %79
%94 = icmp sgt i32 %92, %93
br i1 %94, label %95, label %132
95: ; preds = %75
%96 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 128, i32 39, i32 1)
%97 = load i32, i32* %5
%98 = sext i32 %97 to i64
%99 = getelementptr inbounds i32, i32* %0, i64 %98
%100 = load i32, i32* %6
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds i32, i32* %0, i64 %101
%103 = ptrtoint i32* %102 to i64
%104 = load i32, i32* %102
%105 = sext i32 %104 to i64
%106 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 130, i64 %103, i64 %105)
%107 = ptrtoint i32* %99 to i64
%108 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 131, i64 %107)
%109 = load i32, i32* %102
store i32 %109, i32* %99
%110 = load i32, i32* %6
%111 = sext i32 %110 to i64
%112 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 132, i64 %61, i64 %111)
%113 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 133, i64 %45)
%114 = load i32, i32* %6
store i32 %114, i32* %5
%115 = sext i32 %114 to i64
%116 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 138, i64 %45, i64 %115)
%117 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 137, i64 0, i64 1)
%118 = load i32, i32* %5
%119 = add nsw i32 %118, -1
%120 = sext i32 %119 to i64
%121 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 136, i32 1, i64 %120)
%122 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 135, i64 0, i64 2)
%123 = load i32, i32* %5
%124 = add nsw i32 %123, -1
%125 = sdiv i32 %124, 2
%126 = sext i32 %125 to i64
%127 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 134, i32 3, i64 %126)
%128 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 139, i64 %61)
%129 = load i32, i32* %5
%130 = add nsw i32 %129, -1
%131 = sdiv i32 %130, 2
store i32 %131, i32* %6
br label %136
132: ; preds = %75
%133 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 129, i32 40, i32 0)
br label %136
134: ; preds = %30
%135 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 124, i32 41, i32 0)
br label %136
136: ; preds = %95, %132, %134
%137 = load i32, i32* %5
%138 = sext i32 %137 to i64
%139 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 142, i64 %45, i64 %138)
%140 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 141, i64 0, i64 0)
%141 = load i32, i32* %5
%142 = icmp sgt i32 %141, 0
%143 = zext i1 %142 to i64
%144 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 140, i32 14, i64 %143)
%145 = load i32, i32* %5
%146 = icmp sgt i32 %145, 0
br i1 %146, label %147, label %206
147: ; preds = %136
%148 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 143, i32 43, i32 1)
%149 = load i32, i32* %6
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds i32, i32* %0, i64 %150
%152 = load i32, i32* %7
%153 = sext i32 %152 to i64
%154 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 147, i64 %39, i64 %153)
%155 = ptrtoint i32* %151 to i64
%156 = load i32, i32* %151
%157 = sext i32 %156 to i64
%158 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 146, i64 %155, i64 %157)
%159 = load i32, i32* %7
%160 = load i32, i32* %151
%161 = icmp sgt i32 %159, %160
%162 = zext i1 %161 to i64
%163 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 145, i32 14, i64 %162)
%164 = load i32, i32* %7
%165 = load i32, i32* %151
%166 = icmp sgt i32 %164, %165
br i1 %166, label %167, label %204
167: ; preds = %147
%168 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 148, i32 46, i32 1)
%169 = load i32, i32* %5
%170 = sext i32 %169 to i64
%171 = getelementptr inbounds i32, i32* %0, i64 %170
%172 = load i32, i32* %6
%173 = sext i32 %172 to i64
%174 = getelementptr inbounds i32, i32* %0, i64 %173
%175 = ptrtoint i32* %174 to i64
%176 = load i32, i32* %174
%177 = sext i32 %176 to i64
%178 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 150, i64 %175, i64 %177)
%179 = ptrtoint i32* %171 to i64
%180 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 151, i64 %179)
%181 = load i32, i32* %174
store i32 %181, i32* %171
%182 = load i32, i32* %6
%183 = sext i32 %182 to i64
%184 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 152, i64 %61, i64 %183)
%185 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 153, i64 %45)
%186 = load i32, i32* %6
store i32 %186, i32* %5
%187 = sext i32 %186 to i64
%188 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 158, i64 %45, i64 %187)
%189 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 157, i64 0, i64 1)
%190 = load i32, i32* %5
%191 = add nsw i32 %190, -1
%192 = sext i32 %191 to i64
%193 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 156, i32 1, i64 %192)
%194 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 155, i64 0, i64 2)
%195 = load i32, i32* %5
%196 = add nsw i32 %195, -1
%197 = sdiv i32 %196, 2
%198 = sext i32 %197 to i64
%199 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 154, i32 3, i64 %198)
%200 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 159, i64 %61)
%201 = load i32, i32* %5
%202 = add nsw i32 %201, -1
%203 = sdiv i32 %202, 2
store i32 %203, i32* %6
br label %208
204: ; preds = %147
%205 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 149, i32 47, i32 0)
br label %208
206: ; preds = %136
%207 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 144, i32 48, i32 0)
br label %208
208: ; preds = %167, %204, %206
%209 = load i32, i32* %5
%210 = sext i32 %209 to i64
%211 = getelementptr inbounds i32, i32* %0, i64 %210
%212 = load i32, i32* %7
%213 = sext i32 %212 to i64
%214 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 160, i64 %39, i64 %213)
%215 = ptrtoint i32* %211 to i64
%216 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 161, i64 %215)
%217 = load i32, i32* %7
store i32 %217, i32* %211
%218 = load i32, i32* %4
%219 = sext i32 %218 to i64
%220 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 164, i64 %16, i64 %219)
%221 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 163, i64 0, i64 1)
%222 = load i32, i32* %4
%223 = add nsw i32 %222, 1
%224 = sext i32 %223 to i64
%225 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 162, i32 0, i64 %224)
%226 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 165, i64 %16)
%227 = load i32, i32* %4
%228 = add nsw i32 %227, 1
store i32 %228, i32* %4
br label %232
229: ; preds = %2
%230 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 109, i32 50, i32 0)
%231 = load i32, i32* %4
br label %232
232: ; preds = %229, %208
%233 = phi i32 [ %231, %229 ], [ %228, %208 ]
%234 = sext i32 %233 to i64
%235 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 168, i64 %16, i64 %234)
%236 = load i32, i32* %3
%237 = sext i32 %236 to i64
%238 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 167, i64 %13, i64 %237)
%239 = load i32, i32* %4
%240 = load i32, i32* %3
%241 = icmp slt i32 %239, %240
%242 = zext i1 %241 to i64
%243 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 166, i32 16, i64 %242)
%244 = load i32, i32* %4
%245 = load i32, i32* %3
%246 = icmp slt i32 %244, %245
br i1 %246, label %247, label %446
247: ; preds = %232
%248 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 169, i32 52, i32 1)
%249 = load i32, i32* %4
%250 = sext i32 %249 to i64
%251 = getelementptr inbounds i32, i32* %0, i64 %250
%252 = ptrtoint i32* %251 to i64
%253 = load i32, i32* %251
%254 = sext i32 %253 to i64
%255 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 171, i64 %252, i64 %254)
%256 = ptrtoint i32* %7 to i64
%257 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 172, i64 %256)
%258 = load i32, i32* %251
store i32 %258, i32* %7
%259 = load i32, i32* %4
%260 = sext i32 %259 to i64
%261 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 173, i64 %16, i64 %260)
%262 = ptrtoint i32* %5 to i64
%263 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 174, i64 %262)
%264 = load i32, i32* %4
store i32 %264, i32* %5
%265 = sext i32 %264 to i64
%266 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 179, i64 %262, i64 %265)
%267 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 178, i64 0, i64 1)
%268 = load i32, i32* %5
%269 = add nsw i32 %268, -1
%270 = sext i32 %269 to i64
%271 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 177, i32 1, i64 %270)
%272 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 176, i64 0, i64 2)
%273 = load i32, i32* %5
%274 = add nsw i32 %273, -1
%275 = sdiv i32 %274, 2
%276 = sext i32 %275 to i64
%277 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 175, i32 3, i64 %276)
%278 = ptrtoint i32* %6 to i64
%279 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 180, i64 %278)
%280 = load i32, i32* %5
%281 = add nsw i32 %280, -1
%282 = sdiv i32 %281, 2
store i32 %282, i32* %6
%283 = sext i32 %280 to i64
%284 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 183, i64 %262, i64 %283)
%285 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 182, i64 0, i64 0)
%286 = load i32, i32* %5
%287 = icmp sgt i32 %286, 0
%288 = zext i1 %287 to i64
%289 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 181, i32 14, i64 %288)
%290 = load i32, i32* %5
%291 = icmp sgt i32 %290, 0
br i1 %291, label %292, label %351
292: ; preds = %247
%293 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 184, i32 55, i32 1)
%294 = load i32, i32* %6
%295 = sext i32 %294 to i64
%296 = getelementptr inbounds i32, i32* %0, i64 %295
%297 = load i32, i32* %7
%298 = sext i32 %297 to i64
%299 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 188, i64 %256, i64 %298)
%300 = ptrtoint i32* %296 to i64
%301 = load i32, i32* %296
%302 = sext i32 %301 to i64
%303 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 187, i64 %300, i64 %302)
%304 = load i32, i32* %7
%305 = load i32, i32* %296
%306 = icmp sgt i32 %304, %305
%307 = zext i1 %306 to i64
%308 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 186, i32 14, i64 %307)
%309 = load i32, i32* %7
%310 = load i32, i32* %296
%311 = icmp sgt i32 %309, %310
br i1 %311, label %312, label %349
312: ; preds = %292
%313 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 189, i32 58, i32 1)
%314 = load i32, i32* %5
%315 = sext i32 %314 to i64
%316 = getelementptr inbounds i32, i32* %0, i64 %315
%317 = load i32, i32* %6
%318 = sext i32 %317 to i64
%319 = getelementptr inbounds i32, i32* %0, i64 %318
%320 = ptrtoint i32* %319 to i64
%321 = load i32, i32* %319
%322 = sext i32 %321 to i64
%323 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 191, i64 %320, i64 %322)
%324 = ptrtoint i32* %316 to i64
%325 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 192, i64 %324)
%326 = load i32, i32* %319
store i32 %326, i32* %316
%327 = load i32, i32* %6
%328 = sext i32 %327 to i64
%329 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 193, i64 %278, i64 %328)
%330 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 194, i64 %262)
%331 = load i32, i32* %6
store i32 %331, i32* %5
%332 = sext i32 %331 to i64
%333 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 199, i64 %262, i64 %332)
%334 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 198, i64 0, i64 1)
%335 = load i32, i32* %5
%336 = add nsw i32 %335, -1
%337 = sext i32 %336 to i64
%338 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 197, i32 1, i64 %337)
%339 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 196, i64 0, i64 2)
%340 = load i32, i32* %5
%341 = add nsw i32 %340, -1
%342 = sdiv i32 %341, 2
%343 = sext i32 %342 to i64
%344 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 195, i32 3, i64 %343)
%345 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 200, i64 %278)
%346 = load i32, i32* %5
%347 = add nsw i32 %346, -1
%348 = sdiv i32 %347, 2
store i32 %348, i32* %6
br label %353
349: ; preds = %292
%350 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 190, i32 59, i32 0)
br label %353
351: ; preds = %247
%352 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 185, i32 60, i32 0)
br label %353
353: ; preds = %312, %349, %351
%354 = load i32, i32* %5
%355 = sext i32 %354 to i64
%356 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 203, i64 %262, i64 %355)
%357 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 202, i64 0, i64 0)
%358 = load i32, i32* %5
%359 = icmp sgt i32 %358, 0
%360 = zext i1 %359 to i64
%361 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 201, i32 14, i64 %360)
%362 = load i32, i32* %5
%363 = icmp sgt i32 %362, 0
br i1 %363, label %364, label %423
364: ; preds = %353
%365 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 204, i32 62, i32 1)
%366 = load i32, i32* %6
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds i32, i32* %0, i64 %367
%369 = load i32, i32* %7
%370 = sext i32 %369 to i64
%371 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 208, i64 %256, i64 %370)
%372 = ptrtoint i32* %368 to i64
%373 = load i32, i32* %368
%374 = sext i32 %373 to i64
%375 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 207, i64 %372, i64 %374)
%376 = load i32, i32* %7
%377 = load i32, i32* %368
%378 = icmp sgt i32 %376, %377
%379 = zext i1 %378 to i64
%380 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 206, i32 14, i64 %379)
%381 = load i32, i32* %7
%382 = load i32, i32* %368
%383 = icmp sgt i32 %381, %382
br i1 %383, label %384, label %421
384: ; preds = %364
%385 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 209, i32 65, i32 1)
%386 = load i32, i32* %5
%387 = sext i32 %386 to i64
%388 = getelementptr inbounds i32, i32* %0, i64 %387
%389 = load i32, i32* %6
%390 = sext i32 %389 to i64
%391 = getelementptr inbounds i32, i32* %0, i64 %390
%392 = ptrtoint i32* %391 to i64
%393 = load i32, i32* %391
%394 = sext i32 %393 to i64
%395 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 211, i64 %392, i64 %394)
%396 = ptrtoint i32* %388 to i64
%397 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 212, i64 %396)
%398 = load i32, i32* %391
store i32 %398, i32* %388
%399 = load i32, i32* %6
%400 = sext i32 %399 to i64
%401 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 213, i64 %278, i64 %400)
%402 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 214, i64 %262)
%403 = load i32, i32* %6
store i32 %403, i32* %5
%404 = sext i32 %403 to i64
%405 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 219, i64 %262, i64 %404)
%406 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 218, i64 0, i64 1)
%407 = load i32, i32* %5
%408 = add nsw i32 %407, -1
%409 = sext i32 %408 to i64
%410 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 217, i32 1, i64 %409)
%411 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 216, i64 0, i64 2)
%412 = load i32, i32* %5
%413 = add nsw i32 %412, -1
%414 = sdiv i32 %413, 2
%415 = sext i32 %414 to i64
%416 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 215, i32 3, i64 %415)
%417 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 220, i64 %278)
%418 = load i32, i32* %5
%419 = add nsw i32 %418, -1
%420 = sdiv i32 %419, 2
store i32 %420, i32* %6
br label %425
421: ; preds = %364
%422 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 210, i32 66, i32 0)
br label %425
423: ; preds = %353
%424 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 205, i32 67, i32 0)
br label %425
425: ; preds = %384, %421, %423
%426 = load i32, i32* %5
%427 = sext i32 %426 to i64
%428 = getelementptr inbounds i32, i32* %0, i64 %427
%429 = load i32, i32* %7
%430 = sext i32 %429 to i64
%431 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 221, i64 %256, i64 %430)
%432 = ptrtoint i32* %428 to i64
%433 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 222, i64 %432)
%434 = load i32, i32* %7
store i32 %434, i32* %428
%435 = load i32, i32* %4
%436 = sext i32 %435 to i64
%437 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 225, i64 %16, i64 %436)
%438 = call i32 (i32, i64, i64, ...) bitcast (i32 (...)* @__CrestLoad to i32 (i32, i64, i64, ...)*)(i32 224, i64 0, i64 1)
%439 = load i32, i32* %4
%440 = add nsw i32 %439, 1
%441 = sext i32 %440 to i64
%442 = call i32 (i32, i32, i64, ...) bitcast (i32 (...)* @__CrestApply2 to i32 (i32, i32, i64, ...)*)(i32 223, i32 0, i64 %441)
%443 = call i32 (i32, i64, ...) bitcast (i32 (...)* @__CrestStore to i32 (i32, i64, ...)*)(i32 226, i64 %16)
%444 = load i32, i32* %4
%445 = add nsw i32 %444, 1
store i32 %445, i32* %4
br label %448
446: ; preds = %232
%447 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @__CrestBranch to i32 (i32, i32, i32, ...)*)(i32 170, i32 69, i32 0)
br label %448
448: ; preds = %446, %425
%449 = call i32 (i32, ...) bitcast (i32 (...)* @__CrestReturn to i32 (i32, ...)*)(i32 227)
ret void
}