int triang(int m, int n, void *info, int (*mat)(void *info, int k, int ndx[]),
           int rn[], int cn[]) {
  int *ndx;
  int *rs_len;
  int *rs_head;
  int *rs_prev;
  int *rs_next;
  int cs_head;
  int *cs_prev;
  int *cs_next;
  int i, j, ii, jj, k1, k2, len, t, size = 0;
  int *head, *rn_inv, *cn_inv;
  if (!(m > 0 && n > 0))
    glp_lib_fault("triang: m = %d; n = %d; invalid dimension", m, n);
  ndx = glp_lib_ucalloc(1 + (m >= n ? m : n), sizeof(int));
  rs_len = glp_lib_ucalloc(1 + m, sizeof(int));
  rs_head = glp_lib_ucalloc(1 + n, sizeof(int));
  rs_prev = glp_lib_ucalloc(1 + m, sizeof(int));
  rs_next = glp_lib_ucalloc(1 + m, sizeof(int));
  cs_prev = glp_lib_ucalloc(1 + n, sizeof(int));
  cs_next = glp_lib_ucalloc(1 + n, sizeof(int));
  head = rs_len;
  for (len = 0; len <= m; len++)
    head[len] = 0;
  for (j = 1; j <= n; j++) {
    len = mat(info, -j, ndx);
    ((void)((0 <= len && len <= m) ||
            (glp_lib_insist(
                 "0 <= len && len <= m",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 224),
             1)));
    cs_prev[j] = head[len];
    head[len] = j;
  }
  cs_head = 0;
  for (len = 0; len <= m; len++) {
    for (j = head[len]; j != 0; j = cs_prev[j]) {
      cs_next[j] = cs_head;
      cs_head = j;
    }
  }
  jj = 0;
  for (j = cs_head; j != 0; j = cs_next[j]) {
    cs_prev[j] = jj;
    jj = j;
  }
  for (len = 0; len <= n; len++)
    rs_head[len] = 0;
  for (i = 1; i <= m; i++) {
    rs_len[i] = len = mat(info, +i, ndx);
    ((void)((0 <= len && len <= n) ||
            (glp_lib_insist(
                 "0 <= len && len <= n",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 249),
             1)));
    rs_prev[i] = 0;
    rs_next[i] = rs_head[len];
    if (rs_next[i] != 0)
      rs_prev[rs_next[i]] = i;
    rs_head[len] = i;
  }
  for (i = 1; i <= m; i++)
    rn[i] = 0;
  for (j = 1; j <= n; j++)
    cn[j] = 0;
  k1 = 1, k2 = n;
  while (k1 <= k2) {
    i = rs_head[1];
    if (i != 0) {
      ((void)((rs_len[i] == 1) ||
              (glp_lib_insist(
                   "rs_len[i] == 1",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   267),
               1)));
      j = 0;
      t = mat(info, +i, ndx);
      ((void)((0 <= t && t <= n) ||
              (glp_lib_insist(
                   "0 <= t && t <= n",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   272),
               1)));
      for (t = t; t >= 1; t--) {
        jj = ndx[t];
        ((void)((1 <= jj && jj <= n) ||
                (glp_lib_insist("1 <= jj && jj <= n",
                                "/scratch/repos/new/home/jordi_armengol_estape/"
                                "c-scraper/outputs/2022-01-22/02-19-57/repos/"
                                "ecotox/pacfm/refs/heads/master/pacfm/tools/"
                                "minpath-1.2/glpk-4.6/src/glplpx5.c",
                                275),
                 1)));
        if (cn[jj] == 0) {
          ((void)((j == 0) ||
                  (glp_lib_insist(
                       "j == 0",
                       "/scratch/repos/new/home/jordi_armengol_estape/"
                       "c-scraper/outputs/2022-01-22/02-19-57/repos/ecotox/"
                       "pacfm/refs/heads/master/pacfm/tools/minpath-1.2/"
                       "glpk-4.6/src/glplpx5.c",
                       277),
                   1)));
          j = jj;
        }
      }
      ((void)((j != 0) ||
              (glp_lib_insist(
                   "j != 0",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   281),
               1)));
      rn[i] = cn[j] = k1;
      k1++;
      size++;
    } else {
      j = cs_head;
      ((void)((j != 0) ||
              (glp_lib_insist(
                   "j != 0",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   295),
               1)));
      cn[j] = k2;
      k2--;
    }
    if (cs_prev[j] == 0)
      cs_head = cs_next[j];
    else
      cs_next[cs_prev[j]] = cs_next[j];
    if (cs_next[j] == 0)
      ;
    else
      cs_prev[cs_next[j]] = cs_prev[j];
    t = mat(info, -j, ndx);
    ((void)((0 <= t && t <= m) ||
            (glp_lib_insist(
                 "0 <= t && t <= m",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 314),
             1)));
    for (t = t; t >= 1; t--) {
      i = ndx[t];
      ((void)((1 <= i && i <= m) ||
              (glp_lib_insist(
                   "1 <= i && i <= m",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   317),
               1)));
      len = rs_len[i];
      ((void)((len >= 1) ||
              (glp_lib_insist(
                   "len >= 1",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   320),
               1)));
      if (rs_prev[i] == 0)
        rs_head[len] = rs_next[i];
      else
        rs_next[rs_prev[i]] = rs_next[i];
      if (rs_next[i] == 0)
        ;
      else
        rs_prev[rs_next[i]] = rs_prev[i];
      rs_len[i] = --len;
      rs_prev[i] = 0;
      rs_next[i] = rs_head[len];
      if (rs_next[i] != 0)
        rs_prev[rs_next[i]] = i;
      rs_head[len] = i;
    }
  }
  for (i = 1; i <= m; i++)
    if (rn[i] == 0)
      rn[i] = k1++;
  for (j = 1; j <= n; j++)
    ((void)((cn[j] != 0) ||
            (glp_lib_insist(
                 "cn[j] != 0",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 345),
             1)));
  rn_inv = rs_len;
  for (ii = 1; ii <= m; ii++)
    rn_inv[ii] = 0;
  for (i = 1; i <= m; i++) {
    ii = rn[i];
    ((void)((1 <= ii && ii <= m) ||
            (glp_lib_insist(
                 "1 <= ii && ii <= m",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 353),
             1)));
    ((void)((rn_inv[ii] == 0) ||
            (glp_lib_insist(
                 "rn_inv[ii] == 0",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 354),
             1)));
    rn_inv[ii] = i;
  }
  cn_inv = rs_head;
  for (jj = 1; jj <= n; jj++)
    cn_inv[jj] = 0;
  for (j = 1; j <= n; j++) {
    jj = cn[j];
    ((void)((1 <= jj && jj <= n) ||
            (glp_lib_insist(
                 "1 <= jj && jj <= n",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 361),
             1)));
    ((void)((cn_inv[jj] == 0) ||
            (glp_lib_insist(
                 "cn_inv[jj] == 0",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 362),
             1)));
    cn_inv[jj] = j;
  }
  for (ii = 1; ii <= size; ii++) {
    int diag = 0;
    i = rn_inv[ii];
    t = mat(info, +i, ndx);
    ((void)((0 <= t && t <= n) ||
            (glp_lib_insist(
                 "0 <= t && t <= n",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 371),
             1)));
    for (t = t; t >= 1; t--) {
      j = ndx[t];
      ((void)((1 <= j && j <= n) ||
              (glp_lib_insist(
                   "1 <= j && j <= n",
                   "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                   "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                   "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                   374),
               1)));
      jj = cn[j];
      if (jj <= size)
        ((void)((jj <= ii) ||
                (glp_lib_insist("jj <= ii",
                                "/scratch/repos/new/home/jordi_armengol_estape/"
                                "c-scraper/outputs/2022-01-22/02-19-57/repos/"
                                "ecotox/pacfm/refs/heads/master/pacfm/tools/"
                                "minpath-1.2/glpk-4.6/src/glplpx5.c",
                                376),
                 1)));
      if (jj == ii) {
        ((void)((!diag) ||
                (glp_lib_insist("!diag",
                                "/scratch/repos/new/home/jordi_armengol_estape/"
                                "c-scraper/outputs/2022-01-22/02-19-57/repos/"
                                "ecotox/pacfm/refs/heads/master/pacfm/tools/"
                                "minpath-1.2/glpk-4.6/src/glplpx5.c",
                                378),
                 1)));
        diag = 1;
      }
    }
    ((void)((diag) ||
            (glp_lib_insist(
                 "diag",
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/"
                 "master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c",
                 382),
             1)));
  }
  glp_lib_ufree(ndx);
  glp_lib_ufree(rs_len);
  glp_lib_ufree(rs_head);
  glp_lib_ufree(rs_prev);
  glp_lib_ufree(rs_next);
  glp_lib_ufree(cs_prev);
  glp_lib_ufree(cs_next);
  return size;
}


x86 assembly (clang, -O0):
<triang>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
movl   $0x0,-0x8c(%rbp)
cmpl   $0x0,-0x4(%rbp)
jle    117f <triang+0x3f>
cmpl   $0x0,-0x8(%rbp)
jg     1193 <triang+0x53>
mov    -0x4(%rbp),%esi
mov    -0x8(%rbp),%edx
lea    0x1e74(%rip),%rdi
mov    $0x0,%al
call   1050 <glp_lib_fault@plt>
mov    -0x4(%rbp),%eax
cmp    -0x8(%rbp),%eax
jl     11ad <triang+0x6d>
mov    -0x4(%rbp),%eax
mov    %eax,-0xb0(%rbp)
jmp    11b6 <triang+0x76>
mov    -0x8(%rbp),%eax
mov    %eax,-0xb0(%rbp)
mov    -0xb0(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x30(%rbp)
mov    -0x4(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x38(%rbp)
mov    -0x8(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x40(%rbp)
mov    -0x4(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x48(%rbp)
mov    -0x4(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x50(%rbp)
mov    -0x8(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x60(%rbp)
mov    -0x8(%rbp),%edi
add    $0x1,%edi
mov    $0x4,%esi
mov    $0x0,%al
call   1040 <glp_lib_ucalloc@plt>
cltq
mov    %rax,-0x68(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x98(%rbp)
movl   $0x0,-0x84(%rbp)
mov    -0x84(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     12ae <triang+0x16e>
mov    -0x98(%rbp),%rax
movslq -0x84(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x84(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x84(%rbp)
jmp    1276 <triang+0x136>
movl   $0x1,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1365 <triang+0x225>
mov    -0x18(%rbp),%rax
mov    -0x10(%rbp),%rdi
xor    %esi,%esi
sub    -0x70(%rbp),%esi
mov    -0x30(%rbp),%rdx
call   *%rax
mov    %eax,-0x84(%rbp)
xor    %eax,%eax
cmp    -0x84(%rbp),%eax
jg     12ff <triang+0x1bf>
mov    -0x84(%rbp),%ecx
mov    $0x1,%al
cmp    -0x4(%rbp),%ecx
mov    %al,-0xb1(%rbp)
jle    1321 <triang+0x1e1>
lea    0x1d24(%rip),%rdi
lea    0x1d32(%rip),%rsi
mov    $0xe0,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb1(%rbp)
mov    -0xb1(%rbp),%al
mov    -0x98(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x60(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x70(%rbp),%edx
mov    -0x98(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    12b5 <triang+0x175>
movl   $0x0,-0x54(%rbp)
movl   $0x0,-0x84(%rbp)
mov    -0x84(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     13e3 <triang+0x2a3>
mov    -0x98(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x70(%rbp)
cmpl   $0x0,-0x70(%rbp)
je     13ca <triang+0x28a>
mov    -0x54(%rbp),%edx
mov    -0x68(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x70(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x60(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x70(%rbp)
jmp    1399 <triang+0x259>
jmp    13cf <triang+0x28f>
mov    -0x84(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x84(%rbp)
jmp    1376 <triang+0x236>
movl   $0x0,-0x78(%rbp)
mov    -0x54(%rbp),%eax
mov    %eax,-0x70(%rbp)
cmpl   $0x0,-0x70(%rbp)
je     1421 <triang+0x2e1>
mov    -0x78(%rbp),%edx
mov    -0x60(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x70(%rbp),%eax
mov    %eax,-0x78(%rbp)
mov    -0x68(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x70(%rbp)
jmp    13f0 <triang+0x2b0>
movl   $0x0,-0x84(%rbp)
mov    -0x84(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1460 <triang+0x320>
mov    -0x40(%rbp),%rax
movslq -0x84(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x84(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x84(%rbp)
jmp    142b <triang+0x2eb>
movl   $0x1,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1553 <triang+0x413>
mov    -0x18(%rbp),%rax
mov    -0x10(%rbp),%rdi
mov    -0x6c(%rbp),%esi
mov    -0x30(%rbp),%rdx
call   *%rax
mov    %eax,%edx
mov    %edx,-0x84(%rbp)
mov    -0x38(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
xor    %eax,%eax
cmp    -0x84(%rbp),%eax
jg     14bc <triang+0x37c>
mov    -0x84(%rbp),%ecx
mov    $0x1,%al
cmp    -0x8(%rbp),%ecx
mov    %al,-0xb2(%rbp)
jle    14de <triang+0x39e>
lea    0x1c24(%rip),%rdi
lea    0x1b75(%rip),%rsi
mov    $0xf9,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb2(%rbp)
mov    -0xb2(%rbp),%al
mov    -0x48(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x40(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1534 <triang+0x3f4>
mov    -0x6c(%rbp),%edx
mov    -0x48(%rbp),%rax
mov    -0x50(%rbp),%rcx
movslq -0x6c(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x6c(%rbp),%edx
mov    -0x40(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    1467 <triang+0x327>
movl   $0x1,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1583 <triang+0x443>
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    155a <triang+0x41a>
movl   $0x1,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     15b3 <triang+0x473>
mov    -0x28(%rbp),%rax
movslq -0x70(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    158a <triang+0x44a>
movl   $0x1,-0x7c(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x80(%rbp)
mov    -0x7c(%rbp),%eax
cmp    -0x80(%rbp),%eax
jg     1aea <triang+0x9aa>
mov    -0x40(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x6c(%rbp)
cmpl   $0x0,-0x6c(%rbp)
je     17dc <triang+0x69c>
mov    -0x38(%rbp),%rcx
movslq -0x6c(%rbp),%rdx
mov    $0x1,%al
cmpl   $0x1,(%rcx,%rdx,4)
mov    %al,-0xb3(%rbp)
je     161c <triang+0x4dc>
lea    0x1afb(%rip),%rdi
lea    0x1a37(%rip),%rsi
mov    $0x10b,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb3(%rbp)
mov    -0xb3(%rbp),%al
movl   $0x0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x10(%rbp),%rdi
mov    -0x6c(%rbp),%esi
mov    -0x30(%rbp),%rdx
call   *%rax
mov    %eax,-0x88(%rbp)
xor    %eax,%eax
cmp    -0x88(%rbp),%eax
jg     1665 <triang+0x525>
mov    -0x88(%rbp),%ecx
mov    $0x1,%al
cmp    -0x8(%rbp),%ecx
mov    %al,-0xb4(%rbp)
jle    1687 <triang+0x547>
lea    0x1a9f(%rip),%rdi
lea    0x19cc(%rip),%rsi
mov    $0x110,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb4(%rbp)
mov    -0xb4(%rbp),%al
mov    -0x88(%rbp),%eax
mov    %eax,-0x88(%rbp)
cmpl   $0x1,-0x88(%rbp)
jl     176c <triang+0x62c>
mov    -0x30(%rbp),%rax
movslq -0x88(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x78(%rbp)
mov    $0x1,%eax
cmp    -0x78(%rbp),%eax
jg     16d9 <triang+0x599>
mov    -0x78(%rbp),%ecx
mov    $0x1,%al
cmp    -0x8(%rbp),%ecx
mov    %al,-0xb5(%rbp)
jle    16fb <triang+0x5bb>
lea    0x1a3c(%rip),%rdi
lea    0x1958(%rip),%rsi
mov    $0x113,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb5(%rbp)
mov    -0xb5(%rbp),%al
mov    -0x28(%rbp),%rax
movslq -0x78(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1753 <triang+0x613>
mov    $0x1,%al
cmpl   $0x0,-0x70(%rbp)
mov    %al,-0xb6(%rbp)
je     1747 <triang+0x607>
lea    0x1a03(%rip),%rdi
lea    0x190c(%rip),%rsi
mov    $0x115,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb6(%rbp)
mov    -0xb6(%rbp),%al
mov    -0x78(%rbp),%eax
mov    %eax,-0x70(%rbp)
jmp    1758 <triang+0x618>
mov    -0x88(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x88(%rbp)
jmp    1699 <triang+0x559>
mov    $0x1,%al
cmpl   $0x0,-0x70(%rbp)
mov    %al,-0xb7(%rbp)
jne    17a0 <triang+0x660>
lea    0x19b1(%rip),%rdi
lea    0x18b3(%rip),%rsi
mov    $0x119,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb7(%rbp)
mov    -0xb7(%rbp),%al
mov    -0x7c(%rbp),%edx
mov    -0x28(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x8c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8c(%rbp)
jmp    1833 <triang+0x6f3>
mov    -0x54(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    $0x1,%al
cmpl   $0x0,-0x70(%rbp)
mov    %al,-0xb8(%rbp)
jne    1816 <triang+0x6d6>
lea    0x193b(%rip),%rdi
lea    0x183d(%rip),%rsi
mov    $0x127,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb8(%rbp)
mov    -0xb8(%rbp),%al
mov    -0x80(%rbp),%edx
mov    -0x28(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x80(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x80(%rbp)
mov    -0x60(%rbp),%rax
movslq -0x70(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1858 <triang+0x718>
mov    -0x68(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x54(%rbp)
jmp    1876 <triang+0x736>
mov    -0x68(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x68(%rbp),%rax
mov    -0x60(%rbp),%rcx
movslq -0x70(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x68(%rbp),%rax
movslq -0x70(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    188d <triang+0x74d>
jmp    18ab <triang+0x76b>
mov    -0x60(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x60(%rbp),%rax
mov    -0x68(%rbp),%rcx
movslq -0x70(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%rax
mov    -0x10(%rbp),%rdi
xor    %esi,%esi
sub    -0x70(%rbp),%esi
mov    -0x30(%rbp),%rdx
call   *%rax
mov    %eax,-0x88(%rbp)
xor    %eax,%eax
cmp    -0x88(%rbp),%eax
jg     18e9 <triang+0x7a9>
mov    -0x88(%rbp),%ecx
mov    $0x1,%al
cmp    -0x4(%rbp),%ecx
mov    %al,-0xb9(%rbp)
jle    190b <triang+0x7cb>
lea    0x184d(%rip),%rdi
lea    0x1748(%rip),%rsi
mov    $0x13a,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xb9(%rbp)
mov    -0xb9(%rbp),%al
mov    -0x88(%rbp),%eax
mov    %eax,-0x88(%rbp)
cmpl   $0x1,-0x88(%rbp)
jl     1ae5 <triang+0x9a5>
mov    -0x30(%rbp),%rax
movslq -0x88(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x6c(%rbp)
mov    $0x1,%eax
cmp    -0x6c(%rbp),%eax
jg     195d <triang+0x81d>
mov    -0x6c(%rbp),%ecx
mov    $0x1,%al
cmp    -0x4(%rbp),%ecx
mov    %al,-0xba(%rbp)
jle    197f <triang+0x83f>
lea    0x17ea(%rip),%rdi
lea    0x16d4(%rip),%rsi
mov    $0x13d,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xba(%rbp)
mov    -0xba(%rbp),%al
mov    -0x38(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x84(%rbp)
mov    $0x1,%al
cmpl   $0x1,-0x84(%rbp)
mov    %al,-0xbb(%rbp)
jge    19cd <triang+0x88d>
lea    0x17ad(%rip),%rdi
lea    0x1686(%rip),%rsi
mov    $0x140,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xbb(%rbp)
mov    -0xbb(%rbp),%al
mov    -0x48(%rbp),%rax
movslq -0x6c(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1a03 <triang+0x8c3>
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x40(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1a21 <triang+0x8e1>
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x50(%rbp),%rax
mov    -0x48(%rbp),%rcx
movslq -0x6c(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1a38 <triang+0x8f8>
jmp    1a56 <triang+0x916>
mov    -0x48(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x48(%rbp),%rax
mov    -0x50(%rbp),%rcx
movslq -0x6c(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x84(%rbp),%edx
add    $0xffffffff,%edx
mov    %edx,-0x84(%rbp)
mov    -0x38(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%rax
movslq -0x6c(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x40(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x50(%rbp),%rax
movslq -0x6c(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
je     1ac0 <triang+0x980>
mov    -0x6c(%rbp),%edx
mov    -0x48(%rbp),%rax
mov    -0x50(%rbp),%rcx
movslq -0x6c(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x6c(%rbp),%edx
mov    -0x40(%rbp),%rax
movslq -0x84(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x88(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x88(%rbp)
jmp    191d <triang+0x7dd>
jmp    15c0 <triang+0x480>
movl   $0x1,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1b38 <triang+0x9f8>
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1b25 <triang+0x9e5>
mov    -0x7c(%rbp),%edx
mov    %edx,%eax
add    $0x1,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
jmp    1b2a <triang+0x9ea>
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    1af1 <triang+0x9b1>
movl   $0x1,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1b9b <triang+0xa5b>
mov    -0x28(%rbp),%rcx
movslq -0x70(%rbp),%rdx
mov    $0x1,%al
cmpl   $0x0,(%rcx,%rdx,4)
mov    %al,-0xbc(%rbp)
jne    1b87 <triang+0xa47>
lea    0x15fc(%rip),%rdi
lea    0x14cc(%rip),%rsi
mov    $0x159,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xbc(%rbp)
mov    -0xbc(%rbp),%al
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    1b3f <triang+0x9ff>
mov    -0x38(%rbp),%rax
mov    %rax,-0xa0(%rbp)
movl   $0x1,-0x74(%rbp)
mov    -0x74(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1bd9 <triang+0xa99>
mov    -0xa0(%rbp),%rax
movslq -0x74(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    1bad <triang+0xa6d>
movl   $0x1,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1ca8 <triang+0xb68>
mov    -0x20(%rbp),%rax
movslq -0x6c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x74(%rbp)
mov    $0x1,%eax
cmp    -0x74(%rbp),%eax
jg     1c1c <triang+0xadc>
mov    -0x74(%rbp),%ecx
mov    $0x1,%al
cmp    -0x4(%rbp),%ecx
mov    %al,-0xbd(%rbp)
jle    1c3e <triang+0xafe>
lea    0x1550(%rip),%rdi
lea    0x1415(%rip),%rsi
mov    $0x161,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xbd(%rbp)
mov    -0xbd(%rbp),%al
mov    -0xa0(%rbp),%rcx
movslq -0x74(%rbp),%rdx
mov    $0x1,%al
cmpl   $0x0,(%rcx,%rdx,4)
mov    %al,-0xbe(%rbp)
je     1c83 <triang+0xb43>
lea    0x151e(%rip),%rdi
lea    0x13d0(%rip),%rsi
mov    $0x162,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xbe(%rbp)
mov    -0xbe(%rbp),%al
mov    -0x6c(%rbp),%edx
mov    -0xa0(%rbp),%rax
movslq -0x74(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    1be0 <triang+0xaa0>
mov    -0x40(%rbp),%rax
mov    %rax,-0xa8(%rbp)
movl   $0x1,-0x78(%rbp)
mov    -0x78(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1ce6 <triang+0xba6>
mov    -0xa8(%rbp),%rax
movslq -0x78(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x78(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x78(%rbp)
jmp    1cba <triang+0xb7a>
movl   $0x1,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x8(%rbp),%eax
jg     1db5 <triang+0xc75>
mov    -0x28(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x78(%rbp)
mov    $0x1,%eax
cmp    -0x78(%rbp),%eax
jg     1d29 <triang+0xbe9>
mov    -0x78(%rbp),%ecx
mov    $0x1,%al
cmp    -0x8(%rbp),%ecx
mov    %al,-0xbf(%rbp)
jle    1d4b <triang+0xc0b>
lea    0x13ec(%rip),%rdi
lea    0x1308(%rip),%rsi
mov    $0x169,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xbf(%rbp)
mov    -0xbf(%rbp),%al
mov    -0xa8(%rbp),%rcx
movslq -0x78(%rbp),%rdx
mov    $0x1,%al
cmpl   $0x0,(%rcx,%rdx,4)
mov    %al,-0xc0(%rbp)
je     1d90 <triang+0xc50>
lea    0x1421(%rip),%rdi
lea    0x12c3(%rip),%rsi
mov    $0x16a,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xc0(%rbp)
mov    -0xc0(%rbp),%al
mov    -0x70(%rbp),%edx
mov    -0xa8(%rbp),%rax
movslq -0x78(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    1ced <triang+0xbad>
movl   $0x1,-0x74(%rbp)
mov    -0x74(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     1fce <triang+0xe8e>
movl   $0x0,-0xac(%rbp)
mov    -0xa0(%rbp),%rax
movslq -0x74(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x6c(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x10(%rbp),%rdi
mov    -0x6c(%rbp),%esi
mov    -0x30(%rbp),%rdx
call   *%rax
mov    %eax,-0x88(%rbp)
xor    %eax,%eax
cmp    -0x88(%rbp),%eax
jg     1e22 <triang+0xce2>
mov    -0x88(%rbp),%ecx
mov    $0x1,%al
cmp    -0x8(%rbp),%ecx
mov    %al,-0xc1(%rbp)
jle    1e44 <triang+0xd04>
lea    0x12e2(%rip),%rdi
lea    0x120f(%rip),%rsi
mov    $0x173,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xc1(%rbp)
mov    -0xc1(%rbp),%al
mov    -0x88(%rbp),%eax
mov    %eax,-0x88(%rbp)
cmpl   $0x1,-0x88(%rbp)
jl     1f83 <triang+0xe43>
mov    -0x30(%rbp),%rax
movslq -0x88(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x70(%rbp)
mov    $0x1,%eax
cmp    -0x70(%rbp),%eax
jg     1e96 <triang+0xd56>
mov    -0x70(%rbp),%ecx
mov    $0x1,%al
cmp    -0x8(%rbp),%ecx
mov    %al,-0xc2(%rbp)
jle    1eb8 <triang+0xd78>
lea    0x1309(%rip),%rdi
lea    0x119b(%rip),%rsi
mov    $0x176,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xc2(%rbp)
mov    -0xc2(%rbp),%al
mov    -0x28(%rbp),%rax
movslq -0x70(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
cmp    -0x8c(%rbp),%eax
jg     1f17 <triang+0xdd7>
mov    -0x78(%rbp),%ecx
mov    $0x1,%al
cmp    -0x74(%rbp),%ecx
mov    %al,-0xc3(%rbp)
jle    1f11 <triang+0xdd1>
lea    0x12c1(%rip),%rdi
lea    0x1142(%rip),%rsi
mov    $0x178,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xc3(%rbp)
mov    -0xc3(%rbp),%al
mov    -0x78(%rbp),%eax
cmp    -0x74(%rbp),%eax
jne    1f6a <triang+0xe2a>
mov    $0x1,%al
cmpl   $0x0,-0xac(%rbp)
mov    %al,-0xc4(%rbp)
je     1f5a <triang+0xe1a>
lea    0x1281(%rip),%rdi
lea    0x10f9(%rip),%rsi
mov    $0x17a,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xc4(%rbp)
mov    -0xc4(%rbp),%al
movl   $0x1,-0xac(%rbp)
jmp    1f6f <triang+0xe2f>
mov    -0x88(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x88(%rbp)
jmp    1e56 <triang+0xd16>
mov    $0x1,%al
cmpl   $0x0,-0xac(%rbp)
mov    %al,-0xc5(%rbp)
jne    1fba <triang+0xe7a>
lea    0x1222(%rip),%rdi
lea    0x1099(%rip),%rsi
mov    $0x17e,%edx
mov    $0x0,%al
call   1060 <glp_lib_insist@plt>
mov    $0x1,%al
mov    %al,-0xc5(%rbp)
mov    -0xc5(%rbp),%al
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    1dbc <triang+0xc7c>
mov    -0x30(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x38(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x40(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x48(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x50(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x60(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <glp_lib_ufree@plt>
mov    -0x8c(%rbp),%eax
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<triang>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    %r9,0x50(%rsp)
mov    %r8,0x80(%rsp)
mov    %rcx,%r12
mov    %rdx,0x70(%rsp)
mov    %esi,%ebx
mov    %rdi,0x18(%rsp)
test   %edi,%edi
jle    1185 <triang+0x35>
test   %ebx,%ebx
jg     119a <triang+0x4a>
lea    0xe74(%rip),%rdi
mov    0x18(%rsp),%rsi
mov    %ebx,%edx
xor    %eax,%eax
call   1060 <glp_lib_fault@plt>
mov    0x18(%rsp),%r15
cmp    %ebx,%r15d
mov    %r15d,%edi
cmovl  %ebx,%edi
add    $0x1,%edi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
mov    %eax,0x28(%rsp)
lea    0x1(%r15),%ebp
mov    $0x4,%esi
mov    %ebp,%edi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
movslq %eax,%r13
mov    %rbx,0x38(%rsp)
add    $0x1,%ebx
mov    $0x4,%esi
mov    %ebx,%edi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
mov    %eax,0x40(%rsp)
mov    $0x4,%esi
mov    %ebp,%edi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
mov    %eax,0x48(%rsp)
mov    $0x4,%esi
mov    %ebp,0x7c(%rsp)
mov    %ebp,%edi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
mov    %eax,0xc(%rsp)
mov    $0x4,%esi
mov    %ebx,%edi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
mov    %eax,%ebp
mov    $0x4,%esi
mov    %ebx,%edi
xor    %eax,%eax
call   1040 <glp_lib_ucalloc@plt>
mov    %eax,0x10(%rsp)
mov    %r15d,%r14d
test   %r15d,%r15d
js     124e <triang+0xfe>
lea    0x4(,%r14,4),%rdx
mov    %r13,%rdi
xor    %esi,%esi
call   1050 <memset@plt>
mov    %r14,0x90(%rsp)
mov    %r13,0x20(%rsp)
movslq 0x28(%rsp),%rax
mov    %rax,0x28(%rsp)
movslq %ebp,%rax
mov    %rax,0x60(%rsp)
mov    %ebx,%eax
mov    %rax,0x88(%rsp)
cmpl   $0x0,0x38(%rsp)
mov    %r12,0xa0(%rsp)
jle    1300 <triang+0x1b0>
mov    $0x1,%ebp
mov    $0xffffffff,%ebx
lea    0xd93(%rip),%r14
lea    0xda1(%rip),%r13
jmp    12e1 <triang+0x191>
mov    %r14,%rdi
mov    %r13,%rsi
mov    $0xe0,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
movslq %r12d,%rax
mov    0x20(%rsp),%rdx
mov    (%rdx,%rax,4),%ecx
mov    0x60(%rsp),%rsi
mov    %ecx,(%rsi,%rbp,4)
mov    %ebp,(%rdx,%rax,4)
add    $0x1,%rbp
add    $0xffffffff,%ebx
cmp    %rbp,0x88(%rsp)
mov    0xa0(%rsp),%r12
je     1300 <triang+0x1b0>
mov    0x70(%rsp),%rdi
mov    %ebx,%esi
mov    0x28(%rsp),%rdx
call   *%r12
mov    %eax,%r12d
test   %eax,%eax
js     12a0 <triang+0x150>
cmp    0x18(%rsp),%r12d
jle    12b2 <triang+0x162>
jmp    12a0 <triang+0x150>
movslq 0x10(%rsp),%rbx
mov    0x7c(%rsp),%eax
mov    %rax,0x68(%rsp)
cmpl   $0x0,0x18(%rsp)
js     13b4 <triang+0x264>
je     13c8 <triang+0x278>
mov    0x68(%rsp),%rdx
and    $0xfffffffe,%edx
xor    %eax,%eax
xor    %ecx,%ecx
mov    0x38(%rsp),%r14
mov    0x20(%rsp),%r13
mov    0x60(%rsp),%rbp
jmp    134f <triang+0x1ff>
nopl   0x0(%rax)
mov    %esi,%ecx
add    $0x2,%rax
cmp    %rdx,%rax
je     13db <triang+0x28b>
mov    0x0(%r13,%rax,4),%edi
test   %edi,%edi
je     1380 <triang+0x230>
nopl   0x0(%rax,%rax,1)
mov    %edi,%esi
movslq %edi,%rdi
mov    %ecx,(%rbx,%rdi,4)
mov    0x0(%rbp,%rdi,4),%edi
mov    %esi,%ecx
test   %edi,%edi
jne    1360 <triang+0x210>
jmp    1382 <triang+0x232>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %ecx,%esi
lea    0x0(,%rax,4),%rcx
or     $0x4,%rcx
mov    0x0(%r13,%rcx,1),%edi
test   %edi,%edi
je     1340 <triang+0x1f0>
nopw   0x0(%rax,%rax,1)
mov    %edi,%ecx
movslq %edi,%rdi
mov    %esi,(%rbx,%rdi,4)
mov    0x0(%rbp,%rdi,4),%edi
mov    %ecx,%esi
test   %edi,%edi
jne    13a0 <triang+0x250>
jmp    1342 <triang+0x1f2>
movl   $0x0,0x34(%rsp)
mov    0x38(%rsp),%r14
mov    0x20(%rsp),%r13
jmp    1430 <triang+0x2e0>
xor    %eax,%eax
xor    %ecx,%ecx
mov    0x38(%rsp),%r14
mov    0x20(%rsp),%r13
mov    0x60(%rsp),%rbp
mov    %ecx,%edx
testb  $0x1,0x68(%rsp)
je     1401 <triang+0x2b1>
mov    0x0(%r13,%rax,4),%eax
test   %eax,%eax
je     1422 <triang+0x2d2>
nopl   (%rax)
mov    %eax,%edx
cltq
mov    %ecx,(%rbx,%rax,4)
mov    0x0(%rbp,%rax,4),%eax
mov    %edx,%ecx
test   %eax,%eax
jne    13f0 <triang+0x2a0>
test   %edx,%edx
je     1428 <triang+0x2d8>
xor    %eax,%eax
mov    %edx,0x34(%rsp)
mov    %edx,%ecx
nopl   (%rax)
movslq %ecx,%rdx
mov    %eax,0x0(%rbp,%rdx,4)
mov    %ecx,%eax
mov    (%rbx,%rdx,4),%ecx
test   %ecx,%ecx
jne    1410 <triang+0x2c0>
jmp    1430 <triang+0x2e0>
mov    %ecx,%edx
test   %edx,%edx
jne    1405 <triang+0x2b5>
movl   $0x0,0x34(%rsp)
mov    0x40(%rsp),%eax
mov    %rbx,0x98(%rsp)
movslq %eax,%rdi
mov    %r14d,%ebp
test   %r14d,%r14d
mov    %rdi,0x10(%rsp)
js     1460 <triang+0x310>
lea    0x4(,%rbp,4),%rdx
xor    %esi,%esi
call   1050 <memset@plt>
mov    0x10(%rsp),%rdi
movslq 0x48(%rsp),%rax
mov    %rax,0x40(%rsp)
movslq 0xc(%rsp),%r15
cmpl   $0x0,0x18(%rsp)
jle    1537 <triang+0x3e7>
mov    $0x1,%ebx
jmp    149e <triang+0x34e>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    %ebx,(%rdi,%rax,4)
add    $0x1,%rbx
cmp    %rbx,0x68(%rsp)
je     1503 <triang+0x3b3>
mov    0x70(%rsp),%rdi
mov    %ebx,%esi
mov    0x28(%rsp),%rdx
call   *%r12
mov    %eax,%r13d
mov    0x20(%rsp),%rax
mov    %r13d,(%rax,%rbx,4)
test   %r13d,%r13d
js     14c3 <triang+0x373>
cmp    %r14d,%r13d
jle    14dd <triang+0x38d>
lea    0xc1d(%rip),%rdi
lea    0xb6e(%rip),%rsi
mov    $0xf9,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x40(%rsp),%rdx
movl   $0x0,(%rdx,%rbx,4)
movslq %r13d,%rax
mov    0x10(%rsp),%rdi
movslq (%rdi,%rax,4),%rcx
mov    %ecx,(%r15,%rbx,4)
test   %rcx,%rcx
je     1490 <triang+0x340>
mov    %ebx,(%rdx,%rcx,4)
jmp    1490 <triang+0x340>
cmpl   $0x0,0x18(%rsp)
mov    0x20(%rsp),%r13
jle    1537 <triang+0x3e7>
mov    0x80(%rsp),%rax
lea    0x4(%rax),%rdi
mov    0x90(%rsp),%rax
lea    0x0(,%rax,4),%rdx
xor    %esi,%esi
call   1050 <memset@plt>
mov    0x10(%rsp),%rdi
test   %r14d,%r14d
mov    %rbp,0xa8(%rsp)
jle    18b1 <triang+0x761>
mov    0x50(%rsp),%rax
lea    0x4(%rax),%rdi
lea    0x0(,%rbp,4),%rdx
xor    %esi,%esi
call   1050 <memset@plt>
mov    0x10(%rsp),%rdi
movl   $0x1,0xc(%rsp)
xor    %eax,%eax
mov    %rax,0x48(%rsp)
mov    %r14d,%eax
mov    %r14d,0x5c(%rsp)
jmp    1593 <triang+0x443>
xchg   %ax,%ax
mov    0x5c(%rsp),%eax
cmp    %eax,0xc(%rsp)
mov    0x38(%rsp),%r14
jg     18c0 <triang+0x770>
movslq 0x4(%rdi),%rbx
test   %rbx,%rbx
je     15f0 <triang+0x4a0>
cmpl   $0x1,0x0(%r13,%rbx,4)
je     15be <triang+0x46e>
lea    0xb51(%rip),%rdi
lea    0xa8d(%rip),%rsi
mov    $0x10b,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x70(%rsp),%rdi
mov    %rbx,0xb0(%rsp)
mov    %ebx,%esi
mov    0x28(%rsp),%rdx
call   *%r12
mov    %eax,%ebx
test   %eax,%eax
js     1640 <triang+0x4f0>
cmp    %r14d,%ebx
jg     1640 <triang+0x4f0>
test   %ebx,%ebx
jg     1662 <triang+0x512>
jmp    16e5 <triang+0x595>
nopl   0x0(%rax)
mov    0x34(%rsp),%r13d
test   %r13d,%r13d
jne    1619 <triang+0x4c9>
lea    0xb35(%rip),%rdi
lea    0xa37(%rip),%rsi
mov    $0x127,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x34(%rsp),%r13d
movslq %r13d,%rax
mov    0x50(%rsp),%rcx
mov    0x5c(%rsp),%edx
mov    %edx,(%rcx,%rax,4)
add    $0xffffffff,%edx
mov    %edx,0x5c(%rsp)
jmp    1738 <triang+0x5e8>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    0xac4(%rip),%rdi
lea    0x9f1(%rip),%rsi
mov    $0x110,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
test   %ebx,%ebx
jle    16e5 <triang+0x595>
mov    %ebx,%ebx
add    $0x1,%rbx
xor    %r13d,%r13d
jmp    167d <triang+0x52d>
nopl   (%rax)
mov    %ebp,%r13d
add    $0xffffffffffffffff,%rbx
cmp    $0x1,%rbx
jle    16e0 <triang+0x590>
mov    0x28(%rsp),%rax
movslq -0x4(%rax,%rbx,4),%rbp
test   %rbp,%rbp
jle    1691 <triang+0x541>
cmp    %r14d,%ebp
jle    16ab <triang+0x55b>
lea    0xa84(%rip),%rdi
lea    0x9a0(%rip),%rsi
mov    $0x113,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x50(%rsp),%rax
cmpl   $0x0,(%rax,%rbp,4)
jne    1673 <triang+0x523>
test   %r13d,%r13d
je     1670 <triang+0x520>
lea    0xa6d(%rip),%rdi
lea    0x976(%rip),%rsi
mov    $0x115,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
jmp    1670 <triang+0x520>
nopw   0x0(%rax,%rax,1)
test   %r13d,%r13d
jne    1702 <triang+0x5b2>
xor    %r13d,%r13d
lea    0xa47(%rip),%rdi
lea    0x949(%rip),%rsi
mov    $0x119,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
movslq %r13d,%rax
mov    0x50(%rsp),%rcx
mov    0xc(%rsp),%edx
mov    %edx,(%rcx,%rax,4)
mov    0x80(%rsp),%rcx
mov    0xb0(%rsp),%rsi
mov    %edx,(%rcx,%rsi,4)
add    $0x1,%edx
mov    %edx,0xc(%rsp)
mov    0x48(%rsp),%rcx
add    $0x1,%ecx
mov    %rcx,0x48(%rsp)
mov    0x60(%rsp),%rcx
movslq (%rcx,%rax,4),%rdx
mov    0x98(%rsp),%rsi
mov    (%rsi,%rax,4),%ecx
test   %rdx,%rdx
je     18a0 <triang+0x750>
mov    %ecx,(%rsi,%rdx,4)
mov    (%rsi,%rax,4),%ecx
test   %ecx,%ecx
je     176d <triang+0x61d>
mov    0x60(%rsp),%rdx
mov    (%rdx,%rax,4),%eax
movslq %ecx,%rcx
mov    %eax,(%rdx,%rcx,4)
neg    %r13d
mov    0x70(%rsp),%rdi
mov    %r13d,%esi
mov    0x28(%rsp),%rdx
call   *%r12
mov    %eax,%ebx
test   %eax,%eax
js     178c <triang+0x63c>
cmp    0x18(%rsp),%ebx
jle    17a6 <triang+0x656>
lea    0x9aa(%rip),%rdi
lea    0x8a5(%rip),%rsi
mov    $0x13a,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
test   %ebx,%ebx
mov    0x20(%rsp),%r13
mov    0x10(%rsp),%rdi
mov    0x40(%rsp),%rsi
jle    1580 <triang+0x430>
mov    %ebx,%r14d
add    $0x1,%r14
jmp    17e2 <triang+0x692>
cs nopw 0x0(%rax,%rax,1)
mov    %ebp,-0x4(%rdi,%rbx,4)
add    $0xffffffffffffffff,%r14
cmp    $0x1,%r14
jle    1580 <triang+0x430>
mov    0x28(%rsp),%rax
movslq -0x4(%rax,%r14,4),%rbp
test   %rbp,%rbp
jle    17f7 <triang+0x6a7>
cmp    0x18(%rsp),%ebp
jle    181b <triang+0x6cb>
lea    0x950(%rip),%rdi
lea    0x83a(%rip),%rsi
mov    $0x13d,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x40(%rsp),%rsi
mov    0x10(%rsp),%rdi
movslq 0x0(%r13,%rbp,4),%rbx
test   %rbx,%rbx
jg     1849 <triang+0x6f9>
lea    0x933(%rip),%rdi
lea    0x80c(%rip),%rsi
mov    $0x140,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x40(%rsp),%rsi
mov    0x10(%rsp),%rdi
mov    (%rsi,%rbp,4),%eax
test   %eax,%eax
mov    (%r15,%rbp,4),%ecx
mov    %ebx,%edx
cmovne %eax,%edx
mov    %r15,%rax
cmove  %rdi,%rax
movslq %edx,%rdx
mov    %ecx,(%rax,%rdx,4)
movslq (%r15,%rbp,4),%rax
test   %rax,%rax
je     1873 <triang+0x723>
mov    (%rsi,%rbp,4),%ecx
mov    %ecx,(%rsi,%rax,4)
lea    -0x1(%rbx),%rax
mov    %eax,0x0(%r13,%rbp,4)
movl   $0x0,(%rsi,%rbp,4)
movslq -0x4(%rdi,%rbx,4),%rax
mov    %eax,(%r15,%rbp,4)
test   %rax,%rax
je     17d0 <triang+0x680>
mov    %ebp,(%rsi,%rax,4)
jmp    17d0 <triang+0x680>
nopl   (%rax)
mov    %ecx,0x34(%rsp)
test   %ecx,%ecx
jne    175f <triang+0x60f>
jmp    176d <triang+0x61d>
xor    %eax,%eax
mov    %rax,0x48(%rsp)
movl   $0x1,0xc(%rsp)
cmpl   $0x0,0x18(%rsp)
mov    0x80(%rsp),%rbp
jle    18fc <triang+0x7ac>
mov    0x68(%rsp),%rax
lea    -0x1(%rax),%rcx
mov    $0x1,%eax
cmpl   $0x2,0x7c(%rsp)
jne    1c52 <triang+0xb02>
test   $0x1,%cl
je     18fc <triang+0x7ac>
cmpl   $0x0,0x0(%rbp,%rax,4)
jne    18fc <triang+0x7ac>
mov    0xc(%rsp),%ecx
mov    %ecx,0x0(%rbp,%rax,4)
test   %r14d,%r14d
mov    0x90(%rsp),%r14
jle    1952 <triang+0x802>
mov    $0x1,%ebp
lea    0x853(%rip),%r13
lea    0x723(%rip),%rbx
jmp    192e <triang+0x7de>
xchg   %ax,%ax
add    $0x1,%rbp
cmp    %rbp,0x88(%rsp)
je     1952 <triang+0x802>
mov    0x50(%rsp),%rax
cmpl   $0x0,(%rax,%rbp,4)
jne    1920 <triang+0x7d0>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    $0x159,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x10(%rsp),%rdi
jmp    1920 <triang+0x7d0>
cmpl   $0x0,0x18(%rsp)
jle    19f9 <triang+0x8a9>
mov    0x20(%rsp),%rax
lea    0x4(%rax),%rdi
shl    $0x2,%r14
xor    %esi,%esi
mov    %r14,%rdx
call   1050 <memset@plt>
mov    0x10(%rsp),%rdi
mov    $0x1,%ebp
lea    0x6ba(%rip),%r14
lea    0x7fa(%rip),%r13
jmp    19a3 <triang+0x853>
xchg   %ax,%ax
mov    0x20(%rsp),%rax
mov    %ebp,(%rax,%rbx,4)
add    $0x1,%rbp
cmp    %rbp,0x68(%rsp)
je     19f9 <triang+0x8a9>
mov    0x80(%rsp),%rax
movslq (%rax,%rbp,4),%rbx
test   %rbx,%rbx
jle    19ba <triang+0x86a>
cmp    0x18(%rsp),%ebx
jle    19d5 <triang+0x885>
lea    0x7b2(%rip),%rdi
mov    %r14,%rsi
mov    $0x161,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x10(%rsp),%rdi
mov    0x20(%rsp),%rax
cmpl   $0x0,(%rax,%rbx,4)
je     1990 <triang+0x840>
mov    %r13,%rdi
mov    %r14,%rsi
mov    $0x162,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x10(%rsp),%rdi
jmp    1990 <triang+0x840>
cmpl   $0x0,0x38(%rsp)
jle    1a9f <triang+0x94f>
add    $0x4,%rdi
mov    0xa8(%rsp),%rdx
shl    $0x2,%rdx
xor    %esi,%esi
call   1050 <memset@plt>
mov    0x10(%rsp),%rcx
mov    $0x1,%ebp
lea    0x613(%rip),%r14
lea    0x763(%rip),%r13
jmp    1a51 <triang+0x901>
cs nopw 0x0(%rax,%rax,1)
nop
mov    %ebp,(%rcx,%rbx,4)
add    $0x1,%rbp
cmp    %rbp,0x88(%rsp)
je     1a9f <triang+0x94f>
mov    0x50(%rsp),%rax
movslq (%rax,%rbp,4),%rbx
test   %rbx,%rbx
jle    1a65 <triang+0x915>
cmp    0x38(%rsp),%ebx
jle    1a80 <triang+0x930>
lea    0x6b0(%rip),%rdi
mov    %r14,%rsi
mov    $0x169,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x10(%rsp),%rcx
cmpl   $0x0,(%rcx,%rbx,4)
je     1a40 <triang+0x8f0>
mov    %r13,%rdi
mov    %r14,%rsi
mov    $0x16a,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x10(%rsp),%rcx
jmp    1a40 <triang+0x8f0>
cmpl   $0x0,0x48(%rsp)
jle    1be6 <triang+0xa96>
mov    0x48(%rsp),%rax
add    $0x1,%eax
mov    %rax,0x18(%rsp)
mov    $0x1,%r14d
lea    0x57b(%rip),%r13
jmp    1af5 <triang+0x9a5>
cs nopw 0x0(%rax,%rax,1)
lea    0x6ea(%rip),%rdi
mov    %r13,%rsi
mov    $0x17e,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
add    $0x1,%r14
cmp    0x18(%rsp),%r14
je     1be6 <triang+0xa96>
mov    0x20(%rsp),%rax
mov    (%rax,%r14,4),%esi
mov    0x70(%rsp),%rdi
mov    0x28(%rsp),%rdx
call   *%r12
mov    %eax,%ebx
test   %eax,%eax
js     1b17 <triang+0x9c7>
cmp    0x38(%rsp),%ebx
jle    1b2d <triang+0x9dd>
lea    0x5ed(%rip),%rdi
mov    %r13,%rsi
mov    $0x173,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
test   %ebx,%ebx
jle    1ad0 <triang+0x980>
mov    %ebx,%ebx
add    $0x1,%rbx
xor    %r12d,%r12d
jmp    1b54 <triang+0xa04>
nopl   0x0(%rax)
mov    $0x1,%r12d
add    $0xffffffffffffffff,%rbx
cmp    $0x1,%rbx
jle    1bd0 <triang+0xa80>
mov    0x28(%rsp),%rax
movslq -0x4(%rax,%rbx,4),%rbp
test   %rbp,%rbp
jle    1b69 <triang+0xa19>
cmp    0x38(%rsp),%ebp
jle    1b7f <triang+0xa2f>
lea    0x636(%rip),%rdi
mov    %r13,%rsi
mov    $0x176,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
mov    0x50(%rsp),%rax
mov    (%rax,%rbp,4),%ebp
cmp    0x48(%rsp),%ebp
jg     1bab <triang+0xa5b>
movslq %ebp,%rax
cmp    %rax,%r14
jge    1bab <triang+0xa5b>
lea    0x61b(%rip),%rdi
mov    %r13,%rsi
mov    $0x178,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
cmp    %rbp,%r14
jne    1b46 <triang+0x9f6>
test   %r12d,%r12d
je     1b40 <triang+0x9f0>
lea    0x604(%rip),%rdi
mov    %r13,%rsi
mov    $0x17a,%edx
xor    %eax,%eax
call   1070 <glp_lib_insist@plt>
jmp    1b40 <triang+0x9f0>
test   %r12d,%r12d
mov    0xa0(%rsp),%r12
jne    1ae6 <triang+0x996>
jmp    1ad0 <triang+0x980>
mov    0x28(%rsp),%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    0x20(%rsp),%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    0x10(%rsp),%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    0x40(%rsp),%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    %r15,%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    0x60(%rsp),%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    0x98(%rsp),%rdi
xor    %eax,%eax
call   1030 <glp_lib_ufree@plt>
mov    0x48(%rsp),%rax
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    %rcx,%rdx
and    $0xfffffffffffffffe,%rdx
neg    %rdx
mov    $0x1,%eax
mov    0x10(%rsp),%rdi
jmp    1c86 <triang+0xb36>
nopl   0x0(%rax,%rax,1)
lea    (%rdx,%rax,1),%rsi
add    $0x2,%rsi
add    $0x2,%rax
cmp    $0x1,%rsi
je     18e8 <triang+0x798>
cmpl   $0x0,0x0(%rbp,%rax,4)
je     1ca0 <triang+0xb50>
cmpl   $0x0,0x4(%rbp,%rax,4)
jne    1c70 <triang+0xb20>
jmp    1cb6 <triang+0xb66>
cs nopw 0x0(%rax,%rax,1)
mov    0xc(%rsp),%esi
mov    %esi,0x0(%rbp,%rax,4)
add    $0x1,%esi
mov    %esi,0xc(%rsp)
cmpl   $0x0,0x4(%rbp,%rax,4)
jne    1c70 <triang+0xb20>
mov    0xc(%rsp),%esi
mov    %esi,0x4(%rbp,%rax,4)
add    $0x1,%esi
mov    %esi,0xc(%rsp)
jmp    1c70 <triang+0xb20>

LLVM IR (-O0):
@.str = [42 x i8] c"triang: m = %d; n = %d; invalid dimension\00"
@.str.1 = [21 x i8] c"0 <= len && len <= m\00"
@.str.2 = [168 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c\00"
@.str.3 = [21 x i8] c"0 <= len && len <= n\00"
@.str.4 = [15 x i8] c"rs_len[i] == 1\00"
@.str.5 = [17 x i8] c"0 <= t && t <= n\00"
@.str.6 = [19 x i8] c"1 <= jj && jj <= n\00"
@.str.7 = [7 x i8] c"j == 0\00"
@.str.8 = [7 x i8] c"j != 0\00"
@.str.9 = [17 x i8] c"0 <= t && t <= m\00"
@.str.10 = [17 x i8] c"1 <= i && i <= m\00"
@.str.11 = [9 x i8] c"len >= 1\00"
@.str.12 = [11 x i8] c"cn[j] != 0\00"
@.str.13 = [19 x i8] c"1 <= ii && ii <= m\00"
@.str.14 = [16 x i8] c"rn_inv[ii] == 0\00"
@.str.15 = [16 x i8] c"cn_inv[jj] == 0\00"
@.str.16 = [17 x i8] c"1 <= j && j <= n\00"
@.str.17 = [9 x i8] c"jj <= ii\00"
@.str.18 = [6 x i8] c"!diag\00"
@.str.19 = [5 x i8] c"diag\00"
define i32 @triang(i32 %0, i32 %1, i8* %2, i32 (i8*, i32, i32*)* %3, i32* %4, i32* %5) {
%7 = alloca i32
%8 = alloca i32
%9 = alloca i8*
%10 = alloca i32 (i8*, i32, 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
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32*
%31 = alloca i32*
%32 = alloca i32*
%33 = alloca i32
store i32 %0, i32* %7
store i32 %1, i32* %8
store i8* %2, i8** %9
store i32 (i8*, i32, i32*)* %3, i32 (i8*, i32, i32*)** %10
store i32* %4, i32** %11
store i32* %5, i32** %12
store i32 0, i32* %29
%34 = load i32, i32* %7
%35 = icmp sgt i32 %34, 0
br i1 %35, label %36, label %39
36: ; preds = %6
%37 = load i32, i32* %8
%38 = icmp sgt i32 %37, 0
br i1 %38, label %43, label %39
39: ; preds = %36, %6
%40 = load i32, i32* %7
%41 = load i32, i32* %8
%42 = call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @glp_lib_fault to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str, i64 0, i64 0), i32 %40, i32 %41)
br label %43
43: ; preds = %39, %36
%44 = load i32, i32* %7
%45 = load i32, i32* %8
%46 = icmp sge i32 %44, %45
br i1 %46, label %47, label %49
47: ; preds = %43
%48 = load i32, i32* %7
br label %51
49: ; preds = %43
%50 = load i32, i32* %8
br label %51
51: ; preds = %49, %47
%52 = phi i32 [ %48, %47 ], [ %50, %49 ]
%53 = add nsw i32 1, %52
%54 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %53, i64 4)
%55 = sext i32 %54 to i64
%56 = inttoptr i64 %55 to i32*
store i32* %56, i32** %13
%57 = load i32, i32* %7
%58 = add nsw i32 1, %57
%59 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %58, i64 4)
%60 = sext i32 %59 to i64
%61 = inttoptr i64 %60 to i32*
store i32* %61, i32** %14
%62 = load i32, i32* %8
%63 = add nsw i32 1, %62
%64 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %63, i64 4)
%65 = sext i32 %64 to i64
%66 = inttoptr i64 %65 to i32*
store i32* %66, i32** %15
%67 = load i32, i32* %7
%68 = add nsw i32 1, %67
%69 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %68, i64 4)
%70 = sext i32 %69 to i64
%71 = inttoptr i64 %70 to i32*
store i32* %71, i32** %16
%72 = load i32, i32* %7
%73 = add nsw i32 1, %72
%74 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %73, i64 4)
%75 = sext i32 %74 to i64
%76 = inttoptr i64 %75 to i32*
store i32* %76, i32** %17
%77 = load i32, i32* %8
%78 = add nsw i32 1, %77
%79 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %78, i64 4)
%80 = sext i32 %79 to i64
%81 = inttoptr i64 %80 to i32*
store i32* %81, i32** %19
%82 = load i32, i32* %8
%83 = add nsw i32 1, %82
%84 = call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %83, i64 4)
%85 = sext i32 %84 to i64
%86 = inttoptr i64 %85 to i32*
store i32* %86, i32** %20
%87 = load i32*, i32** %14
store i32* %87, i32** %30
store i32 0, i32* %27
br label %88
88: ; preds = %97, %51
%89 = load i32, i32* %27
%90 = load i32, i32* %7
%91 = icmp sle i32 %89, %90
br i1 %91, label %92, label %100
92: ; preds = %88
%93 = load i32*, i32** %30
%94 = load i32, i32* %27
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds i32, i32* %93, i64 %95
store i32 0, i32* %96
br label %97
97: ; preds = %92
%98 = load i32, i32* %27
%99 = add nsw i32 %98, 1
store i32 %99, i32* %27
br label %88
100: ; preds = %88
store i32 1, i32* %22
br label %101
101: ; preds = %137, %100
%102 = load i32, i32* %22
%103 = load i32, i32* %8
%104 = icmp sle i32 %102, %103
br i1 %104, label %105, label %140
105: ; preds = %101
%106 = load i32 (i8*, i32, i32*)*, i32 (i8*, i32, i32*)** %10
%107 = load i8*, i8** %9
%108 = load i32, i32* %22
%109 = sub nsw i32 0, %108
%110 = load i32*, i32** %13
%111 = call i32 %106(i8* %107, i32 %109, i32* %110)
store i32 %111, i32* %27
%112 = load i32, i32* %27
%113 = icmp sle i32 0, %112
br i1 %113, label %114, label %118
114: ; preds = %105
%115 = load i32, i32* %27
%116 = load i32, i32* %7
%117 = icmp sle i32 %115, %116
br i1 %117, label %120, label %118
118: ; preds = %114, %105
%119 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 224)
br label %120
120: ; preds = %118, %114
%121 = phi i1 [ true, %114 ], [ true, %118 ]
%122 = zext i1 %121 to i32
%123 = load i32*, i32** %30
%124 = load i32, i32* %27
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds i32, i32* %123, i64 %125
%127 = load i32, i32* %126
%128 = load i32*, i32** %19
%129 = load i32, i32* %22
%130 = sext i32 %129 to i64
%131 = getelementptr inbounds i32, i32* %128, i64 %130
store i32 %127, i32* %131
%132 = load i32, i32* %22
%133 = load i32*, i32** %30
%134 = load i32, i32* %27
%135 = sext i32 %134 to i64
%136 = getelementptr inbounds i32, i32* %133, i64 %135
store i32 %132, i32* %136
br label %137
137: ; preds = %120
%138 = load i32, i32* %22
%139 = add nsw i32 %138, 1
store i32 %139, i32* %22
br label %101
140: ; preds = %101
store i32 0, i32* %18
store i32 0, i32* %27
br label %141
141: ; preds = %168, %140
%142 = load i32, i32* %27
%143 = load i32, i32* %7
%144 = icmp sle i32 %142, %143
br i1 %144, label %145, label %171
145: ; preds = %141
%146 = load i32*, i32** %30
%147 = load i32, i32* %27
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds i32, i32* %146, i64 %148
%150 = load i32, i32* %149
store i32 %150, i32* %22
br label %151
151: ; preds = %161, %145
%152 = load i32, i32* %22
%153 = icmp ne i32 %152, 0
br i1 %153, label %154, label %167
154: ; preds = %151
%155 = load i32, i32* %18
%156 = load i32*, i32** %20
%157 = load i32, i32* %22
%158 = sext i32 %157 to i64
%159 = getelementptr inbounds i32, i32* %156, i64 %158
store i32 %155, i32* %159
%160 = load i32, i32* %22
store i32 %160, i32* %18
br label %161
161: ; preds = %154
%162 = load i32*, i32** %19
%163 = load i32, i32* %22
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds i32, i32* %162, i64 %164
%166 = load i32, i32* %165
store i32 %166, i32* %22
br label %151
167: ; preds = %151
br label %168
168: ; preds = %167
%169 = load i32, i32* %27
%170 = add nsw i32 %169, 1
store i32 %170, i32* %27
br label %141
171: ; preds = %141
store i32 0, i32* %24
%172 = load i32, i32* %18
store i32 %172, i32* %22
br label %173
173: ; preds = %183, %171
%174 = load i32, i32* %22
%175 = icmp ne i32 %174, 0
br i1 %175, label %176, label %189
176: ; preds = %173
%177 = load i32, i32* %24
%178 = load i32*, i32** %19
%179 = load i32, i32* %22
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds i32, i32* %178, i64 %180
store i32 %177, i32* %181
%182 = load i32, i32* %22
store i32 %182, i32* %24
br label %183
183: ; preds = %176
%184 = load i32*, i32** %20
%185 = load i32, i32* %22
%186 = sext i32 %185 to i64
%187 = getelementptr inbounds i32, i32* %184, i64 %186
%188 = load i32, i32* %187
store i32 %188, i32* %22
br label %173
189: ; preds = %173
store i32 0, i32* %27
br label %190
190: ; preds = %199, %189
%191 = load i32, i32* %27
%192 = load i32, i32* %8
%193 = icmp sle i32 %191, %192
br i1 %193, label %194, label %202
194: ; preds = %190
%195 = load i32*, i32** %15
%196 = load i32, i32* %27
%197 = sext i32 %196 to i64
%198 = getelementptr inbounds i32, i32* %195, i64 %197
store i32 0, i32* %198
br label %199
199: ; preds = %194
%200 = load i32, i32* %27
%201 = add nsw i32 %200, 1
store i32 %201, i32* %27
br label %190
202: ; preds = %190
store i32 1, i32* %21
br label %203
203: ; preds = %263, %202
%204 = load i32, i32* %21
%205 = load i32, i32* %7
%206 = icmp sle i32 %204, %205
br i1 %206, label %207, label %266
207: ; preds = %203
%208 = load i32 (i8*, i32, i32*)*, i32 (i8*, i32, i32*)** %10
%209 = load i8*, i8** %9
%210 = load i32, i32* %21
%211 = load i32*, i32** %13
%212 = call i32 %208(i8* %209, i32 %210, i32* %211)
store i32 %212, i32* %27
%213 = load i32*, i32** %14
%214 = load i32, i32* %21
%215 = sext i32 %214 to i64
%216 = getelementptr inbounds i32, i32* %213, i64 %215
store i32 %212, i32* %216
%217 = load i32, i32* %27
%218 = icmp sle i32 0, %217
br i1 %218, label %219, label %223
219: ; preds = %207
%220 = load i32, i32* %27
%221 = load i32, i32* %8
%222 = icmp sle i32 %220, %221
br i1 %222, label %225, label %223
223: ; preds = %219, %207
%224 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 249)
br label %225
225: ; preds = %223, %219
%226 = phi i1 [ true, %219 ], [ true, %223 ]
%227 = zext i1 %226 to i32
%228 = load i32*, i32** %16
%229 = load i32, i32* %21
%230 = sext i32 %229 to i64
%231 = getelementptr inbounds i32, i32* %228, i64 %230
store i32 0, i32* %231
%232 = load i32*, i32** %15
%233 = load i32, i32* %27
%234 = sext i32 %233 to i64
%235 = getelementptr inbounds i32, i32* %232, i64 %234
%236 = load i32, i32* %235
%237 = load i32*, i32** %17
%238 = load i32, i32* %21
%239 = sext i32 %238 to i64
%240 = getelementptr inbounds i32, i32* %237, i64 %239
store i32 %236, i32* %240
%241 = load i32*, i32** %17
%242 = load i32, i32* %21
%243 = sext i32 %242 to i64
%244 = getelementptr inbounds i32, i32* %241, i64 %243
%245 = load i32, i32* %244
%246 = icmp ne i32 %245, 0
br i1 %246, label %247, label %257
247: ; preds = %225
%248 = load i32, i32* %21
%249 = load i32*, i32** %16
%250 = load i32*, i32** %17
%251 = load i32, i32* %21
%252 = sext i32 %251 to i64
%253 = getelementptr inbounds i32, i32* %250, i64 %252
%254 = load i32, i32* %253
%255 = sext i32 %254 to i64
%256 = getelementptr inbounds i32, i32* %249, i64 %255
store i32 %248, i32* %256
br label %257
257: ; preds = %247, %225
%258 = load i32, i32* %21
%259 = load i32*, i32** %15
%260 = load i32, i32* %27
%261 = sext i32 %260 to i64
%262 = getelementptr inbounds i32, i32* %259, i64 %261
store i32 %258, i32* %262
br label %263
263: ; preds = %257
%264 = load i32, i32* %21
%265 = add nsw i32 %264, 1
store i32 %265, i32* %21
br label %203
266: ; preds = %203
store i32 1, i32* %21
br label %267
267: ; preds = %276, %266
%268 = load i32, i32* %21
%269 = load i32, i32* %7
%270 = icmp sle i32 %268, %269
br i1 %270, label %271, label %279
271: ; preds = %267
%272 = load i32*, i32** %11
%273 = load i32, i32* %21
%274 = sext i32 %273 to i64
%275 = getelementptr inbounds i32, i32* %272, i64 %274
store i32 0, i32* %275
br label %276
276: ; preds = %271
%277 = load i32, i32* %21
%278 = add nsw i32 %277, 1
store i32 %278, i32* %21
br label %267
279: ; preds = %267
store i32 1, i32* %22
br label %280
280: ; preds = %289, %279
%281 = load i32, i32* %22
%282 = load i32, i32* %8
%283 = icmp sle i32 %281, %282
br i1 %283, label %284, label %292
284: ; preds = %280
%285 = load i32*, i32** %12
%286 = load i32, i32* %22
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds i32, i32* %285, i64 %287
store i32 0, i32* %288
br label %289
289: ; preds = %284
%290 = load i32, i32* %22
%291 = add nsw i32 %290, 1
store i32 %291, i32* %22
br label %280
292: ; preds = %280
store i32 1, i32* %25
%293 = load i32, i32* %8
store i32 %293, i32* %26
br label %294
294: ; preds = %606, %292
%295 = load i32, i32* %25
%296 = load i32, i32* %26
%297 = icmp sle i32 %295, %296
br i1 %297, label %298, label %607
298: ; preds = %294
%299 = load i32*, i32** %15
%300 = getelementptr inbounds i32, i32* %299, i64 1
%301 = load i32, i32* %300
store i32 %301, i32* %21
%302 = load i32, i32* %21
%303 = icmp ne i32 %302, 0
br i1 %303, label %304, label %393
304: ; preds = %298
%305 = load i32*, i32** %14
%306 = load i32, i32* %21
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds i32, i32* %305, i64 %307
%309 = load i32, i32* %308
%310 = icmp eq i32 %309, 1
br i1 %310, label %313, label %311
311: ; preds = %304
%312 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 267)
br label %313
313: ; preds = %311, %304
%314 = phi i1 [ true, %304 ], [ true, %311 ]
%315 = zext i1 %314 to i32
store i32 0, i32* %22
%316 = load i32 (i8*, i32, i32*)*, i32 (i8*, i32, i32*)** %10
%317 = load i8*, i8** %9
%318 = load i32, i32* %21
%319 = load i32*, i32** %13
%320 = call i32 %316(i8* %317, i32 %318, i32* %319)
store i32 %320, i32* %28
%321 = load i32, i32* %28
%322 = icmp sle i32 0, %321
br i1 %322, label %323, label %327
323: ; preds = %313
%324 = load i32, i32* %28
%325 = load i32, i32* %8
%326 = icmp sle i32 %324, %325
br i1 %326, label %329, label %327
327: ; preds = %323, %313
%328 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 272)
br label %329
329: ; preds = %327, %323
%330 = phi i1 [ true, %323 ], [ true, %327 ]
%331 = zext i1 %330 to i32
%332 = load i32, i32* %28
store i32 %332, i32* %28
br label %333
333: ; preds = %369, %329
%334 = load i32, i32* %28
%335 = icmp sge i32 %334, 1
br i1 %335, label %336, label %372
336: ; preds = %333
%337 = load i32*, i32** %13
%338 = load i32, i32* %28
%339 = sext i32 %338 to i64
%340 = getelementptr inbounds i32, i32* %337, i64 %339
%341 = load i32, i32* %340
store i32 %341, i32* %24
%342 = load i32, i32* %24
%343 = icmp sle i32 1, %342
br i1 %343, label %344, label %348
344: ; preds = %336
%345 = load i32, i32* %24
%346 = load i32, i32* %8
%347 = icmp sle i32 %345, %346
br i1 %347, label %350, label %348
348: ; preds = %344, %336
%349 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 275)
br label %350
350: ; preds = %348, %344
%351 = phi i1 [ true, %344 ], [ true, %348 ]
%352 = zext i1 %351 to i32
%353 = load i32*, i32** %12
%354 = load i32, i32* %24
%355 = sext i32 %354 to i64
%356 = getelementptr inbounds i32, i32* %353, i64 %355
%357 = load i32, i32* %356
%358 = icmp eq i32 %357, 0
br i1 %358, label %359, label %368
359: ; preds = %350
%360 = load i32, i32* %22
%361 = icmp eq i32 %360, 0
br i1 %361, label %364, label %362
362: ; preds = %359
%363 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 277)
br label %364
364: ; preds = %362, %359
%365 = phi i1 [ true, %359 ], [ true, %362 ]
%366 = zext i1 %365 to i32
%367 = load i32, i32* %24
store i32 %367, i32* %22
br label %368
368: ; preds = %364, %350
br label %369
369: ; preds = %368
%370 = load i32, i32* %28
%371 = add nsw i32 %370, -1
store i32 %371, i32* %28
br label %333
372: ; preds = %333
%373 = load i32, i32* %22
%374 = icmp ne i32 %373, 0
br i1 %374, label %377, label %375
375: ; preds = %372
%376 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 281)
br label %377
377: ; preds = %375, %372
%378 = phi i1 [ true, %372 ], [ true, %375 ]
%379 = zext i1 %378 to i32
%380 = load i32, i32* %25
%381 = load i32*, i32** %12
%382 = load i32, i32* %22
%383 = sext i32 %382 to i64
%384 = getelementptr inbounds i32, i32* %381, i64 %383
store i32 %380, i32* %384
%385 = load i32*, i32** %11
%386 = load i32, i32* %21
%387 = sext i32 %386 to i64
%388 = getelementptr inbounds i32, i32* %385, i64 %387
store i32 %380, i32* %388
%389 = load i32, i32* %25
%390 = add nsw i32 %389, 1
store i32 %390, i32* %25
%391 = load i32, i32* %29
%392 = add nsw i32 %391, 1
store i32 %392, i32* %29
br label %409
393: ; preds = %298
%394 = load i32, i32* %18
store i32 %394, i32* %22
%395 = load i32, i32* %22
%396 = icmp ne i32 %395, 0
br i1 %396, label %399, label %397
397: ; preds = %393
%398 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 295)
br label %399
399: ; preds = %397, %393
%400 = phi i1 [ true, %393 ], [ true, %397 ]
%401 = zext i1 %400 to i32
%402 = load i32, i32* %26
%403 = load i32*, i32** %12
%404 = load i32, i32* %22
%405 = sext i32 %404 to i64
%406 = getelementptr inbounds i32, i32* %403, i64 %405
store i32 %402, i32* %406
%407 = load i32, i32* %26
%408 = add nsw i32 %407, -1
store i32 %408, i32* %26
br label %409
409: ; preds = %399, %377
%410 = load i32*, i32** %19
%411 = load i32, i32* %22
%412 = sext i32 %411 to i64
%413 = getelementptr inbounds i32, i32* %410, i64 %412
%414 = load i32, i32* %413
%415 = icmp eq i32 %414, 0
br i1 %415, label %416, label %422
416: ; preds = %409
%417 = load i32*, i32** %20
%418 = load i32, i32* %22
%419 = sext i32 %418 to i64
%420 = getelementptr inbounds i32, i32* %417, i64 %419
%421 = load i32, i32* %420
store i32 %421, i32* %18
br label %436
422: ; preds = %409
%423 = load i32*, i32** %20
%424 = load i32, i32* %22
%425 = sext i32 %424 to i64
%426 = getelementptr inbounds i32, i32* %423, i64 %425
%427 = load i32, i32* %426
%428 = load i32*, i32** %20
%429 = load i32*, i32** %19
%430 = load i32, i32* %22
%431 = sext i32 %430 to i64
%432 = getelementptr inbounds i32, i32* %429, i64 %431
%433 = load i32, i32* %432
%434 = sext i32 %433 to i64
%435 = getelementptr inbounds i32, i32* %428, i64 %434
store i32 %427, i32* %435
br label %436
436: ; preds = %422, %416
%437 = load i32*, i32** %20
%438 = load i32, i32* %22
%439 = sext i32 %438 to i64
%440 = getelementptr inbounds i32, i32* %437, i64 %439
%441 = load i32, i32* %440
%442 = icmp eq i32 %441, 0
br i1 %442, label %443, label %444
443: ; preds = %436
br label %458
444: ; preds = %436
%445 = load i32*, i32** %19
%446 = load i32, i32* %22
%447 = sext i32 %446 to i64
%448 = getelementptr inbounds i32, i32* %445, i64 %447
%449 = load i32, i32* %448
%450 = load i32*, i32** %19
%451 = load i32*, i32** %20
%452 = load i32, i32* %22
%453 = sext i32 %452 to i64
%454 = getelementptr inbounds i32, i32* %451, i64 %453
%455 = load i32, i32* %454
%456 = sext i32 %455 to i64
%457 = getelementptr inbounds i32, i32* %450, i64 %456
store i32 %449, i32* %457
br label %458
458: ; preds = %444, %443
%459 = load i32 (i8*, i32, i32*)*, i32 (i8*, i32, i32*)** %10
%460 = load i8*, i8** %9
%461 = load i32, i32* %22
%462 = sub nsw i32 0, %461
%463 = load i32*, i32** %13
%464 = call i32 %459(i8* %460, i32 %462, i32* %463)
store i32 %464, i32* %28
%465 = load i32, i32* %28
%466 = icmp sle i32 0, %465
br i1 %466, label %467, label %471
467: ; preds = %458
%468 = load i32, i32* %28
%469 = load i32, i32* %7
%470 = icmp sle i32 %468, %469
br i1 %470, label %473, label %471
471: ; preds = %467, %458
%472 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 314)
br label %473
473: ; preds = %471, %467
%474 = phi i1 [ true, %467 ], [ true, %471 ]
%475 = zext i1 %474 to i32
%476 = load i32, i32* %28
store i32 %476, i32* %28
br label %477
477: ; preds = %603, %473
%478 = load i32, i32* %28
%479 = icmp sge i32 %478, 1
br i1 %479, label %480, label %606
480: ; preds = %477
%481 = load i32*, i32** %13
%482 = load i32, i32* %28
%483 = sext i32 %482 to i64
%484 = getelementptr inbounds i32, i32* %481, i64 %483
%485 = load i32, i32* %484
store i32 %485, i32* %21
%486 = load i32, i32* %21
%487 = icmp sle i32 1, %486
br i1 %487, label %488, label %492
488: ; preds = %480
%489 = load i32, i32* %21
%490 = load i32, i32* %7
%491 = icmp sle i32 %489, %490
br i1 %491, label %494, label %492
492: ; preds = %488, %480
%493 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 317)
br label %494
494: ; preds = %492, %488
%495 = phi i1 [ true, %488 ], [ true, %492 ]
%496 = zext i1 %495 to i32
%497 = load i32*, i32** %14
%498 = load i32, i32* %21
%499 = sext i32 %498 to i64
%500 = getelementptr inbounds i32, i32* %497, i64 %499
%501 = load i32, i32* %500
store i32 %501, i32* %27
%502 = load i32, i32* %27
%503 = icmp sge i32 %502, 1
br i1 %503, label %506, label %504
504: ; preds = %494
%505 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 320)
br label %506
506: ; preds = %504, %494
%507 = phi i1 [ true, %494 ], [ true, %504 ]
%508 = zext i1 %507 to i32
%509 = load i32*, i32** %16
%510 = load i32, i32* %21
%511 = sext i32 %510 to i64
%512 = getelementptr inbounds i32, i32* %509, i64 %511
%513 = load i32, i32* %512
%514 = icmp eq i32 %513, 0
br i1 %514, label %515, label %525
515: ; preds = %506
%516 = load i32*, i32** %17
%517 = load i32, i32* %21
%518 = sext i32 %517 to i64
%519 = getelementptr inbounds i32, i32* %516, i64 %518
%520 = load i32, i32* %519
%521 = load i32*, i32** %15
%522 = load i32, i32* %27
%523 = sext i32 %522 to i64
%524 = getelementptr inbounds i32, i32* %521, i64 %523
store i32 %520, i32* %524
br label %539
525: ; preds = %506
%526 = load i32*, i32** %17
%527 = load i32, i32* %21
%528 = sext i32 %527 to i64
%529 = getelementptr inbounds i32, i32* %526, i64 %528
%530 = load i32, i32* %529
%531 = load i32*, i32** %17
%532 = load i32*, i32** %16
%533 = load i32, i32* %21
%534 = sext i32 %533 to i64
%535 = getelementptr inbounds i32, i32* %532, i64 %534
%536 = load i32, i32* %535
%537 = sext i32 %536 to i64
%538 = getelementptr inbounds i32, i32* %531, i64 %537
store i32 %530, i32* %538
br label %539
539: ; preds = %525, %515
%540 = load i32*, i32** %17
%541 = load i32, i32* %21
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds i32, i32* %540, i64 %542
%544 = load i32, i32* %543
%545 = icmp eq i32 %544, 0
br i1 %545, label %546, label %547
546: ; preds = %539
br label %561
547: ; preds = %539
%548 = load i32*, i32** %16
%549 = load i32, i32* %21
%550 = sext i32 %549 to i64
%551 = getelementptr inbounds i32, i32* %548, i64 %550
%552 = load i32, i32* %551
%553 = load i32*, i32** %16
%554 = load i32*, i32** %17
%555 = load i32, i32* %21
%556 = sext i32 %555 to i64
%557 = getelementptr inbounds i32, i32* %554, i64 %556
%558 = load i32, i32* %557
%559 = sext i32 %558 to i64
%560 = getelementptr inbounds i32, i32* %553, i64 %559
store i32 %552, i32* %560
br label %561
561: ; preds = %547, %546
%562 = load i32, i32* %27
%563 = add nsw i32 %562, -1
store i32 %563, i32* %27
%564 = load i32*, i32** %14
%565 = load i32, i32* %21
%566 = sext i32 %565 to i64
%567 = getelementptr inbounds i32, i32* %564, i64 %566
store i32 %563, i32* %567
%568 = load i32*, i32** %16
%569 = load i32, i32* %21
%570 = sext i32 %569 to i64
%571 = getelementptr inbounds i32, i32* %568, i64 %570
store i32 0, i32* %571
%572 = load i32*, i32** %15
%573 = load i32, i32* %27
%574 = sext i32 %573 to i64
%575 = getelementptr inbounds i32, i32* %572, i64 %574
%576 = load i32, i32* %575
%577 = load i32*, i32** %17
%578 = load i32, i32* %21
%579 = sext i32 %578 to i64
%580 = getelementptr inbounds i32, i32* %577, i64 %579
store i32 %576, i32* %580
%581 = load i32*, i32** %17
%582 = load i32, i32* %21
%583 = sext i32 %582 to i64
%584 = getelementptr inbounds i32, i32* %581, i64 %583
%585 = load i32, i32* %584
%586 = icmp ne i32 %585, 0
br i1 %586, label %587, label %597
587: ; preds = %561
%588 = load i32, i32* %21
%589 = load i32*, i32** %16
%590 = load i32*, i32** %17
%591 = load i32, i32* %21
%592 = sext i32 %591 to i64
%593 = getelementptr inbounds i32, i32* %590, i64 %592
%594 = load i32, i32* %593
%595 = sext i32 %594 to i64
%596 = getelementptr inbounds i32, i32* %589, i64 %595
store i32 %588, i32* %596
br label %597
597: ; preds = %587, %561
%598 = load i32, i32* %21
%599 = load i32*, i32** %15
%600 = load i32, i32* %27
%601 = sext i32 %600 to i64
%602 = getelementptr inbounds i32, i32* %599, i64 %601
store i32 %598, i32* %602
br label %603
603: ; preds = %597
%604 = load i32, i32* %28
%605 = add nsw i32 %604, -1
store i32 %605, i32* %28
br label %477
606: ; preds = %477
br label %294
607: ; preds = %294
store i32 1, i32* %21
br label %608
608: ; preds = %627, %607
%609 = load i32, i32* %21
%610 = load i32, i32* %7
%611 = icmp sle i32 %609, %610
br i1 %611, label %612, label %630
612: ; preds = %608
%613 = load i32*, i32** %11
%614 = load i32, i32* %21
%615 = sext i32 %614 to i64
%616 = getelementptr inbounds i32, i32* %613, i64 %615
%617 = load i32, i32* %616
%618 = icmp eq i32 %617, 0
br i1 %618, label %619, label %626
619: ; preds = %612
%620 = load i32, i32* %25
%621 = add nsw i32 %620, 1
store i32 %621, i32* %25
%622 = load i32*, i32** %11
%623 = load i32, i32* %21
%624 = sext i32 %623 to i64
%625 = getelementptr inbounds i32, i32* %622, i64 %624
store i32 %620, i32* %625
br label %626
626: ; preds = %619, %612
br label %627
627: ; preds = %626
%628 = load i32, i32* %21
%629 = add nsw i32 %628, 1
store i32 %629, i32* %21
br label %608
630: ; preds = %608
store i32 1, i32* %22
br label %631
631: ; preds = %647, %630
%632 = load i32, i32* %22
%633 = load i32, i32* %8
%634 = icmp sle i32 %632, %633
br i1 %634, label %635, label %650
635: ; preds = %631
%636 = load i32*, i32** %12
%637 = load i32, i32* %22
%638 = sext i32 %637 to i64
%639 = getelementptr inbounds i32, i32* %636, i64 %638
%640 = load i32, i32* %639
%641 = icmp ne i32 %640, 0
br i1 %641, label %644, label %642
642: ; preds = %635
%643 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 345)
br label %644
644: ; preds = %642, %635
%645 = phi i1 [ true, %635 ], [ true, %642 ]
%646 = zext i1 %645 to i32
br label %647
647: ; preds = %644
%648 = load i32, i32* %22
%649 = add nsw i32 %648, 1
store i32 %649, i32* %22
br label %631
650: ; preds = %631
%651 = load i32*, i32** %14
store i32* %651, i32** %31
store i32 1, i32* %23
br label %652
652: ; preds = %661, %650
%653 = load i32, i32* %23
%654 = load i32, i32* %7
%655 = icmp sle i32 %653, %654
br i1 %655, label %656, label %664
656: ; preds = %652
%657 = load i32*, i32** %31
%658 = load i32, i32* %23
%659 = sext i32 %658 to i64
%660 = getelementptr inbounds i32, i32* %657, i64 %659
store i32 0, i32* %660
br label %661
661: ; preds = %656
%662 = load i32, i32* %23
%663 = add nsw i32 %662, 1
store i32 %663, i32* %23
br label %652
664: ; preds = %652
store i32 1, i32* %21
br label %665
665: ; preds = %702, %664
%666 = load i32, i32* %21
%667 = load i32, i32* %7
%668 = icmp sle i32 %666, %667
br i1 %668, label %669, label %705
669: ; preds = %665
%670 = load i32*, i32** %11
%671 = load i32, i32* %21
%672 = sext i32 %671 to i64
%673 = getelementptr inbounds i32, i32* %670, i64 %672
%674 = load i32, i32* %673
store i32 %674, i32* %23
%675 = load i32, i32* %23
%676 = icmp sle i32 1, %675
br i1 %676, label %677, label %681
677: ; preds = %669
%678 = load i32, i32* %23
%679 = load i32, i32* %7
%680 = icmp sle i32 %678, %679
br i1 %680, label %683, label %681
681: ; preds = %677, %669
%682 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 353)
br label %683
683: ; preds = %681, %677
%684 = phi i1 [ true, %677 ], [ true, %681 ]
%685 = zext i1 %684 to i32
%686 = load i32*, i32** %31
%687 = load i32, i32* %23
%688 = sext i32 %687 to i64
%689 = getelementptr inbounds i32, i32* %686, i64 %688
%690 = load i32, i32* %689
%691 = icmp eq i32 %690, 0
br i1 %691, label %694, label %692
692: ; preds = %683
%693 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 354)
br label %694
694: ; preds = %692, %683
%695 = phi i1 [ true, %683 ], [ true, %692 ]
%696 = zext i1 %695 to i32
%697 = load i32, i32* %21
%698 = load i32*, i32** %31
%699 = load i32, i32* %23
%700 = sext i32 %699 to i64
%701 = getelementptr inbounds i32, i32* %698, i64 %700
store i32 %697, i32* %701
br label %702
702: ; preds = %694
%703 = load i32, i32* %21
%704 = add nsw i32 %703, 1
store i32 %704, i32* %21
br label %665
705: ; preds = %665
%706 = load i32*, i32** %15
store i32* %706, i32** %32
store i32 1, i32* %24
br label %707
707: ; preds = %716, %705
%708 = load i32, i32* %24
%709 = load i32, i32* %8
%710 = icmp sle i32 %708, %709
br i1 %710, label %711, label %719
711: ; preds = %707
%712 = load i32*, i32** %32
%713 = load i32, i32* %24
%714 = sext i32 %713 to i64
%715 = getelementptr inbounds i32, i32* %712, i64 %714
store i32 0, i32* %715
br label %716
716: ; preds = %711
%717 = load i32, i32* %24
%718 = add nsw i32 %717, 1
store i32 %718, i32* %24
br label %707
719: ; preds = %707
store i32 1, i32* %22
br label %720
720: ; preds = %757, %719
%721 = load i32, i32* %22
%722 = load i32, i32* %8
%723 = icmp sle i32 %721, %722
br i1 %723, label %724, label %760
724: ; preds = %720
%725 = load i32*, i32** %12
%726 = load i32, i32* %22
%727 = sext i32 %726 to i64
%728 = getelementptr inbounds i32, i32* %725, i64 %727
%729 = load i32, i32* %728
store i32 %729, i32* %24
%730 = load i32, i32* %24
%731 = icmp sle i32 1, %730
br i1 %731, label %732, label %736
732: ; preds = %724
%733 = load i32, i32* %24
%734 = load i32, i32* %8
%735 = icmp sle i32 %733, %734
br i1 %735, label %738, label %736
736: ; preds = %732, %724
%737 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 361)
br label %738
738: ; preds = %736, %732
%739 = phi i1 [ true, %732 ], [ true, %736 ]
%740 = zext i1 %739 to i32
%741 = load i32*, i32** %32
%742 = load i32, i32* %24
%743 = sext i32 %742 to i64
%744 = getelementptr inbounds i32, i32* %741, i64 %743
%745 = load i32, i32* %744
%746 = icmp eq i32 %745, 0
br i1 %746, label %749, label %747
747: ; preds = %738
%748 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 362)
br label %749
749: ; preds = %747, %738
%750 = phi i1 [ true, %738 ], [ true, %747 ]
%751 = zext i1 %750 to i32
%752 = load i32, i32* %22
%753 = load i32*, i32** %32
%754 = load i32, i32* %24
%755 = sext i32 %754 to i64
%756 = getelementptr inbounds i32, i32* %753, i64 %755
store i32 %752, i32* %756
br label %757
757: ; preds = %749
%758 = load i32, i32* %22
%759 = add nsw i32 %758, 1
store i32 %759, i32* %22
br label %720
760: ; preds = %720
store i32 1, i32* %23
br label %761
761: ; preds = %849, %760
%762 = load i32, i32* %23
%763 = load i32, i32* %29
%764 = icmp sle i32 %762, %763
br i1 %764, label %765, label %852
765: ; preds = %761
store i32 0, i32* %33
%766 = load i32*, i32** %31
%767 = load i32, i32* %23
%768 = sext i32 %767 to i64
%769 = getelementptr inbounds i32, i32* %766, i64 %768
%770 = load i32, i32* %769
store i32 %770, i32* %21
%771 = load i32 (i8*, i32, i32*)*, i32 (i8*, i32, i32*)** %10
%772 = load i8*, i8** %9
%773 = load i32, i32* %21
%774 = load i32*, i32** %13
%775 = call i32 %771(i8* %772, i32 %773, i32* %774)
store i32 %775, i32* %28
%776 = load i32, i32* %28
%777 = icmp sle i32 0, %776
br i1 %777, label %778, label %782
778: ; preds = %765
%779 = load i32, i32* %28
%780 = load i32, i32* %8
%781 = icmp sle i32 %779, %780
br i1 %781, label %784, label %782
782: ; preds = %778, %765
%783 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 371)
br label %784
784: ; preds = %782, %778
%785 = phi i1 [ true, %778 ], [ true, %782 ]
%786 = zext i1 %785 to i32
%787 = load i32, i32* %28
store i32 %787, i32* %28
br label %788
788: ; preds = %838, %784
%789 = load i32, i32* %28
%790 = icmp sge i32 %789, 1
br i1 %790, label %791, label %841
791: ; preds = %788
%792 = load i32*, i32** %13
%793 = load i32, i32* %28
%794 = sext i32 %793 to i64
%795 = getelementptr inbounds i32, i32* %792, i64 %794
%796 = load i32, i32* %795
store i32 %796, i32* %22
%797 = load i32, i32* %22
%798 = icmp sle i32 1, %797
br i1 %798, label %799, label %803
799: ; preds = %791
%800 = load i32, i32* %22
%801 = load i32, i32* %8
%802 = icmp sle i32 %800, %801
br i1 %802, label %805, label %803
803: ; preds = %799, %791
%804 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 374)
br label %805
805: ; preds = %803, %799
%806 = phi i1 [ true, %799 ], [ true, %803 ]
%807 = zext i1 %806 to i32
%808 = load i32*, i32** %12
%809 = load i32, i32* %22
%810 = sext i32 %809 to i64
%811 = getelementptr inbounds i32, i32* %808, i64 %810
%812 = load i32, i32* %811
store i32 %812, i32* %24
%813 = load i32, i32* %24
%814 = load i32, i32* %29
%815 = icmp sle i32 %813, %814
br i1 %815, label %816, label %825
816: ; preds = %805
%817 = load i32, i32* %24
%818 = load i32, i32* %23
%819 = icmp sle i32 %817, %818
br i1 %819, label %822, label %820
820: ; preds = %816
%821 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 376)
br label %822
822: ; preds = %820, %816
%823 = phi i1 [ true, %816 ], [ true, %820 ]
%824 = zext i1 %823 to i32
br label %825
825: ; preds = %822, %805
%826 = load i32, i32* %24
%827 = load i32, i32* %23
%828 = icmp eq i32 %826, %827
br i1 %828, label %829, label %837
829: ; preds = %825
%830 = load i32, i32* %33
%831 = icmp ne i32 %830, 0
br i1 %831, label %832, label %834
832: ; preds = %829
%833 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 378)
br label %834
834: ; preds = %832, %829
%835 = phi i1 [ true, %829 ], [ true, %832 ]
%836 = zext i1 %835 to i32
store i32 1, i32* %33
br label %837
837: ; preds = %834, %825
br label %838
838: ; preds = %837
%839 = load i32, i32* %28
%840 = add nsw i32 %839, -1
store i32 %840, i32* %28
br label %788
841: ; preds = %788
%842 = load i32, i32* %33
%843 = icmp ne i32 %842, 0
br i1 %843, label %846, label %844
844: ; preds = %841
%845 = call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 382)
br label %846
846: ; preds = %844, %841
%847 = phi i1 [ true, %841 ], [ true, %844 ]
%848 = zext i1 %847 to i32
br label %849
849: ; preds = %846
%850 = load i32, i32* %23
%851 = add nsw i32 %850, 1
store i32 %851, i32* %23
br label %761
852: ; preds = %761
%853 = load i32*, i32** %13
%854 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %853)
%855 = load i32*, i32** %14
%856 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %855)
%857 = load i32*, i32** %15
%858 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %857)
%859 = load i32*, i32** %16
%860 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %859)
%861 = load i32*, i32** %17
%862 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %861)
%863 = load i32*, i32** %19
%864 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %863)
%865 = load i32*, i32** %20
%866 = call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %865)
%867 = load i32, i32* %29
ret i32 %867
}

LLVM IR (-O2):
@.str = [42 x i8] c"triang: m = %d; n = %d; invalid dimension\00"
@.str.1 = [21 x i8] c"0 <= len && len <= m\00"
@.str.2 = [168 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/ecotox/pacfm/refs/heads/master/pacfm/tools/minpath-1.2/glpk-4.6/src/glplpx5.c\00"
@.str.3 = [21 x i8] c"0 <= len && len <= n\00"
@.str.4 = [15 x i8] c"rs_len[i] == 1\00"
@.str.5 = [17 x i8] c"0 <= t && t <= n\00"
@.str.6 = [19 x i8] c"1 <= jj && jj <= n\00"
@.str.7 = [7 x i8] c"j == 0\00"
@.str.8 = [7 x i8] c"j != 0\00"
@.str.9 = [17 x i8] c"0 <= t && t <= m\00"
@.str.10 = [17 x i8] c"1 <= i && i <= m\00"
@.str.11 = [9 x i8] c"len >= 1\00"
@.str.12 = [11 x i8] c"cn[j] != 0\00"
@.str.13 = [19 x i8] c"1 <= ii && ii <= m\00"
@.str.14 = [16 x i8] c"rn_inv[ii] == 0\00"
@.str.15 = [16 x i8] c"cn_inv[jj] == 0\00"
@.str.16 = [17 x i8] c"1 <= j && j <= n\00"
@.str.17 = [9 x i8] c"jj <= ii\00"
@.str.18 = [6 x i8] c"!diag\00"
@.str.19 = [5 x i8] c"diag\00"
define i32 @triang(i32 %0, i32 %1, i8* %2, i32 (i8*, i32, i32*)* nocapture %3, i32* nocapture %4, i32* nocapture %5) {
%7 = icmp sgt i32 %0, 0
%8 = icmp sgt i32 %1, 0
%9 = and i1 %7, %8
br i1 %9, label %12, label %10
10: ; preds = %6
%11 = tail call i32 (i8*, i32, i32, ...) bitcast (i32 (...)* @glp_lib_fault to i32 (i8*, i32, i32, ...)*)(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str, i64 0, i64 0), i32 %0, i32 %1)
br label %12
12: ; preds = %6, %10
%13 = icmp slt i32 %0, %1
%14 = select i1 %13, i32 %1, i32 %0
%15 = add nsw i32 %14, 1
%16 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %15, i64 4)
%17 = sext i32 %16 to i64
%18 = inttoptr i64 %17 to i32*
%19 = add i32 %0, 1
%20 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %19, i64 4)
%21 = sext i32 %20 to i64
%22 = inttoptr i64 %21 to i32*
%23 = add i32 %1, 1
%24 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %23, i64 4)
%25 = sext i32 %24 to i64
%26 = inttoptr i64 %25 to i32*
%27 = inttoptr i64 %25 to i8*
%28 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %19, i64 4)
%29 = sext i32 %28 to i64
%30 = inttoptr i64 %29 to i32*
%31 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %19, i64 4)
%32 = sext i32 %31 to i64
%33 = inttoptr i64 %32 to i32*
%34 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %23, i64 4)
%35 = sext i32 %34 to i64
%36 = inttoptr i64 %35 to i32*
%37 = tail call i32 (i32, i64, ...) bitcast (i32 (...)* @glp_lib_ucalloc to i32 (i32, i64, ...)*)(i32 %23, i64 4)
%38 = sext i32 %37 to i64
%39 = inttoptr i64 %38 to i32*
%40 = icmp slt i32 %0, 0
br i1 %40, label %46, label %41
41: ; preds = %12
%42 = inttoptr i64 %21 to i8*
%43 = zext i32 %0 to i64
%44 = shl nuw nsw i64 %43, 2
%45 = add nuw nsw i64 %44, 4
br label %46
46: ; preds = %41, %12
%47 = icmp slt i32 %1, 1
br i1 %47, label %50, label %48
48: ; preds = %46
%49 = zext i32 %23 to i64
br label %57
50: ; preds = %67, %46
br i1 %40, label %129, label %51
51: ; preds = %50
%52 = zext i32 %19 to i64
%53 = and i64 %52, 1
%54 = icmp eq i32 %0, 0
br i1 %54, label %75, label %55
55: ; preds = %51
%56 = and i64 %52, 4294967294
br label %95
57: ; preds = %48, %67
%58 = phi i64 [ 1, %48 ], [ %73, %67 ]
%59 = trunc i64 %58 to i32
%60 = sub i32 0, %59
%61 = tail call i32 %3(i8* %2, i32 %60, i32* %18)
%62 = icmp slt i32 %61, 0
%63 = icmp sgt i32 %61, %0
%64 = or i1 %62, %63
br i1 %64, label %65, label %67
65: ; preds = %57
%66 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 224)
br label %67
67: ; preds = %57, %65
%68 = sext i32 %61 to i64
%69 = getelementptr inbounds i32, i32* %22, i64 %68
%70 = load i32, i32* %69
%71 = getelementptr inbounds i32, i32* %36, i64 %58
store i32 %70, i32* %71
%72 = trunc i64 %58 to i32
store i32 %72, i32* %69
%73 = add nuw nsw i64 %58, 1
%74 = icmp eq i64 %73, %49
br i1 %74, label %50, label %57
75: ; preds = %124, %51
%76 = phi i32 [ undef, %51 ], [ %125, %124 ]
%77 = phi i64 [ 0, %51 ], [ %126, %124 ]
%78 = phi i32 [ 0, %51 ], [ %125, %124 ]
%79 = icmp eq i64 %53, 0
br i1 %79, label %92, label %80
80: ; preds = %75
%81 = getelementptr inbounds i32, i32* %22, i64 %77
%82 = load i32, i32* %81
%83 = icmp eq i32 %82, 0
br i1 %83, label %92, label %84
84: ; preds = %80, %84
%85 = phi i32 [ %90, %84 ], [ %82, %80 ]
%86 = phi i32 [ %85, %84 ], [ %78, %80 ]
%87 = sext i32 %85 to i64
%88 = getelementptr inbounds i32, i32* %39, i64 %87
store i32 %86, i32* %88
%89 = getelementptr inbounds i32, i32* %36, i64 %87
%90 = load i32, i32* %89
%91 = icmp eq i32 %90, 0
br i1 %91, label %92, label %84
92: ; preds = %80, %84, %75
%93 = phi i32 [ %76, %75 ], [ %78, %80 ], [ %85, %84 ]
%94 = icmp eq i32 %93, 0
br i1 %94, label %129, label %136
95: ; preds = %124, %55
%96 = phi i64 [ 0, %55 ], [ %126, %124 ]
%97 = phi i32 [ 0, %55 ], [ %125, %124 ]
%98 = phi i64 [ 0, %55 ], [ %127, %124 ]
%99 = getelementptr inbounds i32, i32* %22, i64 %96
%100 = load i32, i32* %99
%101 = icmp eq i32 %100, 0
br i1 %101, label %110, label %102
102: ; preds = %95, %102
%103 = phi i32 [ %108, %102 ], [ %100, %95 ]
%104 = phi i32 [ %103, %102 ], [ %97, %95 ]
%105 = sext i32 %103 to i64
%106 = getelementptr inbounds i32, i32* %39, i64 %105
store i32 %104, i32* %106
%107 = getelementptr inbounds i32, i32* %36, i64 %105
%108 = load i32, i32* %107
%109 = icmp eq i32 %108, 0
br i1 %109, label %110, label %102
110: ; preds = %102, %95
%111 = phi i32 [ %97, %95 ], [ %103, %102 ]
%112 = or i64 %96, 1
%113 = getelementptr inbounds i32, i32* %22, i64 %112
%114 = load i32, i32* %113
%115 = icmp eq i32 %114, 0
br i1 %115, label %124, label %116
116: ; preds = %110, %116
%117 = phi i32 [ %122, %116 ], [ %114, %110 ]
%118 = phi i32 [ %117, %116 ], [ %111, %110 ]
%119 = sext i32 %117 to i64
%120 = getelementptr inbounds i32, i32* %39, i64 %119
store i32 %118, i32* %120
%121 = getelementptr inbounds i32, i32* %36, i64 %119
%122 = load i32, i32* %121
%123 = icmp eq i32 %122, 0
br i1 %123, label %124, label %116
124: ; preds = %116, %110
%125 = phi i32 [ %111, %110 ], [ %117, %116 ]
%126 = add nuw nsw i64 %96, 2
%127 = add i64 %98, 2
%128 = icmp eq i64 %127, %56
br i1 %128, label %75, label %95
129: ; preds = %136, %50, %92
%130 = phi i32 [ 0, %92 ], [ 0, %50 ], [ %93, %136 ]
%131 = icmp slt i32 %1, 0
br i1 %131, label %144, label %132
132: ; preds = %129
%133 = zext i32 %1 to i64
%134 = shl nuw nsw i64 %133, 2
%135 = add nuw nsw i64 %134, 4
br label %144
136: ; preds = %92, %136
%137 = phi i32 [ %142, %136 ], [ %93, %92 ]
%138 = phi i32 [ %137, %136 ], [ 0, %92 ]
%139 = sext i32 %137 to i64
%140 = getelementptr inbounds i32, i32* %36, i64 %139
store i32 %138, i32* %140
%141 = getelementptr inbounds i32, i32* %39, i64 %139
%142 = load i32, i32* %141
%143 = icmp eq i32 %142, 0
br i1 %143, label %129, label %136
144: ; preds = %132, %129
%145 = icmp slt i32 %0, 1
br i1 %145, label %177, label %146
146: ; preds = %144
%147 = zext i32 %19 to i64
br label %154
148: ; preds = %174
br i1 %145, label %177, label %149
149: ; preds = %148
%150 = getelementptr i32, i32* %4, i64 1
%151 = bitcast i32* %150 to i8*
%152 = zext i32 %0 to i64
%153 = shl nuw nsw i64 %152, 2
br label %177
154: ; preds = %146, %174
%155 = phi i64 [ 1, %146 ], [ %175, %174 ]
%156 = trunc i64 %155 to i32
%157 = tail call i32 %3(i8* %2, i32 %156, i32* %18)
%158 = getelementptr inbounds i32, i32* %22, i64 %155
store i32 %157, i32* %158
%159 = icmp slt i32 %157, 0
%160 = icmp sgt i32 %157, %1
%161 = or i1 %159, %160
br i1 %161, label %162, label %164
162: ; preds = %154
%163 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 249)
br label %164
164: ; preds = %154, %162
%165 = getelementptr inbounds i32, i32* %30, i64 %155
store i32 0, i32* %165
%166 = sext i32 %157 to i64
%167 = getelementptr inbounds i32, i32* %26, i64 %166
%168 = load i32, i32* %167
%169 = getelementptr inbounds i32, i32* %33, i64 %155
store i32 %168, i32* %169
%170 = icmp eq i32 %168, 0
br i1 %170, label %174, label %171
171: ; preds = %164
%172 = sext i32 %168 to i64
%173 = getelementptr inbounds i32, i32* %30, i64 %172
store i32 %156, i32* %173
br label %174
174: ; preds = %171, %164
store i32 %156, i32* %167
%175 = add nuw nsw i64 %155, 1
%176 = icmp eq i64 %175, %147
br i1 %176, label %148, label %154
177: ; preds = %144, %149, %148
br i1 %47, label %186, label %178
178: ; preds = %177
%179 = getelementptr i32, i32* %5, i64 1
%180 = bitcast i32* %179 to i8*
%181 = zext i32 %1 to i64
%182 = shl nuw nsw i64 %181, 2
%183 = getelementptr inbounds i32, i32* %26, i64 1
br label %196
184: ; preds = %340, %294
%185 = icmp sgt i32 %265, %266
br i1 %185, label %186, label %196
186: ; preds = %184, %177
%187 = phi i32 [ 1, %177 ], [ %265, %184 ]
%188 = phi i32 [ 0, %177 ], [ %267, %184 ]
br i1 %145, label %352, label %189
189: ; preds = %186
%190 = zext i32 %19 to i64
%191 = add nsw i64 %190, -1
%192 = and i64 %191, 1
%193 = icmp eq i32 %19, 2
br i1 %193, label %343, label %194
194: ; preds = %189
%195 = and i64 %191, -2
br label %355
196: ; preds = %178, %184
%197 = phi i32 [ %130, %178 ], [ %280, %184 ]
%198 = phi i32 [ 0, %178 ], [ %267, %184 ]
%199 = phi i32 [ %1, %178 ], [ %266, %184 ]
%200 = phi i32 [ 1, %178 ], [ %265, %184 ]
%201 = load i32, i32* %183
%202 = icmp eq i32 %201, 0
br i1 %202, label %255, label %203
203: ; preds = %196
%204 = sext i32 %201 to i64
%205 = getelementptr inbounds i32, i32* %22, i64 %204
%206 = load i32, i32* %205
%207 = icmp eq i32 %206, 1
br i1 %207, label %210, label %208
208: ; preds = %203
%209 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 267)
br label %210
210: ; preds = %208, %203
%211 = tail call i32 %3(i8* %2, i32 %201, i32* %18)
%212 = icmp slt i32 %211, 0
%213 = icmp sgt i32 %211, %1
%214 = or i1 %212, %213
br i1 %214, label %215, label %217
215: ; preds = %210
%216 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 272)
br label %217
217: ; preds = %210, %215
%218 = icmp sgt i32 %211, 0
br i1 %218, label %219, label %246
219: ; preds = %217
%220 = zext i32 %211 to i64
br label %221
221: ; preds = %219, %240
%222 = phi i64 [ %220, %219 ], [ %242, %240 ]
%223 = phi i32 [ 0, %219 ], [ %241, %240 ]
%224 = getelementptr inbounds i32, i32* %18, i64 %222
%225 = load i32, i32* %224
%226 = icmp slt i32 %225, 1
%227 = icmp sgt i32 %225, %1
%228 = or i1 %226, %227
br i1 %228, label %229, label %231
229: ; preds = %221
%230 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 275)
br label %231
231: ; preds = %221, %229
%232 = sext i32 %225 to i64
%233 = getelementptr inbounds i32, i32* %5, i64 %232
%234 = load i32, i32* %233
%235 = icmp eq i32 %234, 0
br i1 %235, label %236, label %240
236: ; preds = %231
%237 = icmp eq i32 %223, 0
br i1 %237, label %240, label %238
238: ; preds = %236
%239 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 277)
br label %240
240: ; preds = %236, %238, %231
%241 = phi i32 [ %223, %231 ], [ %225, %238 ], [ %225, %236 ]
%242 = add nsw i64 %222, -1
%243 = icmp sgt i64 %222, 1
br i1 %243, label %221, label %244
244: ; preds = %240
%245 = icmp eq i32 %241, 0
br i1 %245, label %246, label %248
246: ; preds = %217, %244
%247 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 281)
br label %248
248: ; preds = %246, %244
%249 = phi i32 [ 0, %246 ], [ %241, %244 ]
%250 = sext i32 %249 to i64
%251 = getelementptr inbounds i32, i32* %5, i64 %250
store i32 %200, i32* %251
%252 = getelementptr inbounds i32, i32* %4, i64 %204
store i32 %200, i32* %252
%253 = add nsw i32 %200, 1
%254 = add nsw i32 %198, 1
br label %263
255: ; preds = %196
%256 = icmp eq i32 %197, 0
br i1 %256, label %257, label %259
257: ; preds = %255
%258 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 295)
br label %259
259: ; preds = %257, %255
%260 = sext i32 %197 to i64
%261 = getelementptr inbounds i32, i32* %5, i64 %260
store i32 %199, i32* %261
%262 = add nsw i32 %199, -1
br label %263
263: ; preds = %259, %248
%264 = phi i64 [ %260, %259 ], [ %250, %248 ]
%265 = phi i32 [ %200, %259 ], [ %253, %248 ]
%266 = phi i32 [ %262, %259 ], [ %199, %248 ]
%267 = phi i32 [ %198, %259 ], [ %254, %248 ]
%268 = phi i32 [ %197, %259 ], [ %249, %248 ]
%269 = getelementptr inbounds i32, i32* %36, i64 %264
%270 = load i32, i32* %269
%271 = icmp eq i32 %270, 0
%272 = getelementptr inbounds i32, i32* %39, i64 %264
%273 = load i32, i32* %272
br i1 %271, label %278, label %274
274: ; preds = %263
%275 = sext i32 %270 to i64
%276 = getelementptr inbounds i32, i32* %39, i64 %275
store i32 %273, i32* %276
%277 = load i32, i32* %272
br label %278
278: ; preds = %263, %274
%279 = phi i32 [ %277, %274 ], [ %273, %263 ]
%280 = phi i32 [ %197, %274 ], [ %273, %263 ]
%281 = icmp eq i32 %279, 0
br i1 %281, label %286, label %282
282: ; preds = %278
%283 = load i32, i32* %269
%284 = sext i32 %279 to i64
%285 = getelementptr inbounds i32, i32* %36, i64 %284
store i32 %283, i32* %285
br label %286
286: ; preds = %278, %282
%287 = sub nsw i32 0, %268
%288 = tail call i32 %3(i8* %2, i32 %287, i32* %18)
%289 = icmp slt i32 %288, 0
%290 = icmp sgt i32 %288, %0
%291 = or i1 %289, %290
br i1 %291, label %292, label %294
292: ; preds = %286
%293 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 314)
br label %294
294: ; preds = %286, %292
%295 = icmp sgt i32 %288, 0
br i1 %295, label %296, label %184
296: ; preds = %294
%297 = zext i32 %288 to i64
br label %298
298: ; preds = %296, %340
%299 = phi i64 [ %297, %296 ], [ %341, %340 ]
%300 = getelementptr inbounds i32, i32* %18, i64 %299
%301 = load i32, i32* %300
%302 = icmp slt i32 %301, 1
%303 = icmp sgt i32 %301, %0
%304 = or i1 %302, %303
br i1 %304, label %305, label %307
305: ; preds = %298
%306 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 317)
br label %307
307: ; preds = %298, %305
%308 = sext i32 %301 to i64
%309 = getelementptr inbounds i32, i32* %22, i64 %308
%310 = load i32, i32* %309
%311 = icmp sgt i32 %310, 0
br i1 %311, label %314, label %312
312: ; preds = %307
%313 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 320)
br label %314
314: ; preds = %312, %307
%315 = getelementptr inbounds i32, i32* %30, i64 %308
%316 = load i32, i32* %315
%317 = icmp eq i32 %316, 0
%318 = getelementptr inbounds i32, i32* %33, i64 %308
%319 = load i32, i32* %318
%320 = select i1 %317, i32 %310, i32 %316
%321 = select i1 %317, i32* %26, i32* %33
%322 = sext i32 %320 to i64
%323 = getelementptr inbounds i32, i32* %321, i64 %322
store i32 %319, i32* %323
%324 = getelementptr inbounds i32, i32* %33, i64 %308
%325 = load i32, i32* %324
%326 = icmp eq i32 %325, 0
br i1 %326, label %331, label %327
327: ; preds = %314
%328 = load i32, i32* %315
%329 = sext i32 %325 to i64
%330 = getelementptr inbounds i32, i32* %30, i64 %329
store i32 %328, i32* %330
br label %331
331: ; preds = %314, %327
%332 = add nsw i32 %310, -1
store i32 %332, i32* %309
store i32 0, i32* %315
%333 = sext i32 %332 to i64
%334 = getelementptr inbounds i32, i32* %26, i64 %333
%335 = load i32, i32* %334
store i32 %335, i32* %324
%336 = icmp eq i32 %335, 0
br i1 %336, label %340, label %337
337: ; preds = %331
%338 = sext i32 %335 to i64
%339 = getelementptr inbounds i32, i32* %30, i64 %338
store i32 %301, i32* %339
br label %340
340: ; preds = %337, %331
store i32 %301, i32* %334
%341 = add nsw i64 %299, -1
%342 = icmp sgt i64 %299, 1
br i1 %342, label %298, label %184
343: ; preds = %372, %189
%344 = phi i64 [ 1, %189 ], [ %374, %372 ]
%345 = phi i32 [ %187, %189 ], [ %373, %372 ]
%346 = icmp eq i64 %192, 0
br i1 %346, label %352, label %347
347: ; preds = %343
%348 = getelementptr inbounds i32, i32* %4, i64 %344
%349 = load i32, i32* %348
%350 = icmp eq i32 %349, 0
br i1 %350, label %351, label %352
351: ; preds = %347
store i32 %345, i32* %348
br label %352
352: ; preds = %343, %351, %347, %186
br i1 %47, label %377, label %353
353: ; preds = %352
%354 = zext i32 %23 to i64
br label %378
355: ; preds = %372, %194
%356 = phi i64 [ 1, %194 ], [ %374, %372 ]
%357 = phi i32 [ %187, %194 ], [ %373, %372 ]
%358 = phi i64 [ 0, %194 ], [ %375, %372 ]
%359 = getelementptr inbounds i32, i32* %4, i64 %356
%360 = load i32, i32* %359
%361 = icmp eq i32 %360, 0
br i1 %361, label %362, label %364
362: ; preds = %355
%363 = add nsw i32 %357, 1
store i32 %357, i32* %359
br label %364
364: ; preds = %355, %362
%365 = phi i32 [ %363, %362 ], [ %357, %355 ]
%366 = add nuw nsw i64 %356, 1
%367 = getelementptr inbounds i32, i32* %4, i64 %366
%368 = load i32, i32* %367
%369 = icmp eq i32 %368, 0
br i1 %369, label %370, label %372
370: ; preds = %364
%371 = add nsw i32 %365, 1
store i32 %365, i32* %367
br label %372
372: ; preds = %370, %364
%373 = phi i32 [ %371, %370 ], [ %365, %364 ]
%374 = add nuw nsw i64 %356, 2
%375 = add i64 %358, 2
%376 = icmp eq i64 %375, %195
br i1 %376, label %343, label %355
377: ; preds = %385, %352
br i1 %145, label %394, label %388
378: ; preds = %353, %385
%379 = phi i64 [ 1, %353 ], [ %386, %385 ]
%380 = getelementptr inbounds i32, i32* %5, i64 %379
%381 = load i32, i32* %380
%382 = icmp eq i32 %381, 0
br i1 %382, label %383, label %385
383: ; preds = %378
%384 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 345)
br label %385
385: ; preds = %383, %378
%386 = add nuw nsw i64 %379, 1
%387 = icmp eq i64 %386, %354
br i1 %387, label %377, label %378
388: ; preds = %377
%389 = getelementptr i32, i32* %22, i64 1
%390 = bitcast i32* %389 to i8*
%391 = zext i32 %0 to i64
%392 = shl nuw nsw i64 %391, 2
%393 = zext i32 %19 to i64
br label %395
394: ; preds = %411, %377
br i1 %47, label %421, label %415
395: ; preds = %388, %411
%396 = phi i64 [ 1, %388 ], [ %413, %411 ]
%397 = getelementptr inbounds i32, i32* %4, i64 %396
%398 = load i32, i32* %397
%399 = icmp slt i32 %398, 1
%400 = icmp sgt i32 %398, %0
%401 = or i1 %399, %400
br i1 %401, label %402, label %404
402: ; preds = %395
%403 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 353)
br label %404
404: ; preds = %395, %402
%405 = sext i32 %398 to i64
%406 = getelementptr inbounds i32, i32* %22, i64 %405
%407 = load i32, i32* %406
%408 = icmp eq i32 %407, 0
br i1 %408, label %411, label %409
409: ; preds = %404
%410 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 354)
br label %411
411: ; preds = %409, %404
%412 = trunc i64 %396 to i32
store i32 %412, i32* %406
%413 = add nuw nsw i64 %396, 1
%414 = icmp eq i64 %413, %393
br i1 %414, label %394, label %395
415: ; preds = %394
%416 = getelementptr i32, i32* %26, i64 1
%417 = bitcast i32* %416 to i8*
%418 = zext i32 %1 to i64
%419 = shl nuw nsw i64 %418, 2
%420 = zext i32 %23 to i64
br label %426
421: ; preds = %442, %394
%422 = icmp slt i32 %188, 1
br i1 %422, label %498, label %423
423: ; preds = %421
%424 = add nuw i32 %188, 1
%425 = zext i32 %424 to i64
br label %446
426: ; preds = %415, %442
%427 = phi i64 [ 1, %415 ], [ %444, %442 ]
%428 = getelementptr inbounds i32, i32* %5, i64 %427
%429 = load i32, i32* %428
%430 = icmp slt i32 %429, 1
%431 = icmp sgt i32 %429, %1
%432 = or i1 %430, %431
br i1 %432, label %433, label %435
433: ; preds = %426
%434 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 361)
br label %435
435: ; preds = %426, %433
%436 = sext i32 %429 to i64
%437 = getelementptr inbounds i32, i32* %26, i64 %436
%438 = load i32, i32* %437
%439 = icmp eq i32 %438, 0
br i1 %439, label %442, label %440
440: ; preds = %435
%441 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 362)
br label %442
442: ; preds = %440, %435
%443 = trunc i64 %427 to i32
store i32 %443, i32* %437
%444 = add nuw nsw i64 %427, 1
%445 = icmp eq i64 %444, %420
br i1 %445, label %421, label %426
446: ; preds = %423, %495
%447 = phi i64 [ 1, %423 ], [ %496, %495 ]
%448 = getelementptr inbounds i32, i32* %22, i64 %447
%449 = load i32, i32* %448
%450 = tail call i32 %3(i8* %2, i32 %449, i32* %18)
%451 = icmp slt i32 %450, 0
%452 = icmp sgt i32 %450, %1
%453 = or i1 %451, %452
br i1 %453, label %454, label %456
454: ; preds = %446
%455 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 371)
br label %456
456: ; preds = %446, %454
%457 = icmp sgt i32 %450, 0
br i1 %457, label %458, label %493
458: ; preds = %456
%459 = zext i32 %450 to i64
br label %460
460: ; preds = %458, %487
%461 = phi i64 [ %459, %458 ], [ %489, %487 ]
%462 = phi i32 [ 0, %458 ], [ %488, %487 ]
%463 = getelementptr inbounds i32, i32* %18, i64 %461
%464 = load i32, i32* %463
%465 = icmp slt i32 %464, 1
%466 = icmp sgt i32 %464, %1
%467 = or i1 %465, %466
br i1 %467, label %468, label %470
468: ; preds = %460
%469 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 374)
br label %470
470: ; preds = %460, %468
%471 = sext i32 %464 to i64
%472 = getelementptr inbounds i32, i32* %5, i64 %471
%473 = load i32, i32* %472
%474 = icmp sle i32 %473, %188
%475 = sext i32 %473 to i64
%476 = icmp slt i64 %447, %475
%477 = select i1 %474, i1 %476, i1 false
br i1 %477, label %478, label %480
478: ; preds = %470
%479 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 376)
br label %480
480: ; preds = %478, %470
%481 = zext i32 %473 to i64
%482 = icmp eq i64 %447, %481
br i1 %482, label %483, label %487
483: ; preds = %480
%484 = icmp eq i32 %462, 0
br i1 %484, label %487, label %485
485: ; preds = %483
%486 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 378)
br label %487
487: ; preds = %483, %485, %480
%488 = phi i32 [ %462, %480 ], [ 1, %485 ], [ 1, %483 ]
%489 = add nsw i64 %461, -1
%490 = icmp sgt i64 %461, 1
br i1 %490, label %460, label %491
491: ; preds = %487
%492 = icmp eq i32 %488, 0
br i1 %492, label %493, label %495
493: ; preds = %456, %491
%494 = tail call i32 (i8*, i8*, i32, ...) bitcast (i32 (...)* @glp_lib_insist to i32 (i8*, i8*, i32, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([168 x i8], [168 x i8]* @.str.2, i64 0, i64 0), i32 382)
br label %495
495: ; preds = %493, %491
%496 = add nuw nsw i64 %447, 1
%497 = icmp eq i64 %496, %425
br i1 %497, label %498, label %446
498: ; preds = %495, %421
%499 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %18)
%500 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %22)
%501 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %26)
%502 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %30)
%503 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %33)
%504 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %36)
%505 = tail call i32 (i32*, ...) bitcast (i32 (...)* @glp_lib_ufree to i32 (i32*, ...)*)(i32* %39)
ret i32 %188
}