int trlist_(int *n, int *list, int *lptr, int *lend, int *nrow, int *nt,
            int *ltri, int *ier) {
  int ltri_dim1, ltri_offset, i__1, i__2;
  static int i__, j, i1, i2, i3, n1, n2, n3, ka, kn, lp, kt, nm2, lp2, lpl, isv;
  static int arcs;
  static int lpln1;
  --lend;
  --list;
  --lptr;
  ltri_dim1 = *nrow;
  ltri_offset = 1 + ltri_dim1;
  ltri -= ltri_offset;
  if (*n < 3 || (*nrow != 6 && *nrow != 9)) {
    goto L11;
  }
  arcs = *nrow == 9;
  ka = 0;
  kt = 0;
  nm2 = *n - 2;
  i__1 = nm2;
  for (n1 = 1; n1 <= i__1; ++n1) {
    lpln1 = lend[n1];
    lp2 = lpln1;
  L1:
    lp2 = lptr[lp2];
    n2 = list[lp2];
    lp = lptr[lp2];
    n3 = (i__2 = list[lp], ((i__2) >= 0 ? (i__2) : -(i__2)));
    if (n2 < n1 || n3 < n1) {
      goto L8;
    }
    ++kt;
    ltri[kt * ltri_dim1 + 1] = n1;
    ltri[kt * ltri_dim1 + 2] = n2;
    ltri[kt * ltri_dim1 + 3] = n3;
    for (i__ = 1; i__ <= 3; ++i__) {
      if (i__ == 1) {
        i1 = n3;
        i2 = n2;
      } else if (i__ == 2) {
        i1 = n1;
        i2 = n3;
      } else {
        i1 = n2;
        i2 = n1;
      }
      lpl = lend[i1];
      lp = lptr[lpl];
    L2:
      if (list[lp] == i2) {
        goto L3;
      }
      lp = lptr[lp];
      if (lp != lpl) {
        goto L2;
      }
      if ((i__2 = list[lp], ((i__2) >= 0 ? (i__2) : -(i__2))) != i2) {
        goto L12;
      }
      kn = 0;
      if (list[lp] < 0) {
        goto L6;
      }
    L3:
      lp = lptr[lp];
      i3 = (i__2 = list[lp], ((i__2) >= 0 ? (i__2) : -(i__2)));
      if (i1 < i2 && i1 < i3) {
        j = 3;
      } else if (i2 < i3) {
        j = 2;
        isv = i1;
        i1 = i2;
        i2 = i3;
        i3 = isv;
      } else {
        j = 1;
        isv = i1;
        i1 = i3;
        i3 = i2;
        i2 = isv;
      }
      if (i1 > n1) {
        goto L7;
      }
      for (kn = kt - 1; kn >= 1; --kn) {
        if (ltri[kn * ltri_dim1 + 1] == i1 && ltri[kn * ltri_dim1 + 2] == i2 &&
            ltri[kn * ltri_dim1 + 3] == i3) {
          goto L5;
        }
      }
      goto L7;
    L5:
      ltri[j + 3 + kn * ltri_dim1] = kt;
    L6:
      ltri[i__ + 3 + kt * ltri_dim1] = kn;
      if (arcs) {
        ++ka;
        ltri[i__ + 6 + kt * ltri_dim1] = ka;
        if (kn != 0) {
          ltri[j + 6 + kn * ltri_dim1] = ka;
        }
      }
    L7:;
    }
  L8:
    if (lp2 != lpln1) {
      goto L1;
    }
  }
  *nt = kt;
  *ier = 0;
  return 0;
L11:
  *nt = 0;
  *ier = 1;
  return 0;
L12:
  *nt = 0;
  *ier = 2;
  return 0;
}


