int QRNAShuffle(char *xs, char *ys, char *x, char *y) {
  int L;
  int *xycol, *xcol, *ycol;
  int nxy, nx, ny;
  int i;
  int pos, c;
  char xsym, ysym;
  if (xs != x)
    strcpy(xs, x);
  if (ys != y)
    strcpy(ys, y);
  L = strlen(x);
  xycol = sre_malloc(
      "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
      "2022-01-22/02-19-57/repos/vinuesa/get_phylomarkers/refs/heads/master/"
      "bin/clustal-omega-1.2.4/src/squid/shuffle.c",
      569, (sizeof(int) * L));
  xcol = sre_malloc(
      "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
      "2022-01-22/02-19-57/repos/vinuesa/get_phylomarkers/refs/heads/master/"
      "bin/clustal-omega-1.2.4/src/squid/shuffle.c",
      570, (sizeof(int) * L));
  ycol = sre_malloc(
      "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
      "2022-01-22/02-19-57/repos/vinuesa/get_phylomarkers/refs/heads/master/"
      "bin/clustal-omega-1.2.4/src/squid/shuffle.c",
      571, (sizeof(int) * L));
  nxy = nx = ny = 0;
  for (i = 0; i < L; i++) {
    if (((x[i]) == ' ' || (x[i]) == '.' || (x[i]) == '_' || (x[i]) == '-' ||
         (x[i]) == '~') &&
        ((y[i]) == ' ' || (y[i]) == '.' || (y[i]) == '_' || (y[i]) == '-' ||
         (y[i]) == '~')) {
      continue;
    } else if (!((x[i]) == ' ' || (x[i]) == '.' || (x[i]) == '_' ||
                 (x[i]) == '-' || (x[i]) == '~') &&
               !((y[i]) == ' ' || (y[i]) == '.' || (y[i]) == '_' ||
                 (y[i]) == '-' || (y[i]) == '~')) {
      xycol[nxy] = i;
      nxy++;
    } else if (((x[i]) == ' ' || (x[i]) == '.' || (x[i]) == '_' ||
                (x[i]) == '-' || (x[i]) == '~')) {
      ycol[ny] = i;
      ny++;
    } else if (((y[i]) == ' ' || (y[i]) == '.' || (y[i]) == '_' ||
                (y[i]) == '-' || (y[i]) == '~')) {
      xcol[nx] = i;
      nx++;
    }
  }
  for (; nxy > 1; nxy--) {
    pos = ((int)(sre_random() * (nxy)));
    xsym = xs[xycol[pos]];
    ysym = ys[xycol[pos]];
    c = xycol[pos];
    xs[xycol[pos]] = xs[xycol[nxy - 1]];
    ys[xycol[pos]] = ys[xycol[nxy - 1]];
    xycol[pos] = xycol[nxy - 1];
    xs[xycol[nxy - 1]] = xsym;
    ys[xycol[nxy - 1]] = ysym;
    xycol[pos] = xycol[nxy - 1];
  }
  for (; nx > 1; nx--) {
    pos = ((int)(sre_random() * (nx)));
    xsym = xs[xcol[pos]];
    ysym = ys[xcol[pos]];
    c = xcol[pos];
    xs[xcol[pos]] = xs[xcol[nx - 1]];
    ys[xcol[pos]] = ys[xcol[nx - 1]];
    xcol[pos] = xcol[nx - 1];
    xs[xcol[nx - 1]] = xsym;
    ys[xcol[nx - 1]] = ysym;
    xcol[nx - 1] = c;
  }
  for (; ny > 1; ny--) {
    pos = ((int)(sre_random() * (ny)));
    xsym = xs[ycol[pos]];
    ysym = ys[ycol[pos]];
    c = ycol[pos];
    xs[ycol[pos]] = xs[ycol[ny - 1]];
    ys[ycol[pos]] = ys[ycol[ny - 1]];
    ycol[pos] = ycol[ny - 1];
    xs[ycol[ny - 1]] = xsym;
    ys[ycol[ny - 1]] = ysym;
    ycol[ny - 1] = c;
  }
  free(xycol);
  free(xcol);
  free(ycol);
  return 1;
}