x86 assembly (clang, -O0):
<trlist_>:
push   %rbp
mov    %rsp,%rbp
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0x28(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x18(%rbp)
mov    -0x20(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x20(%rbp)
mov    -0x30(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%ecx
mov    0x10(%rbp),%rax
movslq %ecx,%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,0x10(%rbp)
mov    -0x10(%rbp),%rax
cmpl   $0x3,(%rax)
jl     119b <trlist_+0x9b>
mov    -0x30(%rbp),%rax
cmpl   $0x6,(%rax)
je     11a0 <trlist_+0xa0>
mov    -0x30(%rbp),%rax
cmpl   $0x9,(%rax)
je     11a0 <trlist_+0xa0>
jmp    1785 <trlist_+0x685>
mov    -0x30(%rbp),%rax
cmpl   $0x9,(%rax)
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,0x2eaf(%rip)
movl   $0x0,0x2e85(%rip)
movl   $0x0,0x2e87(%rip)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
sub    $0x2,%eax
mov    %eax,0x2e7c(%rip)
mov    0x2e76(%rip),%eax
mov    %eax,-0x44(%rbp)
movl   $0x1,0x2e4d(%rip)
mov    0x2e47(%rip),%eax
cmp    -0x44(%rbp),%eax
jg     1763 <trlist_+0x663>
mov    -0x28(%rbp),%rax
movslq 0x2e33(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2e5a(%rip)
mov    0x2e54(%rip),%eax
mov    %eax,0x2e3e(%rip)
mov    -0x20(%rbp),%rax
movslq 0x2e33(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2e2a(%rip)
mov    -0x18(%rbp),%rax
movslq 0x2e1f(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2dfa(%rip)
mov    -0x20(%rbp),%rax
movslq 0x2e0b(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2df6(%rip)
mov    -0x18(%rbp),%rax
movslq 0x2deb(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x48(%rbp)
cmpl   $0x0,-0x48(%rbp)
jl     127c <trlist_+0x17c>
mov    -0x48(%rbp),%eax
mov    %eax,-0x4c(%rbp)
jmp    1284 <trlist_+0x184>
xor    %eax,%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,0x2db3(%rip)
mov    0x2da9(%rip),%eax
cmp    0x2d9f(%rip),%eax
jl     12b1 <trlist_+0x1b1>
mov    0x2d9b(%rip),%eax
cmp    0x2d8d(%rip),%eax
jge    12b6 <trlist_+0x1b6>
jmp    1733 <trlist_+0x633>
mov    0x2d94(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2d8b(%rip)
mov    0x2d6d(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x2d7b(%rip),%ecx
imul   -0x3c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x2d54(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x2d5e(%rip),%ecx
imul   -0x3c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x2d3b(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x2d41(%rip),%ecx
imul   -0x3c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
movl   $0x1,0x2cfe(%rip)
cmpl   $0x3,0x2cf7(%rip)
jg     172e <trlist_+0x62e>
cmpl   $0x1,0x2cea(%rip)
jne    135d <trlist_+0x25d>
mov    0x2cfa(%rip),%eax
mov    %eax,0x2ce0(%rip)
mov    0x2cea(%rip),%eax
mov    %eax,0x2cd8(%rip)
jmp    13a4 <trlist_+0x2a4>
cmpl   $0x2,0x2cc0(%rip)
jne    1387 <trlist_+0x287>
mov    0x2cc8(%rip),%eax
mov    %eax,0x2cb6(%rip)
mov    0x2cc4(%rip),%eax
mov    %eax,0x2cae(%rip)
jmp    139f <trlist_+0x29f>
mov    0x2caf(%rip),%eax
mov    %eax,0x2c99(%rip)
mov    0x2c9f(%rip),%eax
mov    %eax,0x2c91(%rip)
jmp    13a4 <trlist_+0x2a4>
mov    -0x28(%rbp),%rax
movslq 0x2c7d(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2ca4(%rip)
mov    -0x20(%rbp),%rax
movslq 0x2c99(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2c80(%rip)
mov    -0x18(%rbp),%rax
movslq 0x2c75(%rip),%rcx
mov    (%rax,%rcx,4),%eax
cmp    0x2c50(%rip),%eax
jne    13eb <trlist_+0x2eb>
jmp    1481 <trlist_+0x381>
mov    -0x20(%rbp),%rax
movslq 0x2c56(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2c4d(%rip)
mov    0x2c47(%rip),%eax
cmp    0x2c51(%rip),%eax
je     1416 <trlist_+0x316>
jmp    13cc <trlist_+0x2cc>
mov    -0x18(%rbp),%rax
movslq 0x2c2b(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x48(%rbp)
cmpl   $0x0,-0x48(%rbp)
jl     143c <trlist_+0x33c>
mov    -0x48(%rbp),%eax
mov    %eax,-0x50(%rbp)
jmp    1444 <trlist_+0x344>
xor    %eax,%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    0x2be3(%rip),%eax
je     1458 <trlist_+0x358>
jmp    17a5 <trlist_+0x6a5>
movl   $0x0,0x2be6(%rip)
mov    -0x18(%rbp),%rax
movslq 0x2bdf(%rip),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jge    147c <trlist_+0x37c>
jmp    1673 <trlist_+0x573>
jmp    1481 <trlist_+0x381>
mov    -0x20(%rbp),%rax
movslq 0x2bc0(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,0x2bb7(%rip)
mov    -0x18(%rbp),%rax
movslq 0x2bac(%rip),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x48(%rbp)
cmpl   $0x0,-0x48(%rbp)
jl     14bb <trlist_+0x3bb>
mov    -0x48(%rbp),%eax
mov    %eax,-0x54(%rbp)
jmp    14c3 <trlist_+0x3c3>
xor    %eax,%eax
sub    -0x48(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x54(%rbp),%eax
mov    %eax,0x2b68(%rip)
mov    0x2b5a(%rip),%eax
cmp    0x2b58(%rip),%eax
jge    14ff <trlist_+0x3ff>
mov    0x2b48(%rip),%eax
cmp    0x2b4a(%rip),%eax
jge    14ff <trlist_+0x3ff>
movl   $0x3,0x2b2e(%rip)
jmp    158f <trlist_+0x48f>
mov    0x2b2b(%rip),%eax
cmp    0x2b29(%rip),%eax
jge    1550 <trlist_+0x450>
movl   $0x2,0x2b0d(%rip)
mov    0x2b0b(%rip),%eax
mov    %eax,0x2b39(%rip)
mov    0x2b03(%rip),%eax
mov    %eax,0x2af9(%rip)
mov    0x2afb(%rip),%eax
mov    %eax,0x2af1(%rip)
mov    0x2b1b(%rip),%eax
mov    %eax,0x2ae9(%rip)
jmp    158a <trlist_+0x48a>
movl   $0x1,0x2ace(%rip)
mov    0x2acc(%rip),%eax
mov    %eax,0x2afa(%rip)
mov    0x2ac8(%rip),%eax
mov    %eax,0x2aba(%rip)
mov    0x2ab8(%rip),%eax
mov    %eax,0x2ab6(%rip)
mov    0x2adc(%rip),%eax
mov    %eax,0x2aa6(%rip)
jmp    158f <trlist_+0x48f>
mov    0x2a97(%rip),%eax
cmp    0x2a9d(%rip),%eax
jle    15a6 <trlist_+0x4a6>
jmp    1715 <trlist_+0x615>
mov    0x2aa4(%rip),%eax
sub    $0x1,%eax
mov    %eax,0x2a93(%rip)
cmpl   $0x1,0x2a8c(%rip)
jl     1649 <trlist_+0x549>
mov    0x10(%rbp),%rax
mov    0x2a7c(%rip),%ecx
imul   -0x3c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    0x2a4d(%rip),%eax
jne    1630 <trlist_+0x530>
mov    0x10(%rbp),%rax
mov    0x2a59(%rip),%ecx
imul   -0x3c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    0x2a2e(%rip),%eax
jne    1630 <trlist_+0x530>
mov    0x10(%rbp),%rax
mov    0x2a36(%rip),%ecx
imul   -0x3c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
cmp    0x2a0f(%rip),%eax
jne    1630 <trlist_+0x530>
jmp    164e <trlist_+0x54e>
jmp    1635 <trlist_+0x535>
mov    0x2a0d(%rip),%eax
add    $0xffffffff,%eax
mov    %eax,0x2a04(%rip)
jmp    15b5 <trlist_+0x4b5>
jmp    1715 <trlist_+0x615>
mov    0x29fc(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x29ca(%rip),%ecx
add    $0x3,%ecx
mov    0x29e1(%rip),%esi
imul   -0x3c(%rbp),%esi
add    %esi,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    0x29cf(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x29a1(%rip),%ecx
add    $0x3,%ecx
mov    0x29c4(%rip),%esi
imul   -0x3c(%rbp),%esi
add    %esi,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
cmpl   $0x0,0x29c5(%rip)
je     1710 <trlist_+0x610>
mov    0x2999(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2990(%rip)
mov    0x298a(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x2960(%rip),%ecx
add    $0x6,%ecx
mov    0x2983(%rip),%esi
imul   -0x3c(%rbp),%esi
add    %esi,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
cmpl   $0x0,0x2968(%rip)
je     170b <trlist_+0x60b>
mov    0x2958(%rip),%edx
mov    0x10(%rbp),%rax
mov    0x2932(%rip),%ecx
add    $0x6,%ecx
mov    0x2949(%rip),%esi
imul   -0x3c(%rbp),%esi
add    %esi,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1710 <trlist_+0x610>
jmp    1715 <trlist_+0x615>
jmp    171a <trlist_+0x61a>
mov    0x2904(%rip),%eax
add    $0x1,%eax
mov    %eax,0x28fb(%rip)
jmp    1326 <trlist_+0x226>
jmp    1733 <trlist_+0x633>
mov    0x291f(%rip),%eax
cmp    0x2929(%rip),%eax
je     174a <trlist_+0x64a>
jmp    121a <trlist_+0x11a>
jmp    174f <trlist_+0x64f>
mov    0x28e3(%rip),%eax
add    $0x1,%eax
mov    %eax,0x28da(%rip)
jmp    11eb <trlist_+0xeb>
mov    0x28e7(%rip),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,(%rax)
mov    0x18(%rbp),%rax
movl   $0x0,(%rax)
movl   $0x0,-0x4(%rbp)
jmp    17c0 <trlist_+0x6c0>
mov    -0x38(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rax
movl   $0x1,(%rax)
movl   $0x0,-0x4(%rbp)
jmp    17c0 <trlist_+0x6c0>
mov    -0x38(%rbp),%rax
movl   $0x0,(%rax)
mov    0x18(%rbp),%rax
movl   $0x2,(%rax)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<trlist_>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rcx,%r12
mov    0x40(%rsp),%rbx
mov    $0x1,%ecx
xor    %ebp,%ebp
cmpl   $0x3,(%rdi)
jl     1496 <trlist_+0x396>
movslq (%r8),%r11
cmp    $0x9,%r11d
je     1135 <trlist_+0x35>
cmp    $0x6,%r11d
jne    1496 <trlist_+0x396>
movl   $0x0,0x2eed(%rip)
mov    (%rdi),%edi
xor    %ebp,%ebp
mov    $0x0,%ecx
cmp    $0x3,%edi
jl     1496 <trlist_+0x396>
mov    %r9,-0x20(%rsp)
mov    0x38(%rsp),%rcx
mov    %rdi,%rbp
mov    %r11,%rdi
not    %rdi
lea    (%rcx,%rdi,4),%rax
mov    %rax,-0x40(%rsp)
mov    0x2eb1(%rip),%ebx
add    $0xffffffff,%ebp
mov    %rbp,-0x10(%rsp)
add    $0x1,%edi
movslq %edi,%r10
shl    $0x2,%r10
xor    %r13d,%r13d
mov    $0x1,%ebp
mov    %r12,-0x18(%rsp)
mov    -0x4(%r12,%rbp,4),%ecx
mov    %ecx,-0x24(%rsp)
mov    %rbp,-0x48(%rsp)
jmp    11bf <trlist_+0xbf>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    -0x8(%rsp),%rcx
cmp    -0x24(%rsp),%ecx
je     146c <trlist_+0x36c>
movslq %ecx,%rcx
movslq -0x4(%rdx,%rcx,4),%r8
movslq -0x4(%rsi,%r8,4),%rdi
movslq -0x4(%rdx,%r8,4),%rcx
mov    -0x4(%rsi,%rcx,4),%ecx
mov    %ecx,%eax
neg    %eax
cmovs  %ecx,%eax
mov    %rdi,%rcx
mov    %rdi,-0x30(%rsp)
cmp    %rdi,%rbp
mov    %r8,-0x8(%rsp)
jg     11b0 <trlist_+0xb0>
cmp    %rax,%rbp
ja     11b0 <trlist_+0xb0>
movslq 0x2e32(%rip),%rcx
add    $0x1,%rcx
mov    %ecx,0x2e28(%rip)
imul   %r11,%rcx
mov    -0x40(%rsp),%r8
mov    %ebp,0x4(%r8,%rcx,4)
movslq 0x2e13(%rip),%rcx
imul   %r11,%rcx
mov    -0x30(%rsp),%rdi
mov    %edi,0x8(%r8,%rcx,4)
movslq 0x2dfe(%rip),%rcx
imul   %r11,%rcx
mov    %eax,0xc(%r8,%rcx,4)
mov    $0x1,%r8d
jmp    1261 <trlist_+0x161>
mov    -0x18(%rsp),%r12
mov    -0x34(%rsp),%r13d
mov    -0x48(%rsp),%rbp
mov    -0x50(%rsp),%rbx
add    $0x1,%r8d
cmp    $0x4,%r8d
je     11b0 <trlist_+0xb0>
mov    %rbx,-0x50(%rsp)
mov    %eax,%r14d
mov    -0x30(%rsp),%rcx
mov    %ecx,%r15d
cmp    $0x1,%r8d
je     128e <trlist_+0x18e>
mov    %ebp,%r14d
mov    %eax,%r15d
cmp    $0x2,%r8d
je     128e <trlist_+0x18e>
mov    -0x30(%rsp),%rcx
mov    %ecx,%r14d
mov    %ebp,%r15d
movslq %r14d,%rcx
movslq -0x4(%r12,%rcx,4),%rbp
mov    -0x4(%rdx,%rbp,4),%ebx
nopw   0x0(%rax,%rax,1)
movslq %ebx,%rcx
cmp    %r15d,-0x4(%rsi,%rcx,4)
je     1350 <trlist_+0x250>
mov    -0x4(%rdx,%rcx,4),%ebx
cmp    %ebp,%ebx
jne    12a0 <trlist_+0x1a0>
mov    -0x4(%rsi,%rbp,4),%ebx
mov    %ebx,%ecx
neg    %ecx
cmovs  %ebx,%ecx
cmp    %r15d,%ecx
jne    1485 <trlist_+0x385>
movl   $0x0,0x2d54(%rip)
cmpl   $0x0,-0x4(%rsi,%rbp,4)
jns    1353 <trlist_+0x253>
xor    %ecx,%ecx
mov    -0x40(%rsp),%rbx
mov    0x2d44(%rip),%ebp
imul   %r11d,%ebp
add    %r8d,%ebp
add    $0x3,%ebp
movslq %ebp,%rbp
mov    %ecx,(%rbx,%rbp,4)
cmp    $0x9,%r11d
jne    1249 <trlist_+0x149>
add    $0x1,%r13d
movslq %r8d,%rcx
movslq 0x2d1c(%rip),%rbp
lea    0x0(%rbp,%rbp,8),%rbp
add    %rcx,%rbp
mov    %r13d,0x18(%rbx,%rbp,4)
mov    0x2d05(%rip),%ecx
test   %ecx,%ecx
je     1249 <trlist_+0x149>
mov    %rbx,%rbp
lea    (%rcx,%rcx,8),%ecx
mov    -0x50(%rsp),%rbx
add    %ebx,%ecx
add    $0x6,%ecx
movslq %ecx,%rcx
mov    %r13d,0x0(%rbp,%rcx,4)
mov    -0x48(%rsp),%rbp
jmp    1253 <trlist_+0x153>
nopl   (%rax)
mov    %rcx,%rbp
movslq -0x4(%rdx,%rbp,4),%rcx
mov    -0x4(%rsi,%rcx,4),%ecx
mov    %ecx,%r9d
neg    %r9d
cmovs  %ecx,%r9d
cmp    %r15d,%r14d
jge    1375 <trlist_+0x275>
mov    $0x3,%ebx
cmp    %r9d,%r14d
jl     1398 <trlist_+0x298>
xor    %ebx,%ebx
cmp    %r9d,%r15d
mov    %r9d,%ecx
cmovl  %r15d,%ecx
cmovl  %r14d,%r15d
setl   %bl
cmovl  %r9d,%r14d
add    $0x1,%ebx
mov    %r15d,%r9d
mov    %r14d,%r15d
mov    %ecx,%r14d
mov    -0x48(%rsp),%rbp
mov    %ebx,0x2c81(%rip)
movslq %r14d,%rcx
cmp    %rcx,%rbp
jl     1253 <trlist_+0x153>
mov    %rbx,-0x50(%rsp)
mov    0x2c72(%rip),%ebx
lea    -0x1(%rbx),%ecx
mov    %ecx,0x2c65(%rip)
cmp    $0x2,%ebx
jl     124e <trlist_+0x14e>
mov    %r13d,-0x34(%rsp)
imul   %r11d,%ecx
lea    0x3(%rcx),%r13d
add    $0x1,%ecx
movslq %ecx,%rcx
mov    -0x40(%rsp),%rbp
lea    0x0(,%rcx,4),%rcx
add    %rbp,%rcx
mov    %ebx,%r12d
jmp    141f <trlist_+0x31f>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x2(%r12),%ebp
mov    %ebp,0x2c1d(%rip)
add    $0xffffffff,%r12d
sub    %r11d,%r13d
add    %r10,%rcx
cmp    $0x1,%r12d
jle    123f <trlist_+0x13f>
cmp    %r14d,(%rcx)
jne    1400 <trlist_+0x300>
lea    -0x1(%r13),%ebp
movslq %ebp,%rbp
mov    -0x40(%rsp),%rdi
cmp    %r15d,(%rdi,%rbp,4)
jne    1400 <trlist_+0x300>
movslq %r13d,%rbp
mov    -0x40(%rsp),%rdi
cmp    %r9d,(%rdi,%rbp,4)
jne    1400 <trlist_+0x300>
add    -0x50(%rsp),%r13d
movslq %r13d,%rcx
mov    -0x40(%rsp),%rdi
mov    %ebx,(%rdi,%rcx,4)
mov    %rdi,%rbx
mov    0x2bcb(%rip),%ecx
mov    -0x18(%rsp),%r12
mov    -0x34(%rsp),%r13d
jmp    12e2 <trlist_+0x1e2>
add    $0x1,%rbp
cmp    -0x10(%rsp),%rbp
jne    1192 <trlist_+0x92>
xor    %ecx,%ecx
mov    0x2ba9(%rip),%ebp
jmp    148c <trlist_+0x38c>
mov    $0x2,%ecx
xor    %ebp,%ebp
mov    -0x20(%rsp),%r9
mov    0x40(%rsp),%rbx
mov    %ebp,(%r9)
mov    %ecx,(%rbx)
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@trlist_.i__ = internal global i32 0
@trlist_.j = internal global i32 0
@trlist_.i1 = internal global i32 0
@trlist_.i2 = internal global i32 0
@trlist_.i3 = internal global i32 0
@trlist_.n1 = internal global i32 0
@trlist_.n2 = internal global i32 0
@trlist_.n3 = internal global i32 0
@trlist_.ka = internal global i32 0
@trlist_.kn = internal global i32 0
@trlist_.lp = internal global i32 0
@trlist_.kt = internal global i32 0
@trlist_.nm2 = internal global i32 0
@trlist_.lp2 = internal global i32 0
@trlist_.lpl = internal global i32 0
@trlist_.isv = internal global i32 0
@trlist_.arcs = internal global i32 0
@trlist_.lpln1 = internal global i32 0
define i32 @trlist_(i32* %0, i32* %1, i32* %2, i32* %3, i32* %4, i32* %5, i32* %6, i32* %7) {
%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
store i32* %0, i32** %10
store i32* %1, i32** %11
store i32* %2, i32** %12
store i32* %3, i32** %13
store i32* %4, i32** %14
store i32* %5, i32** %15
store i32* %6, i32** %16
store i32* %7, i32** %17
%22 = load i32*, i32** %13
%23 = getelementptr inbounds i32, i32* %22, i32 -1
store i32* %23, i32** %13
%24 = load i32*, i32** %11
%25 = getelementptr inbounds i32, i32* %24, i32 -1
store i32* %25, i32** %11
%26 = load i32*, i32** %12
%27 = getelementptr inbounds i32, i32* %26, i32 -1
store i32* %27, i32** %12
%28 = load i32*, i32** %14
%29 = load i32, i32* %28
store i32 %29, i32* %18
%30 = load i32, i32* %18
%31 = add nsw i32 1, %30
store i32 %31, i32* %19
%32 = load i32, i32* %19
%33 = load i32*, i32** %16
%34 = sext i32 %32 to i64
%35 = sub i64 0, %34
%36 = getelementptr inbounds i32, i32* %33, i64 %35
store i32* %36, i32** %16
%37 = load i32*, i32** %10
%38 = load i32, i32* %37
%39 = icmp slt i32 %38, 3
br i1 %39, label %48, label %40
40: ; preds = %8
%41 = load i32*, i32** %14
%42 = load i32, i32* %41
%43 = icmp ne i32 %42, 6
br i1 %43, label %44, label %49
44: ; preds = %40
%45 = load i32*, i32** %14
%46 = load i32, i32* %45
%47 = icmp ne i32 %46, 9
br i1 %47, label %48, label %49
48: ; preds = %44, %8
br label %373
49: ; preds = %44, %40
%50 = load i32*, i32** %14
%51 = load i32, i32* %50
%52 = icmp eq i32 %51, 9
%53 = zext i1 %52 to i32
store i32 %53, i32* @trlist_.arcs
store i32 0, i32* @trlist_.ka
store i32 0, i32* @trlist_.kt
%54 = load i32*, i32** %10
%55 = load i32, i32* %54
%56 = sub nsw i32 %55, 2
store i32 %56, i32* @trlist_.nm2
%57 = load i32, i32* @trlist_.nm2
store i32 %57, i32* %20
store i32 1, i32* @trlist_.n1
br label %58
58: ; preds = %366, %49
%59 = load i32, i32* @trlist_.n1
%60 = load i32, i32* %20
%61 = icmp sle i32 %59, %60
br i1 %61, label %62, label %369
62: ; preds = %58
%63 = load i32*, i32** %13
%64 = load i32, i32* @trlist_.n1
%65 = sext i32 %64 to i64
%66 = getelementptr inbounds i32, i32* %63, i64 %65
%67 = load i32, i32* %66
store i32 %67, i32* @trlist_.lpln1
%68 = load i32, i32* @trlist_.lpln1
store i32 %68, i32* @trlist_.lp2
br label %69
69: ; preds = %364, %62
%70 = load i32*, i32** %12
%71 = load i32, i32* @trlist_.lp2
%72 = sext i32 %71 to i64
%73 = getelementptr inbounds i32, i32* %70, i64 %72
%74 = load i32, i32* %73
store i32 %74, i32* @trlist_.lp2
%75 = load i32*, i32** %11
%76 = load i32, i32* @trlist_.lp2
%77 = sext i32 %76 to i64
%78 = getelementptr inbounds i32, i32* %75, i64 %77
%79 = load i32, i32* %78
store i32 %79, i32* @trlist_.n2
%80 = load i32*, i32** %12
%81 = load i32, i32* @trlist_.lp2
%82 = sext i32 %81 to i64
%83 = getelementptr inbounds i32, i32* %80, i64 %82
%84 = load i32, i32* %83
store i32 %84, i32* @trlist_.lp
%85 = load i32*, i32** %11
%86 = load i32, i32* @trlist_.lp
%87 = sext i32 %86 to i64
%88 = getelementptr inbounds i32, i32* %85, i64 %87
%89 = load i32, i32* %88
store i32 %89, i32* %21
%90 = load i32, i32* %21
%91 = icmp sge i32 %90, 0
br i1 %91, label %92, label %94
92: ; preds = %69
%93 = load i32, i32* %21
br label %97
94: ; preds = %69
%95 = load i32, i32* %21
%96 = sub nsw i32 0, %95
br label %97
97: ; preds = %94, %92
%98 = phi i32 [ %93, %92 ], [ %96, %94 ]
store i32 %98, i32* @trlist_.n3
%99 = load i32, i32* @trlist_.n2
%100 = load i32, i32* @trlist_.n1
%101 = icmp slt i32 %99, %100
br i1 %101, label %106, label %102
102: ; preds = %97
%103 = load i32, i32* @trlist_.n3
%104 = load i32, i32* @trlist_.n1
%105 = icmp slt i32 %103, %104
br i1 %105, label %106, label %107
106: ; preds = %102, %97
br label %360
107: ; preds = %102
%108 = load i32, i32* @trlist_.kt
%109 = add nsw i32 %108, 1
store i32 %109, i32* @trlist_.kt
%110 = load i32, i32* @trlist_.n1
%111 = load i32*, i32** %16
%112 = load i32, i32* @trlist_.kt
%113 = load i32, i32* %18
%114 = mul nsw i32 %112, %113
%115 = add nsw i32 %114, 1
%116 = sext i32 %115 to i64
%117 = getelementptr inbounds i32, i32* %111, i64 %116
store i32 %110, i32* %117
%118 = load i32, i32* @trlist_.n2
%119 = load i32*, i32** %16
%120 = load i32, i32* @trlist_.kt
%121 = load i32, i32* %18
%122 = mul nsw i32 %120, %121
%123 = add nsw i32 %122, 2
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds i32, i32* %119, i64 %124
store i32 %118, i32* %125
%126 = load i32, i32* @trlist_.n3
%127 = load i32*, i32** %16
%128 = load i32, i32* @trlist_.kt
%129 = load i32, i32* %18
%130 = mul nsw i32 %128, %129
%131 = add nsw i32 %130, 3
%132 = sext i32 %131 to i64
%133 = getelementptr inbounds i32, i32* %127, i64 %132
store i32 %126, i32* %133
store i32 1, i32* @trlist_.i__
br label %134
134: ; preds = %356, %107
%135 = load i32, i32* @trlist_.i__
%136 = icmp sle i32 %135, 3
br i1 %136, label %137, label %359
137: ; preds = %134
%138 = load i32, i32* @trlist_.i__
%139 = icmp eq i32 %138, 1
br i1 %139, label %140, label %143
140: ; preds = %137
%141 = load i32, i32* @trlist_.n3
store i32 %141, i32* @trlist_.i1
%142 = load i32, i32* @trlist_.n2
store i32 %142, i32* @trlist_.i2
br label %153
143: ; preds = %137
%144 = load i32, i32* @trlist_.i__
%145 = icmp eq i32 %144, 2
br i1 %145, label %146, label %149
146: ; preds = %143
%147 = load i32, i32* @trlist_.n1
store i32 %147, i32* @trlist_.i1
%148 = load i32, i32* @trlist_.n3
store i32 %148, i32* @trlist_.i2
br label %152
149: ; preds = %143
%150 = load i32, i32* @trlist_.n2
store i32 %150, i32* @trlist_.i1
%151 = load i32, i32* @trlist_.n1
store i32 %151, i32* @trlist_.i2
br label %152
152: ; preds = %149, %146
br label %153
153: ; preds = %152, %140
%154 = load i32*, i32** %13
%155 = load i32, i32* @trlist_.i1
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds i32, i32* %154, i64 %156
%158 = load i32, i32* %157
store i32 %158, i32* @trlist_.lpl
%159 = load i32*, i32** %12
%160 = load i32, i32* @trlist_.lpl
%161 = sext i32 %160 to i64
%162 = getelementptr inbounds i32, i32* %159, i64 %161
%163 = load i32, i32* %162
store i32 %163, i32* @trlist_.lp
br label %164
164: ; preds = %182, %153
%165 = load i32*, i32** %11
%166 = load i32, i32* @trlist_.lp
%167 = sext i32 %166 to i64
%168 = getelementptr inbounds i32, i32* %165, i64 %167
%169 = load i32, i32* %168
%170 = load i32, i32* @trlist_.i2
%171 = icmp eq i32 %169, %170
br i1 %171, label %172, label %173
172: ; preds = %164
br label %210
173: ; preds = %164
%174 = load i32*, i32** %12
%175 = load i32, i32* @trlist_.lp
%176 = sext i32 %175 to i64
%177 = getelementptr inbounds i32, i32* %174, i64 %176
%178 = load i32, i32* %177
store i32 %178, i32* @trlist_.lp
%179 = load i32, i32* @trlist_.lp
%180 = load i32, i32* @trlist_.lpl
%181 = icmp ne i32 %179, %180
br i1 %181, label %182, label %183
182: ; preds = %173
br label %164
183: ; preds = %173
%184 = load i32*, i32** %11
%185 = load i32, i32* @trlist_.lp
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds i32, i32* %184, i64 %186
%188 = load i32, i32* %187
store i32 %188, i32* %21
%189 = load i32, i32* %21
%190 = icmp sge i32 %189, 0
br i1 %190, label %191, label %193
191: ; preds = %183
%192 = load i32, i32* %21
br label %196
193: ; preds = %183
%194 = load i32, i32* %21
%195 = sub nsw i32 0, %194
br label %196
196: ; preds = %193, %191
%197 = phi i32 [ %192, %191 ], [ %195, %193 ]
%198 = load i32, i32* @trlist_.i2
%199 = icmp ne i32 %197, %198
br i1 %199, label %200, label %201
200: ; preds = %196
br label %376
201: ; preds = %196
store i32 0, i32* @trlist_.kn
%202 = load i32*, i32** %11
%203 = load i32, i32* @trlist_.lp
%204 = sext i32 %203 to i64
%205 = getelementptr inbounds i32, i32* %202, i64 %204
%206 = load i32, i32* %205
%207 = icmp slt i32 %206, 0
br i1 %207, label %208, label %209
208: ; preds = %201
br label %314
209: ; preds = %201
br label %210
210: ; preds = %209, %172
%211 = load i32*, i32** %12
%212 = load i32, i32* @trlist_.lp
%213 = sext i32 %212 to i64
%214 = getelementptr inbounds i32, i32* %211, i64 %213
%215 = load i32, i32* %214
store i32 %215, i32* @trlist_.lp
%216 = load i32*, i32** %11
%217 = load i32, i32* @trlist_.lp
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds i32, i32* %216, i64 %218
%220 = load i32, i32* %219
store i32 %220, i32* %21
%221 = load i32, i32* %21
%222 = icmp sge i32 %221, 0
br i1 %222, label %223, label %225
223: ; preds = %210
%224 = load i32, i32* %21
br label %228
225: ; preds = %210
%226 = load i32, i32* %21
%227 = sub nsw i32 0, %226
br label %228
228: ; preds = %225, %223
%229 = phi i32 [ %224, %223 ], [ %227, %225 ]
store i32 %229, i32* @trlist_.i3
%230 = load i32, i32* @trlist_.i1
%231 = load i32, i32* @trlist_.i2
%232 = icmp slt i32 %230, %231
br i1 %232, label %233, label %238
233: ; preds = %228
%234 = load i32, i32* @trlist_.i1
%235 = load i32, i32* @trlist_.i3
%236 = icmp slt i32 %234, %235
br i1 %236, label %237, label %238
237: ; preds = %233
store i32 3, i32* @trlist_.j
br label %253
238: ; preds = %233, %228
%239 = load i32, i32* @trlist_.i2
%240 = load i32, i32* @trlist_.i3
%241 = icmp slt i32 %239, %240
br i1 %241, label %242, label %247
242: ; preds = %238
store i32 2, i32* @trlist_.j
%243 = load i32, i32* @trlist_.i1
store i32 %243, i32* @trlist_.isv
%244 = load i32, i32* @trlist_.i2
store i32 %244, i32* @trlist_.i1
%245 = load i32, i32* @trlist_.i3
store i32 %245, i32* @trlist_.i2
%246 = load i32, i32* @trlist_.isv
store i32 %246, i32* @trlist_.i3
br label %252
247: ; preds = %238
store i32 1, i32* @trlist_.j
%248 = load i32, i32* @trlist_.i1
store i32 %248, i32* @trlist_.isv
%249 = load i32, i32* @trlist_.i3
store i32 %249, i32* @trlist_.i1
%250 = load i32, i32* @trlist_.i2
store i32 %250, i32* @trlist_.i3
%251 = load i32, i32* @trlist_.isv
store i32 %251, i32* @trlist_.i2
br label %252
252: ; preds = %247, %242
br label %253
253: ; preds = %252, %237
%254 = load i32, i32* @trlist_.i1
%255 = load i32, i32* @trlist_.n1
%256 = icmp sgt i32 %254, %255
br i1 %256, label %257, label %258
257: ; preds = %253
br label %355
258: ; preds = %253
%259 = load i32, i32* @trlist_.kt
%260 = sub nsw i32 %259, 1
store i32 %260, i32* @trlist_.kn
br label %261
261: ; preds = %299, %258
%262 = load i32, i32* @trlist_.kn
%263 = icmp sge i32 %262, 1
br i1 %263, label %264, label %302
264: ; preds = %261
%265 = load i32*, i32** %16
%266 = load i32, i32* @trlist_.kn
%267 = load i32, i32* %18
%268 = mul nsw i32 %266, %267
%269 = add nsw i32 %268, 1
%270 = sext i32 %269 to i64
%271 = getelementptr inbounds i32, i32* %265, i64 %270
%272 = load i32, i32* %271
%273 = load i32, i32* @trlist_.i1
%274 = icmp eq i32 %272, %273
br i1 %274, label %275, label %298
275: ; preds = %264
%276 = load i32*, i32** %16
%277 = load i32, i32* @trlist_.kn
%278 = load i32, i32* %18
%279 = mul nsw i32 %277, %278
%280 = add nsw i32 %279, 2
%281 = sext i32 %280 to i64
%282 = getelementptr inbounds i32, i32* %276, i64 %281
%283 = load i32, i32* %282
%284 = load i32, i32* @trlist_.i2
%285 = icmp eq i32 %283, %284
br i1 %285, label %286, label %298
286: ; preds = %275
%287 = load i32*, i32** %16
%288 = load i32, i32* @trlist_.kn
%289 = load i32, i32* %18
%290 = mul nsw i32 %288, %289
%291 = add nsw i32 %290, 3
%292 = sext i32 %291 to i64
%293 = getelementptr inbounds i32, i32* %287, i64 %292
%294 = load i32, i32* %293
%295 = load i32, i32* @trlist_.i3
%296 = icmp eq i32 %294, %295
br i1 %296, label %297, label %298
297: ; preds = %286
br label %303
298: ; preds = %286, %275, %264
br label %299
299: ; preds = %298
%300 = load i32, i32* @trlist_.kn
%301 = add nsw i32 %300, -1
store i32 %301, i32* @trlist_.kn
br label %261
302: ; preds = %261
br label %355
303: ; preds = %297
%304 = load i32, i32* @trlist_.kt
%305 = load i32*, i32** %16
%306 = load i32, i32* @trlist_.j
%307 = add nsw i32 %306, 3
%308 = load i32, i32* @trlist_.kn
%309 = load i32, i32* %18
%310 = mul nsw i32 %308, %309
%311 = add nsw i32 %307, %310
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds i32, i32* %305, i64 %312
store i32 %304, i32* %313
br label %314
314: ; preds = %303, %208
%315 = load i32, i32* @trlist_.kn
%316 = load i32*, i32** %16
%317 = load i32, i32* @trlist_.i__
%318 = add nsw i32 %317, 3
%319 = load i32, i32* @trlist_.kt
%320 = load i32, i32* %18
%321 = mul nsw i32 %319, %320
%322 = add nsw i32 %318, %321
%323 = sext i32 %322 to i64
%324 = getelementptr inbounds i32, i32* %316, i64 %323
store i32 %315, i32* %324
%325 = load i32, i32* @trlist_.arcs
%326 = icmp ne i32 %325, 0
br i1 %326, label %327, label %354
327: ; preds = %314
%328 = load i32, i32* @trlist_.ka
%329 = add nsw i32 %328, 1
store i32 %329, i32* @trlist_.ka
%330 = load i32, i32* @trlist_.ka
%331 = load i32*, i32** %16
%332 = load i32, i32* @trlist_.i__
%333 = add nsw i32 %332, 6
%334 = load i32, i32* @trlist_.kt
%335 = load i32, i32* %18
%336 = mul nsw i32 %334, %335
%337 = add nsw i32 %333, %336
%338 = sext i32 %337 to i64
%339 = getelementptr inbounds i32, i32* %331, i64 %338
store i32 %330, i32* %339
%340 = load i32, i32* @trlist_.kn
%341 = icmp ne i32 %340, 0
br i1 %341, label %342, label %353
342: ; preds = %327
%343 = load i32, i32* @trlist_.ka
%344 = load i32*, i32** %16
%345 = load i32, i32* @trlist_.j
%346 = add nsw i32 %345, 6
%347 = load i32, i32* @trlist_.kn
%348 = load i32, i32* %18
%349 = mul nsw i32 %347, %348
%350 = add nsw i32 %346, %349
%351 = sext i32 %350 to i64
%352 = getelementptr inbounds i32, i32* %344, i64 %351
store i32 %343, i32* %352
br label %353
353: ; preds = %342, %327
br label %354
354: ; preds = %353, %314
br label %355
355: ; preds = %354, %302, %257
br label %356
356: ; preds = %355
%357 = load i32, i32* @trlist_.i__
%358 = add nsw i32 %357, 1
store i32 %358, i32* @trlist_.i__
br label %134
359: ; preds = %134
br label %360
360: ; preds = %359, %106
%361 = load i32, i32* @trlist_.lp2
%362 = load i32, i32* @trlist_.lpln1
%363 = icmp ne i32 %361, %362
br i1 %363, label %364, label %365
364: ; preds = %360
br label %69
365: ; preds = %360
br label %366
366: ; preds = %365
%367 = load i32, i32* @trlist_.n1
%368 = add nsw i32 %367, 1
store i32 %368, i32* @trlist_.n1
br label %58
369: ; preds = %58
%370 = load i32, i32* @trlist_.kt
%371 = load i32*, i32** %15
store i32 %370, i32* %371
%372 = load i32*, i32** %17
store i32 0, i32* %372
store i32 0, i32* %9
br label %379
373: ; preds = %48
%374 = load i32*, i32** %15
store i32 0, i32* %374
%375 = load i32*, i32** %17
store i32 1, i32* %375
store i32 0, i32* %9
br label %379
376: ; preds = %200
%377 = load i32*, i32** %15
store i32 0, i32* %377
%378 = load i32*, i32** %17
store i32 2, i32* %378
store i32 0, i32* %9
br label %379
379: ; preds = %376, %373, %369
%380 = load i32, i32* %9
ret i32 %380
}

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