x86 assembly (clang, -O0):
<QRNAShuffle>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    -0x8(%rbp),%rax
cmp    -0x18(%rbp),%rax
je     1183 <QRNAShuffle+0x33>
mov    -0x8(%rbp),%rdi
mov    -0x18(%rbp),%rsi
call   1040 <strcpy@plt>
mov    -0x10(%rbp),%rax
cmp    -0x20(%rbp),%rax
je     119e <QRNAShuffle+0x4e>
mov    -0x10(%rbp),%rdi
mov    -0x20(%rbp),%rsi
call   1040 <strcpy@plt>
mov    -0x18(%rbp),%rdi
call   1050 <strlen@plt>
mov    %eax,-0x24(%rbp)
movslq -0x24(%rbp),%rdx
shl    $0x2,%rdx
lea    0xe47(%rip),%rdi
mov    $0x239,%esi
mov    $0x0,%al
call   1070 <sre_malloc@plt>
cltq
mov    %rax,-0x30(%rbp)
movslq -0x24(%rbp),%rdx
shl    $0x2,%rdx
lea    0xe26(%rip),%rdi
mov    $0x23a,%esi
mov    $0x0,%al
call   1070 <sre_malloc@plt>
cltq
mov    %rax,-0x38(%rbp)
movslq -0x24(%rbp),%rdx
shl    $0x2,%rdx
lea    0xe05(%rip),%rdi
mov    $0x23b,%esi
mov    $0x0,%al
call   1070 <sre_malloc@plt>
cltq
mov    %rax,-0x40(%rbp)
movl   $0x0,-0x4c(%rbp)
movl   $0x0,-0x48(%rbp)
movl   $0x0,-0x44(%rbp)
movl   $0x0,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x24(%rbp),%eax
jge    1521 <QRNAShuffle+0x3d1>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     129e <QRNAShuffle+0x14e>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     129e <QRNAShuffle+0x14e>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5f,%eax
je     129e <QRNAShuffle+0x14e>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     129e <QRNAShuffle+0x14e>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7e,%eax
jne    130c <QRNAShuffle+0x1bc>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     1307 <QRNAShuffle+0x1b7>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     1307 <QRNAShuffle+0x1b7>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5f,%eax
je     1307 <QRNAShuffle+0x1b7>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     1307 <QRNAShuffle+0x1b7>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7e,%eax
jne    130c <QRNAShuffle+0x1bc>
jmp    1513 <QRNAShuffle+0x3c3>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5f,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7e,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5f,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7e,%eax
je     13fa <QRNAShuffle+0x2aa>
mov    -0x50(%rbp),%edx
mov    -0x30(%rbp),%rax
movslq -0x44(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1509 <QRNAShuffle+0x3b9>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     1463 <QRNAShuffle+0x313>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     1463 <QRNAShuffle+0x313>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5f,%eax
je     1463 <QRNAShuffle+0x313>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     1463 <QRNAShuffle+0x313>
mov    -0x18(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7e,%eax
jne    147f <QRNAShuffle+0x32f>
mov    -0x50(%rbp),%edx
mov    -0x40(%rbp),%rax
movslq -0x4c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1504 <QRNAShuffle+0x3b4>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x20,%eax
je     14e8 <QRNAShuffle+0x398>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2e,%eax
je     14e8 <QRNAShuffle+0x398>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x5f,%eax
je     14e8 <QRNAShuffle+0x398>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x2d,%eax
je     14e8 <QRNAShuffle+0x398>
mov    -0x20(%rbp),%rax
movslq -0x50(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x7e,%eax
jne    14ff <QRNAShuffle+0x3af>
mov    -0x50(%rbp),%edx
mov    -0x38(%rbp),%rax
movslq -0x48(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    1504 <QRNAShuffle+0x3b4>
jmp    1509 <QRNAShuffle+0x3b9>
jmp    150e <QRNAShuffle+0x3be>
jmp    1513 <QRNAShuffle+0x3c3>
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    1229 <QRNAShuffle+0xd9>
jmp    1526 <QRNAShuffle+0x3d6>
cmpl   $0x1,-0x44(%rbp)
jle    1648 <QRNAShuffle+0x4f8>
mov    $0x0,%al
call   1060 <sre_random@plt>
imul   -0x44(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x30(%rbp),%rcx
movslq -0x54(%rbp),%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x59(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x30(%rbp),%rcx
movslq -0x54(%rbp),%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x5a(%rbp)
mov    -0x30(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x30(%rbp),%rcx
mov    -0x44(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x30(%rbp),%rcx
movslq -0x54(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x10(%rbp),%rax
mov    -0x30(%rbp),%rcx
mov    -0x44(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x10(%rbp),%rax
mov    -0x30(%rbp),%rcx
movslq -0x54(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x30(%rbp),%rax
mov    -0x44(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x30(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x59(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x30(%rbp),%rcx
mov    -0x44(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x5a(%rbp),%dl
mov    -0x10(%rbp),%rax
mov    -0x30(%rbp),%rcx
mov    -0x44(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x30(%rbp),%rax
mov    -0x44(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x30(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x44(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x44(%rbp)
jmp    1526 <QRNAShuffle+0x3d6>
jmp    164d <QRNAShuffle+0x4fd>
cmpl   $0x1,-0x48(%rbp)
jle    1767 <QRNAShuffle+0x617>
mov    $0x0,%al
call   1060 <sre_random@plt>
imul   -0x48(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x38(%rbp),%rcx
movslq -0x54(%rbp),%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x59(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x38(%rbp),%rcx
movslq -0x54(%rbp),%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x5a(%rbp)
mov    -0x38(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x38(%rbp),%rcx
mov    -0x48(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x38(%rbp),%rcx
movslq -0x54(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x10(%rbp),%rax
mov    -0x38(%rbp),%rcx
mov    -0x48(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x10(%rbp),%rax
mov    -0x38(%rbp),%rcx
movslq -0x54(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x38(%rbp),%rax
mov    -0x48(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x38(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x59(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x38(%rbp),%rcx
mov    -0x48(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x5a(%rbp),%dl
mov    -0x10(%rbp),%rax
mov    -0x38(%rbp),%rcx
mov    -0x48(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x58(%rbp),%edx
mov    -0x38(%rbp),%rax
mov    -0x48(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x48(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x48(%rbp)
jmp    164d <QRNAShuffle+0x4fd>
jmp    176c <QRNAShuffle+0x61c>
cmpl   $0x1,-0x4c(%rbp)
jle    1886 <QRNAShuffle+0x736>
mov    $0x0,%al
call   1060 <sre_random@plt>
imul   -0x4c(%rbp),%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x40(%rbp),%rcx
movslq -0x54(%rbp),%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x59(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x40(%rbp),%rcx
movslq -0x54(%rbp),%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%al
mov    %al,-0x5a(%rbp)
mov    -0x40(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    %eax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    -0x4c(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x8(%rbp),%rax
mov    -0x40(%rbp),%rcx
movslq -0x54(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x10(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    -0x4c(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
movslq (%rcx,%rdx,4),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x10(%rbp),%rax
mov    -0x40(%rbp),%rcx
movslq -0x54(%rbp),%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x40(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x40(%rbp),%rax
movslq -0x54(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x59(%rbp),%dl
mov    -0x8(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    -0x4c(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x5a(%rbp),%dl
mov    -0x10(%rbp),%rax
mov    -0x40(%rbp),%rcx
mov    -0x4c(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
movslq (%rcx,%rsi,4),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x58(%rbp),%edx
mov    -0x40(%rbp),%rax
mov    -0x4c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x4c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x4c(%rbp)
jmp    176c <QRNAShuffle+0x61c>
mov    -0x30(%rbp),%rdi
call   1030 <free@plt>
mov    -0x38(%rbp),%rdi
call   1030 <free@plt>
mov    -0x40(%rbp),%rdi
call   1030 <free@plt>
mov    $0x1,%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<QRNAShuffle>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %rcx,%rbx
mov    %rdx,%rbp
mov    %rsi,%r14
mov    %rdi,%r12
cmp    %rdx,%rdi
je     117a <QRNAShuffle+0x2a>
mov    %r12,%rdi
mov    %rbp,%rsi
call   1040 <strcpy@plt>
cmp    %rbx,%r14
je     118a <QRNAShuffle+0x3a>
mov    %r14,%rdi
mov    %rbx,%rsi
call   1040 <strcpy@plt>
mov    %rbx,0x10(%rsp)
mov    %rbp,0x20(%rsp)
mov    %rbp,%rdi
call   1050 <strlen@plt>
mov    %rax,0x8(%rsp)
movslq %eax,%rbp
lea    0x0(,%rbp,4),%r13
lea    0xe4d(%rip),%rbx
mov    %rbx,%rdi
mov    $0x239,%esi
mov    %r13,%rdx
xor    %eax,%eax
call   1070 <sre_malloc@plt>
movslq %eax,%r15
mov    %rbx,%rdi
mov    $0x23a,%esi
mov    %r13,%rdx
xor    %eax,%eax
call   1070 <sre_malloc@plt>
cltq
mov    %rax,0x18(%rsp)
mov    %rbx,%rdi
mov    $0x23b,%esi
mov    %r13,%rdx
xor    %eax,%eax
call   1070 <sre_malloc@plt>
xor    %ebx,%ebx
movslq %eax,%r13
test   %ebp,%ebp
jle    147f <QRNAShuffle+0x32f>
mov    0x8(%rsp),%r10d
movabs $0x8000000000006001,%r9
xor    %esi,%esi
xor    %eax,%eax
mov    %rax,0x8(%rsp)
xor    %r8d,%r8d
mov    0x18(%rsp),%r11
jmp    1240 <QRNAShuffle+0xf0>
bt     %rdi,%r9
jae    1284 <QRNAShuffle+0x134>
movslq %ebx,%rbx
mov    %esi,0x0(%r13,%rbx,4)
add    $0x1,%ebx
add    $0x1,%rsi
cmp    %rsi,%r10
je     12f6 <QRNAShuffle+0x1a6>
mov    0x20(%rsp),%rax
movzbl (%rax,%rsi,1),%edx
lea    -0x20(%rdx),%ecx
movzbl %cl,%edi
cmp    $0x3f,%dil
ja     125b <QRNAShuffle+0x10b>
bt     %rdi,%r9
jb     1260 <QRNAShuffle+0x110>
cmp    $0x7e,%dl
jne    128b <QRNAShuffle+0x13b>
mov    0x10(%rsp),%rax
movzbl (%rax,%rsi,1),%ebp
lea    -0x20(%rbp),%eax
cmp    $0x3f,%al
ja     1279 <QRNAShuffle+0x129>
movzbl %al,%eax
bt     %rax,%r9
jb     1233 <QRNAShuffle+0xe3>
cmp    $0x7e,%bpl
je     1233 <QRNAShuffle+0xe3>
cmp    $0x3f,%cl
jbe    1222 <QRNAShuffle+0xd2>
cmp    $0x7e,%dl
je     1228 <QRNAShuffle+0xd8>
jmp    1294 <QRNAShuffle+0x144>
mov    0x10(%rsp),%rax
movzbl (%rax,%rsi,1),%ebp
lea    -0x20(%rbp),%eax
movzbl %al,%edx
cmp    $0x3f,%dl
ja     12a5 <QRNAShuffle+0x155>
bt     %rdx,%r9
jb     12ab <QRNAShuffle+0x15b>
cmp    $0x7e,%bpl
jne    12e6 <QRNAShuffle+0x196>
cmp    $0x3f,%cl
ja     12ba <QRNAShuffle+0x16a>
bt     %rdi,%r9
jb     1228 <QRNAShuffle+0xd8>
cmp    $0x3f,%al
ja     12c4 <QRNAShuffle+0x174>
bt     %rdx,%r9
jb     12ce <QRNAShuffle+0x17e>
cmp    $0x7e,%bpl
jne    1233 <QRNAShuffle+0xe3>
mov    0x8(%rsp),%rax
cltq
mov    %esi,(%r11,%rax,4)
add    $0x1,%eax
mov    %rax,0x8(%rsp)
jmp    1233 <QRNAShuffle+0xe3>
movslq %r8d,%r8
mov    %esi,(%r15,%r8,4)
add    $0x1,%r8d
jmp    1233 <QRNAShuffle+0xe3>
mov    %rbx,0x10(%rsp)
mov    %r13,0x20(%rsp)
cmp    $0x2,%r8d
jl     137a <QRNAShuffle+0x22a>
mov    %r8d,%ebp
nopl   0x0(%rax)
xor    %eax,%eax
call   1060 <sre_random@plt>
mov    %ebp,%ecx
imul   %eax,%ecx
movslq %ecx,%rax
movslq (%r15,%rax,4),%rcx
movzbl (%r12,%rcx,1),%r8d
lea    -0x1(%rbp),%rsi
mov    %esi,%edi
movzbl (%r14,%rcx,1),%ebx
movslq (%r15,%rdi,4),%rdx
movzbl (%r12,%rdx,1),%edx
mov    %dl,(%r12,%rcx,1)
movslq (%r15,%rdi,4),%rcx
movzbl (%r14,%rcx,1),%ecx
movslq (%r15,%rax,4),%rdx
mov    %cl,(%r14,%rdx,1)
mov    (%r15,%rdi,4),%ecx
mov    %ecx,(%r15,%rax,4)
movslq (%r15,%rdi,4),%rcx
mov    %r8b,(%r12,%rcx,1)
movslq (%r15,%rdi,4),%rcx
mov    %bl,(%r14,%rcx,1)
mov    (%r15,%rdi,4),%ecx
cmp    $0x2,%rbp
mov    %rsi,%rbp
mov    %ecx,(%r15,%rax,4)
ja     1310 <QRNAShuffle+0x1c0>
mov    0x8(%rsp),%rax
cmp    $0x2,%eax
mov    0x18(%rsp),%r13
jl     13ff <QRNAShuffle+0x2af>
mov    %eax,%ebp
nopl   0x0(%rax,%rax,1)
xor    %eax,%eax
call   1060 <sre_random@plt>
mov    %ebp,%ecx
imul   %eax,%ecx
movslq %ecx,%rax
movslq 0x0(%r13,%rax,4),%rcx
movzbl (%r12,%rcx,1),%r9d
movzbl (%r14,%rcx,1),%r8d
lea    -0x1(%rbp),%rsi
mov    %esi,%edi
movslq 0x0(%r13,%rdi,4),%rbx
movzbl (%r12,%rbx,1),%ebx
mov    %bl,(%r12,%rcx,1)
movslq 0x0(%r13,%rdi,4),%rbx
movzbl (%r14,%rbx,1),%ebx
movslq 0x0(%r13,%rax,4),%rdx
mov    %bl,(%r14,%rdx,1)
mov    0x0(%r13,%rdi,4),%edx
mov    %edx,0x0(%r13,%rax,4)
movslq 0x0(%r13,%rdi,4),%rax
mov    %r9b,(%r12,%rax,1)
movslq 0x0(%r13,%rdi,4),%rax
mov    %r8b,(%r14,%rax,1)
mov    %ecx,0x0(%r13,%rdi,4)
cmp    $0x2,%rbp
mov    %rsi,%rbp
ja     1390 <QRNAShuffle+0x240>
mov    0x10(%rsp),%rax
cmp    $0x2,%eax
mov    0x20(%rsp),%r13
jl     147f <QRNAShuffle+0x32f>
mov    %eax,%ebp
xor    %eax,%eax
call   1060 <sre_random@plt>
mov    %ebp,%ecx
imul   %eax,%ecx
movslq %ecx,%rax
movslq 0x0(%r13,%rax,4),%rcx
movzbl (%r12,%rcx,1),%r9d
movzbl (%r14,%rcx,1),%r8d
lea    -0x1(%rbp),%rsi
mov    %esi,%edi
movslq 0x0(%r13,%rdi,4),%rbx
movzbl (%r12,%rbx,1),%ebx
mov    %bl,(%r12,%rcx,1)
movslq 0x0(%r13,%rdi,4),%rbx
movzbl (%r14,%rbx,1),%ebx
movslq 0x0(%r13,%rax,4),%rdx
mov    %bl,(%r14,%rdx,1)
mov    0x0(%r13,%rdi,4),%edx
mov    %edx,0x0(%r13,%rax,4)
movslq 0x0(%r13,%rdi,4),%rax
mov    %r9b,(%r12,%rax,1)
movslq 0x0(%r13,%rdi,4),%rax
mov    %r8b,(%r14,%rax,1)
mov    %ecx,0x0(%r13,%rdi,4)
cmp    $0x2,%rbp
mov    %rsi,%rbp
ja     1410 <QRNAShuffle+0x2c0>
mov    %r15,%rdi
call   1030 <free@plt>
mov    0x18(%rsp),%rdi
call   1030 <free@plt>
mov    %r13,%rdi
call   1030 <free@plt>
mov    $0x1,%eax
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [177 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/vinuesa/get_phylomarkers/refs/heads/master/bin/clustal-omega-1.2.4/src/squid/shuffle.c\00"
define i32 @QRNAShuffle(i8* %0, i8* %1, i8* %2, i8* %3) {
%5 = icmp eq i8* %0, %2
br i1 %5, label %8, label %6
6: ; preds = %4
%7 = tail call i8* @strcpy(i8* dereferenceable(1) %0, i8* dereferenceable(1) %2)
br label %8
8: ; preds = %6, %4
%9 = icmp eq i8* %1, %3
br i1 %9, label %12, label %10
10: ; preds = %8
%11 = tail call i8* @strcpy(i8* dereferenceable(1) %1, i8* dereferenceable(1) %3)
br label %12
12: ; preds = %10, %8
%13 = tail call i64 @strlen(i8* dereferenceable(1) %2)
%14 = trunc i64 %13 to i32
%15 = shl i64 %13, 32
%16 = ashr exact i64 %15, 30
%17 = tail call i32 (i8*, i32, i64, ...) bitcast (i32 (...)* @sre_malloc to i32 (i8*, i32, i64, ...)*)(i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str, i64 0, i64 0), i32 569, i64 %16)
%18 = sext i32 %17 to i64
%19 = inttoptr i64 %18 to i32*
%20 = tail call i32 (i8*, i32, i64, ...) bitcast (i32 (...)* @sre_malloc to i32 (i8*, i32, i64, ...)*)(i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str, i64 0, i64 0), i32 570, i64 %16)
%21 = sext i32 %20 to i64
%22 = inttoptr i64 %21 to i32*
%23 = tail call i32 (i8*, i32, i64, ...) bitcast (i32 (...)* @sre_malloc to i32 (i8*, i32, i64, ...)*)(i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str, i64 0, i64 0), i32 571, i64 %16)
%24 = sext i32 %23 to i64
%25 = inttoptr i64 %24 to i32*
%26 = icmp sgt i32 %14, 0
br i1 %26, label %27, label %186
27: ; preds = %12
%28 = and i64 %13, 4294967295
br label %33
29: ; preds = %66
%30 = icmp sgt i32 %67, 1
br i1 %30, label %31, label %72
31: ; preds = %29
%32 = zext i32 %67 to i64
br label %76
33: ; preds = %27, %66
%34 = phi i64 [ 0, %27 ], [ %70, %66 ]
%35 = phi i32 [ 0, %27 ], [ %69, %66 ]
%36 = phi i32 [ 0, %27 ], [ %68, %66 ]
%37 = phi i32 [ 0, %27 ], [ %67, %66 ]
%38 = getelementptr inbounds i8, i8* %2, i64 %34
%39 = load i8, i8* %38
switch i8 %39, label %40 [
i8 32, label %43
i8 46, label %43
i8 95, label %43
i8 45, label %43
i8 126, label %43
]
40: ; preds = %33
%41 = getelementptr inbounds i8, i8* %3, i64 %34
%42 = load i8, i8* %41
br label %47
43: ; preds = %33, %33, %33, %33, %33
%44 = getelementptr inbounds i8, i8* %3, i64 %34
%45 = load i8, i8* %44
switch i8 %45, label %46 [
i8 32, label %66
i8 46, label %66
i8 95, label %66
i8 45, label %66
i8 126, label %66
]
46: ; preds = %43
switch i8 %39, label %47 [
i8 32, label %55
i8 46, label %55
i8 95, label %55
i8 45, label %55
i8 126, label %55
]
47: ; preds = %40, %46
%48 = phi i8 [ %42, %40 ], [ %45, %46 ]
switch i8 %48, label %49 [
i8 32, label %54
i8 46, label %54
i8 95, label %54
i8 45, label %54
i8 126, label %54
]
49: ; preds = %47
%50 = sext i32 %37 to i64
%51 = getelementptr inbounds i32, i32* %19, i64 %50
%52 = trunc i64 %34 to i32
store i32 %52, i32* %51
%53 = add nsw i32 %37, 1
br label %66
54: ; preds = %47, %47, %47, %47, %47
switch i8 %39, label %60 [
i8 32, label %55
i8 46, label %55
i8 95, label %55
i8 45, label %55
]
55: ; preds = %46, %46, %46, %46, %46, %54, %54, %54, %54
%56 = sext i32 %35 to i64
%57 = getelementptr inbounds i32, i32* %25, i64 %56
%58 = trunc i64 %34 to i32
store i32 %58, i32* %57
%59 = add nsw i32 %35, 1
br label %66
60: ; preds = %54
switch i8 %48, label %66 [
i8 32, label %61
i8 46, label %61
i8 95, label %61
i8 45, label %61
i8 126, label %61
]
61: ; preds = %60, %60, %60, %60, %60
%62 = sext i32 %36 to i64
%63 = getelementptr inbounds i32, i32* %22, i64 %62
%64 = trunc i64 %34 to i32
store i32 %64, i32* %63
%65 = add nsw i32 %36, 1
br label %66
66: ; preds = %60, %43, %43, %43, %43, %43, %55, %61, %49
%67 = phi i32 [ %37, %43 ], [ %37, %55 ], [ %37, %61 ], [ %53, %49 ], [ %37, %43 ], [ %37, %43 ], [ %37, %43 ], [ %37, %43 ], [ %37, %60 ]
%68 = phi i32 [ %36, %43 ], [ %36, %55 ], [ %65, %61 ], [ %36, %49 ], [ %36, %43 ], [ %36, %43 ], [ %36, %43 ], [ %36, %43 ], [ %36, %60 ]
%69 = phi i32 [ %35, %43 ], [ %59, %55 ], [ %35, %61 ], [ %35, %49 ], [ %35, %43 ], [ %35, %43 ], [ %35, %43 ], [ %35, %43 ], [ %35, %60 ]
%70 = add nuw nsw i64 %34, 1
%71 = icmp eq i64 %70, %28
br i1 %71, label %29, label %33
72: ; preds = %76, %29
%73 = icmp sgt i32 %68, 1
br i1 %73, label %74, label %112
74: ; preds = %72
%75 = zext i32 %68 to i64
br label %116
76: ; preds = %31, %76
%77 = phi i64 [ %32, %31 ], [ %89, %76 ]
%78 = tail call i32 (...) @sre_random()
%79 = trunc i64 %77 to i32
%80 = mul nsw i32 %78, %79
%81 = sext i32 %80 to i64
%82 = getelementptr inbounds i32, i32* %19, i64 %81
%83 = load i32, i32* %82
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds i8, i8* %0, i64 %84
%86 = load i8, i8* %85
%87 = getelementptr inbounds i8, i8* %1, i64 %84
%88 = load i8, i8* %87
%89 = add nsw i64 %77, -1
%90 = and i64 %89, 4294967295
%91 = getelementptr inbounds i32, i32* %19, i64 %90
%92 = load i32, i32* %91
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds i8, i8* %0, i64 %93
%95 = load i8, i8* %94
store i8 %95, i8* %85
%96 = load i32, i32* %91
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds i8, i8* %1, i64 %97
%99 = load i8, i8* %98
%100 = load i32, i32* %82
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds i8, i8* %1, i64 %101
store i8 %99, i8* %102
%103 = load i32, i32* %91
store i32 %103, i32* %82
%104 = load i32, i32* %91
%105 = sext i32 %104 to i64
%106 = getelementptr inbounds i8, i8* %0, i64 %105
store i8 %86, i8* %106
%107 = load i32, i32* %91
%108 = sext i32 %107 to i64
%109 = getelementptr inbounds i8, i8* %1, i64 %108
store i8 %88, i8* %109
%110 = load i32, i32* %91
store i32 %110, i32* %82
%111 = icmp ugt i64 %77, 2
br i1 %111, label %76, label %72
112: ; preds = %116, %72
%113 = icmp sgt i32 %69, 1
br i1 %113, label %114, label %186
114: ; preds = %112
%115 = zext i32 %69 to i64
br label %151
116: ; preds = %74, %116
%117 = phi i64 [ %75, %74 ], [ %129, %116 ]
%118 = tail call i32 (...) @sre_random()
%119 = trunc i64 %117 to i32
%120 = mul nsw i32 %118, %119
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds i32, i32* %22, i64 %121
%123 = load i32, i32* %122
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds i8, i8* %0, i64 %124
%126 = load i8, i8* %125
%127 = getelementptr inbounds i8, i8* %1, i64 %124
%128 = load i8, i8* %127
%129 = add nsw i64 %117, -1
%130 = and i64 %129, 4294967295
%131 = getelementptr inbounds i32, i32* %22, i64 %130
%132 = load i32, i32* %131
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds i8, i8* %0, i64 %133
%135 = load i8, i8* %134
store i8 %135, i8* %125
%136 = load i32, i32* %131
%137 = sext i32 %136 to i64
%138 = getelementptr inbounds i8, i8* %1, i64 %137
%139 = load i8, i8* %138
%140 = load i32, i32* %122
%141 = sext i32 %140 to i64
%142 = getelementptr inbounds i8, i8* %1, i64 %141
store i8 %139, i8* %142
%143 = load i32, i32* %131
store i32 %143, i32* %122
%144 = load i32, i32* %131
%145 = sext i32 %144 to i64
%146 = getelementptr inbounds i8, i8* %0, i64 %145
store i8 %126, i8* %146
%147 = load i32, i32* %131
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds i8, i8* %1, i64 %148
store i8 %128, i8* %149
store i32 %123, i32* %131
%150 = icmp ugt i64 %117, 2
br i1 %150, label %116, label %112
151: ; preds = %114, %151
%152 = phi i64 [ %115, %114 ], [ %164, %151 ]
%153 = tail call i32 (...) @sre_random()
%154 = trunc i64 %152 to i32
%155 = mul nsw i32 %153, %154
%156 = sext i32 %155 to i64
%157 = getelementptr inbounds i32, i32* %25, i64 %156
%158 = load i32, i32* %157
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds i8, i8* %0, i64 %159
%161 = load i8, i8* %160
%162 = getelementptr inbounds i8, i8* %1, i64 %159
%163 = load i8, i8* %162
%164 = add nsw i64 %152, -1
%165 = and i64 %164, 4294967295
%166 = getelementptr inbounds i32, i32* %25, i64 %165
%167 = load i32, i32* %166
%168 = sext i32 %167 to i64
%169 = getelementptr inbounds i8, i8* %0, i64 %168
%170 = load i8, i8* %169
store i8 %170, i8* %160
%171 = load i32, i32* %166
%172 = sext i32 %171 to i64
%173 = getelementptr inbounds i8, i8* %1, i64 %172
%174 = load i8, i8* %173
%175 = load i32, i32* %157
%176 = sext i32 %175 to i64
%177 = getelementptr inbounds i8, i8* %1, i64 %176
store i8 %174, i8* %177
%178 = load i32, i32* %166
store i32 %178, i32* %157
%179 = load i32, i32* %166
%180 = sext i32 %179 to i64
%181 = getelementptr inbounds i8, i8* %0, i64 %180
store i8 %161, i8* %181
%182 = load i32, i32* %166
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds i8, i8* %1, i64 %183
store i8 %163, i8* %184
store i32 %158, i32* %166
%185 = icmp ugt i64 %152, 2
br i1 %185, label %151, label %186
186: ; preds = %151, %12, %112
%187 = inttoptr i64 %18 to i8*
tail call void @free(i8* %187)
%188 = inttoptr i64 %21 to i8*
tail call void @free(i8* %188)
%189 = inttoptr i64 %24 to i8*
tail call void @free(i8* %189)
ret i32 1
}