#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ cud(int);
int /*<<< orphan*/ cuf(int);
int /*<<< orphan*/ cup(int, int);
int /*<<< orphan*/ cuu(int);
int /*<<< orphan*/ decrc();
int /*<<< orphan*/ decsc();
int /*<<< orphan*/ decstbm(int, int);
int /*<<< orphan*/ ed(int);
int /*<<< orphan*/ el(int /*<<< orphan*/);
int /*<<< orphan*/ holdit();
int /*<<< orphan*/ hts();
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ println(char *);
int /*<<< orphan*/ ri();
int /*<<< orphan*/ rm(char *);
int /*<<< orphan*/ scs(int /*<<< orphan*/, char);
int /*<<< orphan*/ sgr(char *);
int /*<<< orphan*/ sm(char *);
int /*<<< orphan*/ tbc(int);
tst_screen() {
  int i, j, cset, row, col, down, soft, background;
  static char *tststr = "*qx`";
  static char *attr[5] = {";0", ";1", ";4", ";5", ";7"};
  cup(1, 1);
  sm("?7");
  for (col = 1; col <= 160; col++)
    printf("*");
  rm("?7");
  cup(3, 1);
  for (col = 1; col <= 160; col++)
    printf("*");
  sm("?7");
  cup(5, 1);
  println("This should be three identical lines of *'s completely filling");
  println("the top of the screen without any empty lines between.");
  println("(Test of WRAP AROUND mode setting.)");
  holdit();
  ed(2);
  tbc(3);
  cup(1, 1);
  for (col = 1; col <= 78; col += 3) {
    cuf(3);
    hts();
  }
  cup(1, 4);
  for (col = 4; col <= 78; col += 6) {
    tbc(0);
    cuf(6);
  }
  cup(1, 7);
  tbc(1);
  tbc(2);
  cup(1, 1);
  for (col = 1; col <= 78; col += 6)
    printf("\t*");
  cup(2, 2);
  for (col = 2; col <= 78; col += 6)
    printf("     *");
  cup(4, 1);
  println("Test of TAB setting/resetting. These two lines");
  printf("should look the same. ");
  holdit();
  for (background = 0; background <= 1; background++) {
    if (background)
      rm("?5");
    else
      sm("?5");
    sm("?3");
    ed(2);
    cup(1, 1);
    tbc(3);
    for (col = 1; col <= 132; col += 8) {
      cuf(8);
      hts();
    }
    cup(1, 1);
    for (col = 1; col <= 130; col += 10)
      printf("1234567890");
    printf("12");
    for (row = 3; row <= 20; row++) {
      cup(row, row);
      printf("This is 132 column mode, %s background.",
             background ? "dark" : "light");
    }
    holdit();
    rm("?3");
    ed(2);
    cup(1, 1);
    for (col = 1; col <= 80; col += 10)
      printf("1234567890");
    for (row = 3; row <= 20; row++) {
      cup(row, row);
      printf("This is 80 column mode, %s background.",
             background ? "dark" : "light");
    }
    holdit();
  }
  ed(2);
  sm("?6");
  for (soft = -1; soft <= 0; soft++) {
    if (soft)
      sm("?4");
    else
      rm("?4");
    for (row = 12; row >= 1; row -= 11) {
      decstbm(row, 24 - row + 1);
      ed(2);
      for (down = 0; down >= -1; down--) {
        if (down)
          cuu(24);
        else
          cud(24);
        for (i = 1; i <= 30; i++) {
          printf("%s scroll %s region %d Line %d\n", soft ? "Soft" : "Jump",
                 down ? "down" : "up", 2 * (13 - row), i);
          if (down) {
            ri();
            ri();
          }
        }
      }
      holdit();
    }
  }
  ed(2);
  decstbm(23, 24);
  printf(
      "\nOrigin mode test. This line should be at the bottom of the screen.");
  cup(1, 1);
  printf("%s", "This line should be the one above the bottom of the screeen. ");
  holdit();
  ed(2);
  rm("?6");
  cup(24, 1);
  printf("Origin mode test. This line should be at the bottom of the screen.");
  cup(1, 1);
  printf("%s", "This line should be at the top if the screen. ");
  holdit();
  decstbm(1, 24);
  ed(2);
  cup(1, 20);
  printf("Graphic rendition test pattern:");
  cup(4, 1);
  sgr("0");
  printf("vanilla");
  cup(4, 40);
  sgr("0;1");
  printf("bold");
  cup(6, 6);
  sgr(";4");
  printf("underline");
  cup(6, 45);
  sgr(";1");
  sgr("4");
  printf("bold underline");
  cup(8, 1);
  sgr("0;5");
  printf("blink");
  cup(8, 40);
  sgr("0;5;1");
  printf("bold blink");
  cup(10, 6);
  sgr("0;4;5");
  printf("underline blink");
  cup(10, 45);
  sgr("0;1;4;5");
  printf("bold underline blink");
  cup(12, 1);
  sgr("1;4;5;0;7");
  printf("negative");
  cup(12, 40);
  sgr("0;1;7");
  printf("bold negative");
  cup(14, 6);
  sgr("0;4;7");
  printf("underline negative");
  cup(14, 45);
  sgr("0;1;4;7");
  printf("bold underline negative");
  cup(16, 1);
  sgr("1;4;;5;7");
  printf("blink negative");
  cup(16, 40);
  sgr("0;1;5;7");
  printf("bold blink negative");
  cup(18, 6);
  sgr("0;4;5;7");
  printf("underline blink negative");
  cup(18, 45);
  sgr("0;1;4;5;7");
  printf("bold underline blink negative");
  sgr("");
  rm("?5");
  cup(23, 1);
  el(0);
  printf("Dark background. ");
  holdit();
  sm("?5");
  cup(23, 1);
  el(0);
  printf("Light background. ");
  holdit();
  rm("?5");
  ed(2);
  cup(8, 12);
  printf("normal");
  cup(8, 24);
  printf("bold");
  cup(8, 36);
  printf("underscored");
  cup(8, 48);
  printf("blinking");
  cup(8, 60);
  printf("reversed");
  cup(10, 1);
  printf("stars:");
  cup(12, 1);
  printf("line:");
  cup(14, 1);
  printf("x'es:");
  cup(16, 1);
  printf("diamonds:");
  for (cset = 0; cset <= 3; cset++) {
    for (i = 0; i <= 4; i++) {
      cup(10 + 2 * cset, 12 + 12 * i);
      sgr(attr[i]);
      if (cset == 0 || cset == 2)
        scs(0, 'B');
      else
        scs(0, '0');
      for (j = 0; j <= 4; j++) {
        printf("%c", tststr[cset]);
      }
      decsc();
      cup(cset + 1, i + 1);
      sgr("");
      scs(0, 'B');
      printf("A");
      decrc();
      for (j = 0; j <= 4; j++) {
        printf("%c", tststr[cset]);
      }
    }
  }
  sgr("0");
  scs(0, 'B');
  cup(21, 1);
  println("Test of the SAVE/RESTORE CURSOR feature. There should");
  println("be ten characters of each flavour, and a rectangle");
  println("of 5 x 4 A's filling the top left of the screen.");
  holdit();
}


x86 assembly (clang, -O0):
<tst_screen>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
lea    0xdc0(%rip),%rdi
call   10d0 <sm@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0xa0,-0x18(%rbp)
jg     1280 <tst_screen+0x50>
lea    0xe3e(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1257 <tst_screen+0x27>
lea    0xd84(%rip),%rdi
call   1030 <rm@plt>
mov    $0x3,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0xa0,-0x18(%rbp)
jg     12cb <tst_screen+0x9b>
lea    0xdf3(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12a2 <tst_screen+0x72>
lea    0xd39(%rip),%rdi
call   10d0 <sm@plt>
mov    $0x5,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0xd21(%rip),%rdi
call   1060 <println@plt>
lea    0xd54(%rip),%rdi
call   1060 <println@plt>
lea    0xd7f(%rip),%rdi
call   1060 <println@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
mov    $0x3,%edi
call   1140 <tbc@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0x4e,-0x18(%rbp)
jg     1361 <tst_screen+0x131>
mov    $0x3,%edi
call   10e0 <cuf@plt>
mov    $0x0,%al
call   1120 <hts@plt>
mov    -0x18(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x18(%rbp)
jmp    1338 <tst_screen+0x108>
mov    $0x1,%edi
mov    $0x4,%esi
call   1080 <cup@plt>
movl   $0x4,-0x18(%rbp)
cmpl   $0x4e,-0x18(%rbp)
jg     13a0 <tst_screen+0x170>
xor    %edi,%edi
call   1140 <tbc@plt>
mov    $0x6,%edi
call   10e0 <cuf@plt>
mov    -0x18(%rbp),%eax
add    $0x6,%eax
mov    %eax,-0x18(%rbp)
jmp    1377 <tst_screen+0x147>
mov    $0x1,%edi
mov    $0x7,%esi
call   1080 <cup@plt>
mov    $0x1,%edi
call   1140 <tbc@plt>
mov    $0x2,%edi
call   1140 <tbc@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0x4e,-0x18(%rbp)
jg     13fc <tst_screen+0x1cc>
lea    0xcc1(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0x6,%eax
mov    %eax,-0x18(%rbp)
jmp    13d6 <tst_screen+0x1a6>
mov    $0x2,%esi
mov    %esi,%edi
call   1080 <cup@plt>
movl   $0x2,-0x18(%rbp)
cmpl   $0x4e,-0x18(%rbp)
jg     1435 <tst_screen+0x205>
lea    0xc8b(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0x6,%eax
mov    %eax,-0x18(%rbp)
jmp    140f <tst_screen+0x1df>
mov    $0x4,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0xc67(%rip),%rdi
call   1060 <println@plt>
lea    0xc8a(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
movl   $0x0,-0x24(%rbp)
cmpl   $0x1,-0x24(%rbp)
jg     1651 <tst_screen+0x421>
cmpl   $0x0,-0x24(%rbp)
je     1491 <tst_screen+0x261>
lea    0xc71(%rip),%rdi
call   1030 <rm@plt>
jmp    149d <tst_screen+0x26d>
lea    0xc60(%rip),%rdi
call   10d0 <sm@plt>
lea    0xc57(%rip),%rdi
call   10d0 <sm@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
mov    $0x3,%edi
call   1140 <tbc@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0x84,-0x18(%rbp)
jg     14fc <tst_screen+0x2cc>
mov    $0x8,%edi
call   10e0 <cuf@plt>
mov    $0x0,%al
call   1120 <hts@plt>
mov    -0x18(%rbp),%eax
add    $0x8,%eax
mov    %eax,-0x18(%rbp)
jmp    14d0 <tst_screen+0x2a0>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0x82,-0x18(%rbp)
jg     1538 <tst_screen+0x308>
lea    0xbdb(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0xa,%eax
mov    %eax,-0x18(%rbp)
jmp    150f <tst_screen+0x2df>
lea    0xbca(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
movl   $0x3,-0x14(%rbp)
cmpl   $0x14,-0x14(%rbp)
jg     1596 <tst_screen+0x366>
mov    -0x14(%rbp),%edi
mov    -0x14(%rbp),%esi
call   1080 <cup@plt>
mov    -0x24(%rbp),%ecx
lea    0xbcd(%rip),%rsi
lea    0xbc1(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rsi
lea    0xb8b(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    154d <tst_screen+0x31d>
mov    $0x0,%al
call   1130 <holdit@plt>
lea    0xb57(%rip),%rdi
call   1030 <rm@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
movl   $0x1,-0x18(%rbp)
cmpl   $0x50,-0x18(%rbp)
jg     15ec <tst_screen+0x3bc>
lea    0xb27(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x18(%rbp),%eax
add    $0xa,%eax
mov    %eax,-0x18(%rbp)
jmp    15c6 <tst_screen+0x396>
movl   $0x3,-0x14(%rbp)
cmpl   $0x14,-0x14(%rbp)
jg     163c <tst_screen+0x40c>
mov    -0x14(%rbp),%edi
mov    -0x14(%rbp),%esi
call   1080 <cup@plt>
mov    -0x24(%rbp),%ecx
lea    0xb27(%rip),%rsi
lea    0xb1b(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rsi
lea    0xb18(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    15f3 <tst_screen+0x3c3>
mov    $0x0,%al
call   1130 <holdit@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    146c <tst_screen+0x23c>
mov    $0x2,%edi
call   10b0 <ed@plt>
lea    0xb04(%rip),%rdi
call   10d0 <sm@plt>
movl   $0xffffffff,-0x20(%rbp)
cmpl   $0x0,-0x20(%rbp)
jg     17c5 <tst_screen+0x595>
cmpl   $0x0,-0x20(%rbp)
je     1693 <tst_screen+0x463>
lea    0xae0(%rip),%rdi
call   10d0 <sm@plt>
jmp    169f <tst_screen+0x46f>
lea    0xacf(%rip),%rdi
call   1030 <rm@plt>
movl   $0xc,-0x14(%rbp)
cmpl   $0x1,-0x14(%rbp)
jl     17b2 <tst_screen+0x582>
mov    -0x14(%rbp),%edi
mov    $0x18,%esi
sub    -0x14(%rbp),%esi
add    $0x1,%esi
call   10c0 <decstbm@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
movl   $0x0,-0x1c(%rbp)
cmpl   $0xffffffff,-0x1c(%rbp)
jl     179d <tst_screen+0x56d>
cmpl   $0x0,-0x1c(%rbp)
je     16f7 <tst_screen+0x4c7>
mov    $0x18,%edi
call   1150 <cuu@plt>
jmp    1701 <tst_screen+0x4d1>
mov    $0x18,%edi
call   1070 <cud@plt>
movl   $0x1,-0x8(%rbp)
cmpl   $0x1e,-0x8(%rbp)
jg     178a <tst_screen+0x55a>
mov    -0x20(%rbp),%ecx
lea    0xa75(%rip),%rsi
lea    0xa69(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rsi
mov    -0x1c(%rbp),%ecx
lea    0xa67(%rip),%rdx
lea    0xa5b(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rdx
mov    $0xd,%ecx
sub    -0x14(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x8(%rbp),%r8d
lea    0xa14(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
cmpl   $0x0,-0x1c(%rbp)
je     1777 <tst_screen+0x547>
mov    $0x0,%al
call   1040 <ri@plt>
mov    $0x0,%al
call   1040 <ri@plt>
jmp    177c <tst_screen+0x54c>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1708 <tst_screen+0x4d8>
jmp    178f <tst_screen+0x55f>
mov    -0x1c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x1c(%rbp)
jmp    16d4 <tst_screen+0x4a4>
mov    $0x0,%al
call   1130 <holdit@plt>
mov    -0x14(%rbp),%eax
sub    $0xb,%eax
mov    %eax,-0x14(%rbp)
jmp    16a6 <tst_screen+0x476>
jmp    17b7 <tst_screen+0x587>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    166e <tst_screen+0x43e>
mov    $0x2,%edi
call   10b0 <ed@plt>
mov    $0x17,%edi
mov    $0x18,%esi
call   10c0 <decstbm@plt>
lea    0x9b9(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
lea    0x9e3(%rip),%rdi
lea    0x9df(%rip),%rsi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
lea    0x941(%rip),%rdi
call   1030 <rm@plt>
mov    $0x18,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x95f(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1080 <cup@plt>
lea    0x988(%rip),%rdi
lea    0x9c2(%rip),%rsi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
mov    $0x1,%edi
mov    $0x18,%esi
call   10c0 <decstbm@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
mov    $0x1,%edi
mov    $0x14,%esi
call   1080 <cup@plt>
lea    0x9b4(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x4,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x84c(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x9ab(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x4,%edi
mov    $0x28,%esi
call   1080 <cup@plt>
lea    0x996(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x98e(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x6,%esi
mov    %esi,%edi
call   1080 <cup@plt>
lea    0x6fe(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x972(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x6,%edi
mov    $0x2d,%esi
call   1080 <cup@plt>
lea    0x948(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x6ca(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x938(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x8,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x92a(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x92d(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x8,%edi
mov    $0x28,%esi
call   1080 <cup@plt>
lea    0x905(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x8ff(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xa,%edi
mov    $0x6,%esi
call   1080 <cup@plt>
lea    0x8ed(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x8f4(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xa,%edi
mov    $0x2d,%esi
call   1080 <cup@plt>
lea    0x8ca(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x8c6(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xc,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x8be(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x8c7(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xc,%edi
mov    $0x28,%esi
call   1080 <cup@plt>
lea    0x89f(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x899(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xe,%edi
mov    $0x6,%esi
call   1080 <cup@plt>
lea    0x88a(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x891(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xe,%edi
mov    $0x2d,%esi
call   1080 <cup@plt>
lea    0x867(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x863(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x10,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x85e(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x868(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x10,%edi
mov    $0x28,%esi
call   1080 <cup@plt>
lea    0x83e(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x83a(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x12,%edi
mov    $0x6,%esi
call   1080 <cup@plt>
lea    0x831(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x83c(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x12,%edi
mov    $0x2d,%esi
call   1080 <cup@plt>
lea    0x810(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x80e(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
lea    0x646(%rip),%rdi
call   10f0 <sgr@plt>
lea    0x5a7(%rip),%rdi
call   1030 <rm@plt>
mov    $0x17,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
xor    %edi,%edi
call   10a0 <el@plt>
lea    0x7f0(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
lea    0x570(%rip),%rdi
call   10d0 <sm@plt>
mov    $0x17,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
xor    %edi,%edi
call   10a0 <el@plt>
lea    0x7cb(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
lea    0x539(%rip),%rdi
call   1030 <rm@plt>
mov    $0x2,%edi
call   10b0 <ed@plt>
mov    $0x8,%edi
mov    $0xc,%esi
call   1080 <cup@plt>
lea    0x7a4(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x8,%edi
mov    $0x18,%esi
call   1080 <cup@plt>
lea    0x67d(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x8,%edi
mov    $0x24,%esi
call   1080 <cup@plt>
lea    0x771(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x8,%edi
mov    $0x30,%esi
call   1080 <cup@plt>
lea    0x760(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x8,%edi
mov    $0x3c,%esi
call   1080 <cup@plt>
lea    0x74c(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xa,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x738(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xc,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x722(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0xe,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x70b(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x10,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x6f4(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
movl   $0x0,-0x10(%rbp)
cmpl   $0x3,-0x10(%rbp)
jg     1e32 <tst_screen+0xc02>
movl   $0x0,-0x8(%rbp)
cmpl   $0x4,-0x8(%rbp)
jg     1e1f <tst_screen+0xbef>
mov    -0x10(%rbp),%edi
shl    $0x1,%edi
add    $0xa,%edi
imul   $0xc,-0x8(%rbp),%esi
add    $0xc,%esi
call   1080 <cup@plt>
movslq -0x8(%rbp),%rcx
lea    0x23bb(%rip),%rax
mov    (%rax,%rcx,8),%rdi
call   10f0 <sgr@plt>
cmpl   $0x0,-0x10(%rbp)
je     1d32 <tst_screen+0xb02>
cmpl   $0x2,-0x10(%rbp)
jne    1d43 <tst_screen+0xb13>
xor    %edi,%edi
mov    $0x42,%esi
call   1100 <scs@plt>
jmp    1d4f <tst_screen+0xb1f>
xor    %edi,%edi
mov    $0x30,%esi
call   1100 <scs@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jg     1d8b <tst_screen+0xb5b>
mov    0x2359(%rip),%rax
movslq -0x10(%rbp),%rcx
movsbl (%rax,%rcx,1),%esi
lea    0x654(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1d56 <tst_screen+0xb26>
mov    $0x0,%al
call   1110 <decsc@plt>
mov    -0x10(%rbp),%edi
add    $0x1,%edi
mov    -0x8(%rbp),%esi
add    $0x1,%esi
call   1080 <cup@plt>
lea    0x3e1(%rip),%rdi
call   10f0 <sgr@plt>
xor    %edi,%edi
mov    $0x42,%esi
call   1100 <scs@plt>
lea    0x60b(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    $0x0,%al
call   1090 <decrc@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0x4,-0xc(%rbp)
jg     1e0c <tst_screen+0xbdc>
mov    0x22d8(%rip),%rax
movslq -0x10(%rbp),%rcx
movsbl (%rax,%rcx,1),%esi
lea    0x5d3(%rip),%rdi
mov    $0x0,%al
call   1050 <printf@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1dd7 <tst_screen+0xba7>
jmp    1e11 <tst_screen+0xbe1>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1ceb <tst_screen+0xabb>
jmp    1e24 <tst_screen+0xbf4>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1cda <tst_screen+0xaaa>
lea    0x2ce(%rip),%rdi
call   10f0 <sgr@plt>
xor    %edi,%edi
mov    $0x42,%esi
call   1100 <scs@plt>
mov    $0x15,%edi
mov    $0x1,%esi
call   1080 <cup@plt>
lea    0x56f(%rip),%rdi
call   1060 <println@plt>
lea    0x599(%rip),%rdi
call   1060 <println@plt>
lea    0x5c0(%rip),%rdi
call   1060 <println@plt>
mov    $0x0,%al
call   1130 <holdit@plt>
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<tst_screen>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x1da7(%rip),%rdi
call   10e0 <sm@plt>
mov    $0xa0,%ebx
xchg   %ax,%ax
mov    $0x2a,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebx
jne    1270 <tst_screen+0x30>
lea    0x1d85(%rip),%rdi
call   1040 <rm@plt>
mov    $0x3,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
mov    $0xa0,%ebx
nop
mov    $0x2a,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebx
jne    12a0 <tst_screen+0x60>
lea    0x1d55(%rip),%rdi
call   10e0 <sm@plt>
mov    $0x5,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x1d3d(%rip),%rdi
call   1070 <println@plt>
lea    0x1d70(%rip),%rdi
call   1070 <println@plt>
lea    0x1d9b(%rip),%rdi
call   1070 <println@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x3,%edi
call   1150 <tbc@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x3,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x1,%edi
mov    $0x4,%esi
call   1090 <cup@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
xor    %edi,%edi
call   1150 <tbc@plt>
mov    $0x6,%edi
call   10f0 <cuf@plt>
mov    $0x1,%edi
mov    $0x7,%esi
call   1090 <cup@plt>
mov    $0x1,%edi
call   1150 <tbc@plt>
mov    $0x2,%edi
call   1150 <tbc@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x1ab1(%rip),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x2,%edi
mov    $0x2,%esi
call   1090 <cup@plt>
lea    0x1a1c(%rip),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x4,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x198b(%rip),%rdi
call   1070 <println@plt>
lea    0x19ae(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    $0x1,%r12b
lea    0x19b0(%rip),%r15
lea    0x19ac(%rip),%rbx
lea    0x19b3(%rip),%r13
lea    0x19df(%rip),%rbp
jmp    1de2 <tst_screen+0xba2>
cs nopw 0x0(%rax,%rax,1)
nop
call   10e0 <sm@plt>
lea    0x19bd(%rip),%r14
mov    %r15,%rdi
call   10e0 <sm@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
mov    $0x3,%edi
call   1150 <tbc@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x8,%edi
call   10f0 <cuf@plt>
xor    %eax,%eax
call   1130 <hts@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x17a9(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x3,%edi
mov    $0x3,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x4,%edi
mov    $0x4,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x5,%edi
mov    $0x5,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x6,%edi
mov    $0x6,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x7,%edi
mov    $0x7,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x8,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x9,%edi
mov    $0x9,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xa,%edi
mov    $0xa,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xb,%edi
mov    $0xb,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xc,%edi
mov    $0xc,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xd,%edi
mov    $0xd,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xe,%edi
mov    $0xe,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xf,%edi
mov    $0xf,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x10,%edi
mov    $0x10,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x11,%edi
mov    $0x11,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x12,%edi
mov    $0x12,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x13,%edi
mov    $0x13,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x14,%edi
mov    $0x14,%esi
call   1090 <cup@plt>
mov    %r13,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    %r15,%rdi
call   1040 <rm@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x3,%edi
mov    $0x3,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x4,%edi
mov    $0x4,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x5,%edi
mov    $0x5,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x6,%edi
mov    $0x6,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x7,%edi
mov    $0x7,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x8,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x9,%edi
mov    $0x9,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xa,%edi
mov    $0xa,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xb,%edi
mov    $0xb,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xc,%edi
mov    $0xc,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xd,%edi
mov    $0xd,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xe,%edi
mov    $0xe,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xf,%edi
mov    $0xf,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x10,%edi
mov    $0x10,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x11,%edi
mov    $0x11,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x12,%edi
mov    $0x12,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x13,%edi
mov    $0x13,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x14,%edi
mov    $0x14,%esi
call   1090 <cup@plt>
mov    %rbp,%rdi
mov    %r14,%rsi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
test   $0x1,%r12b
mov    $0x0,%r12d
je     1e04 <tst_screen+0xbc4>
lea    0x130f(%rip),%rdi
test   $0x1,%r12b
jne    1770 <tst_screen+0x530>
call   1040 <rm@plt>
lea    0x1335(%rip),%r14
jmp    177c <tst_screen+0x53c>
mov    $0x2,%edi
call   10c0 <ed@plt>
lea    0x1351(%rip),%rdi
call   10e0 <sm@plt>
mov    $0xffffffff,%r14d
lea    0x1345(%rip),%r13
lea    0x136d(%rip),%r15
lea    0x1361(%rip),%r12
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x1322(%rip),%rdi
test   %r14d,%r14d
je     1e60 <tst_screen+0xc20>
call   10e0 <sm@plt>
lea    0x1334(%rip),%rbx
jmp    1e6c <tst_screen+0xc2c>
nopw   0x0(%rax,%rax,1)
call   1040 <rm@plt>
lea    0x1325(%rip),%rbx
mov    $0xc,%edi
mov    $0xd,%esi
call   10d0 <decstbm@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x18,%edi
call   1080 <cud@plt>
mov    $0x1,%ebp
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x1,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x2,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x3,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x4,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x5,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x6,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x7,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x8,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x9,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0xa,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0xb,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0xc,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0xd,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0xe,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0xf,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x10,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x11,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x12,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x13,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x14,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x15,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x16,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x17,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x18,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x19,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x1a,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x1b,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x1c,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x1d,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x2,%ecx
mov    $0x1e,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x18,%edi
call   1160 <cuu@plt>
nopl   0x0(%rax,%rax,1)
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r12,%rdx
mov    $0x2,%ecx
mov    %ebp,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1050 <ri@plt>
xor    %eax,%eax
call   1050 <ri@plt>
add    $0x1,%ebp
cmp    $0x1f,%ebp
jne    21d0 <tst_screen+0xf90>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    $0x1,%ebp
mov    $0x1,%edi
mov    $0x18,%esi
call   10d0 <decstbm@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x18,%edi
call   1080 <cud@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x1,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x2,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x3,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x4,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x5,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x6,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x7,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x8,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x9,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0xa,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0xb,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0xc,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0xd,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0xe,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0xf,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x10,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x11,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x12,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x13,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x14,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x15,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x16,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x17,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x18,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x19,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x1a,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x1b,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x1c,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x1d,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r15,%rdx
mov    $0x18,%ecx
mov    $0x1e,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x18,%edi
call   1160 <cuu@plt>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r12,%rdx
mov    $0x18,%ecx
mov    %ebp,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1050 <ri@plt>
xor    %eax,%eax
call   1050 <ri@plt>
add    $0x1,%ebp
cmp    $0x1f,%ebp
jne    2570 <tst_screen+0x1330>
xor    %eax,%eax
call   1140 <holdit@plt>
lea    0x1(%r14),%eax
test   %r14d,%r14d
mov    %eax,%r14d
jne    1e40 <tst_screen+0xc00>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x17,%edi
mov    $0x18,%esi
call   10d0 <decstbm@plt>
lea    0xbc9(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xbf0(%rip),%rbx
lea    0xbec(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
lea    0xb4b(%rip),%rdi
call   1040 <rm@plt>
mov    $0x18,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xb69(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xbd0(%rip),%rsi
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    $0x1,%edi
mov    $0x18,%esi
call   10d0 <decstbm@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x1,%edi
mov    $0x14,%esi
call   1090 <cup@plt>
lea    0xbbf(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x4,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xa57(%rip),%rdi
call   1100 <sgr@plt>
lea    0xbb6(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x4,%edi
mov    $0x28,%esi
call   1090 <cup@plt>
lea    0xba1(%rip),%rdi
call   1100 <sgr@plt>
lea    0xb99(%rip),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x6,%edi
mov    $0x6,%esi
call   1090 <cup@plt>
lea    0x903(%rip),%rdi
call   1100 <sgr@plt>
lea    0xb77(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x6,%edi
mov    $0x2d,%esi
call   1090 <cup@plt>
lea    0xb4d(%rip),%rdi
call   1100 <sgr@plt>
lea    0x8cf(%rip),%rdi
call   1100 <sgr@plt>
lea    0xb3d(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xb2f(%rip),%rdi
call   1100 <sgr@plt>
lea    0xb32(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x28,%esi
call   1090 <cup@plt>
lea    0xb0a(%rip),%rdi
call   1100 <sgr@plt>
lea    0xb04(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xa,%edi
mov    $0x6,%esi
call   1090 <cup@plt>
lea    0xaf2(%rip),%rdi
call   1100 <sgr@plt>
lea    0xaf9(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xa,%edi
mov    $0x2d,%esi
call   1090 <cup@plt>
lea    0xacf(%rip),%rdi
call   1100 <sgr@plt>
lea    0xacb(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xc,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xac3(%rip),%rdi
call   1100 <sgr@plt>
lea    0xacc(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xc,%edi
mov    $0x28,%esi
call   1090 <cup@plt>
lea    0xaa4(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa9e(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xe,%edi
mov    $0x6,%esi
call   1090 <cup@plt>
lea    0xa8f(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa96(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xe,%edi
mov    $0x2d,%esi
call   1090 <cup@plt>
lea    0xa6c(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa68(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x10,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0xa63(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa6d(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x10,%edi
mov    $0x28,%esi
call   1090 <cup@plt>
lea    0xa43(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa3f(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x12,%edi
mov    $0x6,%esi
call   1090 <cup@plt>
lea    0xa36(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa41(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x12,%edi
mov    $0x2d,%esi
call   1090 <cup@plt>
lea    0xa15(%rip),%rdi
call   1100 <sgr@plt>
lea    0xa13(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x84b(%rip),%rdi
call   1100 <sgr@plt>
lea    0x7ac(%rip),%rbp
mov    %rbp,%rdi
call   1040 <rm@plt>
mov    $0x17,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
xor    %edi,%edi
call   10b0 <el@plt>
lea    0x9f2(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    %rbp,%rdi
call   10e0 <sm@plt>
mov    $0x17,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
xor    %edi,%edi
call   10b0 <el@plt>
lea    0x9d1(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %eax,%eax
call   1140 <holdit@plt>
mov    %rbp,%rdi
call   1040 <rm@plt>
mov    $0x2,%edi
call   10c0 <ed@plt>
mov    $0x8,%edi
mov    $0xc,%esi
call   1090 <cup@plt>
lea    0x9ae(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x18,%esi
call   1090 <cup@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x24,%esi
call   1090 <cup@plt>
lea    0x97f(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x30,%esi
call   1090 <cup@plt>
lea    0x96e(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x8,%edi
mov    $0x3c,%esi
call   1090 <cup@plt>
lea    0x95a(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xa,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x946(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xc,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x930(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0xe,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x919(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x10,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x902(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
lea    0x998(%rip),%r14
lea    0x52d(%rip),%r15
xor    %eax,%eax
mov    %rax,(%rsp)
nopl   0x0(%rax)
mov    (%rsp),%rcx
lea    0x1(%rcx),%rax
mov    %rax,0x10(%rsp)
test   $0x7ffffffd,%ecx
mov    $0x30,%edx
mov    $0x42,%eax
cmove  %eax,%edx
mov    %edx,0xc(%rsp)
lea    0xa(%rcx,%rcx,1),%eax
mov    %eax,0x8(%rsp)
mov    $0x1,%r13d
mov    $0xc,%ebp
xor    %r12d,%r12d
nopw   0x0(%rax,%rax,1)
mov    0x8(%rsp),%edi
mov    %ebp,%esi
call   1090 <cup@plt>
movslq (%r12,%r14,1),%rdi
add    %r14,%rdi
call   1100 <sgr@plt>
movzbl 0xc(%rsp),%esi
xor    %edi,%edi
call   1110 <scs@plt>
mov    (%rsp),%rax
movsbl (%rax,%r15,1),%ebx
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
xor    %eax,%eax
call   1120 <decsc@plt>
mov    0x10(%rsp),%rdi
mov    %r13d,%esi
call   1090 <cup@plt>
lea    0x601(%rip),%rdi
call   1100 <sgr@plt>
xor    %edi,%edi
mov    $0x42,%esi
call   1110 <scs@plt>
mov    $0x41,%edi
call   1030 <putchar@plt>
xor    %eax,%eax
call   10a0 <decrc@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
mov    %ebx,%edi
call   1030 <putchar@plt>
add    $0x4,%r12
add    $0xc,%ebp
add    $0x1,%r13d
cmp    $0x14,%r12
jne    2b20 <tst_screen+0x18e0>
mov    0x10(%rsp),%rax
mov    %rax,(%rsp)
cmp    $0x4,%rax
jne    2ae0 <tst_screen+0x18a0>
lea    0x509(%rip),%rdi
call   1100 <sgr@plt>
xor    %edi,%edi
mov    $0x42,%esi
call   1110 <scs@plt>
mov    $0x15,%edi
mov    $0x1,%esi
call   1090 <cup@plt>
lea    0x7a5(%rip),%rdi
call   1070 <println@plt>
lea    0x7cf(%rip),%rdi
call   1070 <println@plt>
lea    0x7f6(%rip),%rdi
call   1070 <println@plt>
xor    %eax,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1140 <holdit@plt>

LLVM IR (-O0):
@tst_screen.tststr = internal global i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i32 0, i32 0)
@.str = [5 x i8] c"*qx`\00"
@tst_screen.attr = internal global [5 x i8*] [i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i32 0, i32 0)]
@.str.1 = [3 x i8] c";0\00"
@.str.2 = [3 x i8] c";1\00"
@.str.3 = [3 x i8] c";4\00"
@.str.4 = [3 x i8] c";5\00"
@.str.5 = [3 x i8] c";7\00"
@.str.6 = [3 x i8] c"?7\00"
@.str.7 = [2 x i8] c"*\00"
@.str.8 = [63 x i8] c"This should be three identical lines of *'s completely filling\00"
@.str.9 = [55 x i8] c"the top of the screen without any empty lines between.\00"
@.str.10 = [36 x i8] c"(Test of WRAP AROUND mode setting.)\00"
@.str.11 = [3 x i8] c"\09*\00"
@.str.12 = [7 x i8] c" *\00"
@.str.13 = [47 x i8] c"Test of TAB setting/resetting. These two lines\00"
@.str.14 = [23 x i8] c"should look the same. \00"
@.str.15 = [3 x i8] c"?5\00"
@.str.16 = [3 x i8] c"?3\00"
@.str.17 = [11 x i8] c"1234567890\00"
@.str.18 = [3 x i8] c"12\00"
@.str.19 = [40 x i8] c"This is 132 column mode, %s background.\00"
@.str.20 = [5 x i8] c"dark\00"
@.str.21 = [6 x i8] c"light\00"
@.str.22 = [39 x i8] c"This is 80 column mode, %s background.\00"
@.str.23 = [3 x i8] c"?6\00"
@.str.24 = [3 x i8] c"?4\00"
@.str.25 = [32 x i8] c"%s scroll %s region %d Line %d\0A\00"
@.str.26 = [5 x i8] c"Soft\00"
@.str.27 = [5 x i8] c"Jump\00"
@.str.28 = [5 x i8] c"down\00"
@.str.29 = [3 x i8] c"up\00"
@.str.30 = [68 x i8] c"\0AOrigin mode test. This line should be at the bottom of the screen.\00"
@.str.31 = [3 x i8] c"%s\00"
@.str.32 = [62 x i8] c"This line should be the one above the bottom of the screeen. \00"
@.str.33 = [67 x i8] c"Origin mode test. This line should be at the bottom of the screen.\00"
@.str.34 = [47 x i8] c"This line should be at the top if the screen. \00"
@.str.35 = [32 x i8] c"Graphic rendition test pattern:\00"
@.str.36 = [2 x i8] c"0\00"
@.str.37 = [8 x i8] c"vanilla\00"
@.str.38 = [4 x i8] c"0;1\00"
@.str.39 = [5 x i8] c"bold\00"
@.str.40 = [10 x i8] c"underline\00"
@.str.41 = [2 x i8] c"4\00"
@.str.42 = [15 x i8] c"bold underline\00"
@.str.43 = [4 x i8] c"0;5\00"
@.str.44 = [6 x i8] c"blink\00"
@.str.45 = [6 x i8] c"0;5;1\00"
@.str.46 = [11 x i8] c"bold blink\00"
@.str.47 = [6 x i8] c"0;4;5\00"
@.str.48 = [16 x i8] c"underline blink\00"
@.str.49 = [8 x i8] c"0;1;4;5\00"
@.str.50 = [21 x i8] c"bold underline blink\00"
@.str.51 = [10 x i8] c"1;4;5;0;7\00"
@.str.52 = [9 x i8] c"negative\00"
@.str.53 = [6 x i8] c"0;1;7\00"
@.str.54 = [14 x i8] c"bold negative\00"
@.str.55 = [6 x i8] c"0;4;7\00"
@.str.56 = [19 x i8] c"underline negative\00"
@.str.57 = [8 x i8] c"0;1;4;7\00"
@.str.58 = [24 x i8] c"bold underline negative\00"
@.str.59 = [9 x i8] c"1;4;;5;7\00"
@.str.60 = [15 x i8] c"blink negative\00"
@.str.61 = [8 x i8] c"0;1;5;7\00"
@.str.62 = [20 x i8] c"bold blink negative\00"
@.str.63 = [8 x i8] c"0;4;5;7\00"
@.str.64 = [25 x i8] c"underline blink negative\00"
@.str.65 = [10 x i8] c"0;1;4;5;7\00"
@.str.66 = [30 x i8] c"bold underline blink negative\00"
@.str.67 = [1 x i8] zeroinitializer
@.str.68 = [18 x i8] c"Dark background. \00"
@.str.69 = [19 x i8] c"Light background. \00"
@.str.70 = [7 x i8] c"normal\00"
@.str.71 = [12 x i8] c"underscored\00"
@.str.72 = [9 x i8] c"blinking\00"
@.str.73 = [9 x i8] c"reversed\00"
@.str.74 = [7 x i8] c"stars:\00"
@.str.75 = [6 x i8] c"line:\00"
@.str.76 = [6 x i8] c"x'es:\00"
@.str.77 = [10 x i8] c"diamonds:\00"
@.str.78 = [3 x i8] c"%c\00"
@.str.79 = [2 x i8] c"A\00"
@.str.80 = [54 x i8] c"Test of the SAVE/RESTORE CURSOR feature. There should\00"
@.str.81 = [51 x i8] c"be ten characters of each flavour, and a rectangle\00"
@.str.82 = [49 x i8] c"of 5 x 4 A's filling the top left of the screen.\00"
define i32 @tst_screen() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = call i32 @cup(i32 1, i32 1)
%11 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
store i32 1, i32* %6
br label %12
12: ; preds = %17, %0
%13 = load i32, i32* %6
%14 = icmp sle i32 %13, 160
br i1 %14, label %15, label %20
15: ; preds = %12
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
br label %17
17: ; preds = %15
%18 = load i32, i32* %6
%19 = add nsw i32 %18, 1
store i32 %19, i32* %6
br label %12
20: ; preds = %12
%21 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%22 = call i32 @cup(i32 3, i32 1)
store i32 1, i32* %6
br label %23
23: ; preds = %28, %20
%24 = load i32, i32* %6
%25 = icmp sle i32 %24, 160
br i1 %25, label %26, label %31
26: ; preds = %23
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
br label %28
28: ; preds = %26
%29 = load i32, i32* %6
%30 = add nsw i32 %29, 1
store i32 %30, i32* %6
br label %23
31: ; preds = %23
%32 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%33 = call i32 @cup(i32 5, i32 1)
%34 = call i32 @println(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.8, i64 0, i64 0))
%35 = call i32 @println(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0))
%36 = call i32 @println(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.10, i64 0, i64 0))
%37 = call i32 (...) @holdit()
%38 = call i32 @ed(i32 2)
%39 = call i32 @tbc(i32 3)
%40 = call i32 @cup(i32 1, i32 1)
store i32 1, i32* %6
br label %41
41: ; preds = %47, %31
%42 = load i32, i32* %6
%43 = icmp sle i32 %42, 78
br i1 %43, label %44, label %50
44: ; preds = %41
%45 = call i32 @cuf(i32 3)
%46 = call i32 (...) @hts()
br label %47
47: ; preds = %44
%48 = load i32, i32* %6
%49 = add nsw i32 %48, 3
store i32 %49, i32* %6
br label %41
50: ; preds = %41
%51 = call i32 @cup(i32 1, i32 4)
store i32 4, i32* %6
br label %52
52: ; preds = %58, %50
%53 = load i32, i32* %6
%54 = icmp sle i32 %53, 78
br i1 %54, label %55, label %61
55: ; preds = %52
%56 = call i32 @tbc(i32 0)
%57 = call i32 @cuf(i32 6)
br label %58
58: ; preds = %55
%59 = load i32, i32* %6
%60 = add nsw i32 %59, 6
store i32 %60, i32* %6
br label %52
61: ; preds = %52
%62 = call i32 @cup(i32 1, i32 7)
%63 = call i32 @tbc(i32 1)
%64 = call i32 @tbc(i32 2)
%65 = call i32 @cup(i32 1, i32 1)
store i32 1, i32* %6
br label %66
66: ; preds = %71, %61
%67 = load i32, i32* %6
%68 = icmp sle i32 %67, 78
br i1 %68, label %69, label %74
69: ; preds = %66
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
br label %71
71: ; preds = %69
%72 = load i32, i32* %6
%73 = add nsw i32 %72, 6
store i32 %73, i32* %6
br label %66
74: ; preds = %66
%75 = call i32 @cup(i32 2, i32 2)
store i32 2, i32* %6
br label %76
76: ; preds = %81, %74
%77 = load i32, i32* %6
%78 = icmp sle i32 %77, 78
br i1 %78, label %79, label %84
79: ; preds = %76
%80 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %81
81: ; preds = %79
%82 = load i32, i32* %6
%83 = add nsw i32 %82, 6
store i32 %83, i32* %6
br label %76
84: ; preds = %76
%85 = call i32 @cup(i32 4, i32 1)
%86 = call i32 @println(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.13, i64 0, i64 0))
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.14, i64 0, i64 0))
%88 = call i32 (...) @holdit()
store i32 0, i32* %9
br label %89
89: ; preds = %171, %84
%90 = load i32, i32* %9
%91 = icmp sle i32 %90, 1
br i1 %91, label %92, label %174
92: ; preds = %89
%93 = load i32, i32* %9
%94 = icmp ne i32 %93, 0
br i1 %94, label %95, label %97
95: ; preds = %92
%96 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
br label %99
97: ; preds = %92
%98 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
br label %99
99: ; preds = %97, %95
%100 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
%101 = call i32 @ed(i32 2)
%102 = call i32 @cup(i32 1, i32 1)
%103 = call i32 @tbc(i32 3)
store i32 1, i32* %6
br label %104
104: ; preds = %110, %99
%105 = load i32, i32* %6
%106 = icmp sle i32 %105, 132
br i1 %106, label %107, label %113
107: ; preds = %104
%108 = call i32 @cuf(i32 8)
%109 = call i32 (...) @hts()
br label %110
110: ; preds = %107
%111 = load i32, i32* %6
%112 = add nsw i32 %111, 8
store i32 %112, i32* %6
br label %104
113: ; preds = %104
%114 = call i32 @cup(i32 1, i32 1)
store i32 1, i32* %6
br label %115
115: ; preds = %120, %113
%116 = load i32, i32* %6
%117 = icmp sle i32 %116, 130
br i1 %117, label %118, label %123
118: ; preds = %115
%119 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
br label %120
120: ; preds = %118
%121 = load i32, i32* %6
%122 = add nsw i32 %121, 10
store i32 %122, i32* %6
br label %115
123: ; preds = %115
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.18, i64 0, i64 0))
store i32 3, i32* %5
br label %125
125: ; preds = %137, %123
%126 = load i32, i32* %5
%127 = icmp sle i32 %126, 20
br i1 %127, label %128, label %140
128: ; preds = %125
%129 = load i32, i32* %5
%130 = load i32, i32* %5
%131 = call i32 @cup(i32 %129, i32 %130)
%132 = load i32, i32* %9
%133 = icmp ne i32 %132, 0
%134 = zext i1 %133 to i64
%135 = select i1 %133, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0)
%136 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %135)
br label %137
137: ; preds = %128
%138 = load i32, i32* %5
%139 = add nsw i32 %138, 1
store i32 %139, i32* %5
br label %125
140: ; preds = %125
%141 = call i32 (...) @holdit()
%142 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
%143 = call i32 @ed(i32 2)
%144 = call i32 @cup(i32 1, i32 1)
store i32 1, i32* %6
br label %145
145: ; preds = %150, %140
%146 = load i32, i32* %6
%147 = icmp sle i32 %146, 80
br i1 %147, label %148, label %153
148: ; preds = %145
%149 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
br label %150
150: ; preds = %148
%151 = load i32, i32* %6
%152 = add nsw i32 %151, 10
store i32 %152, i32* %6
br label %145
153: ; preds = %145
store i32 3, i32* %5
br label %154
154: ; preds = %166, %153
%155 = load i32, i32* %5
%156 = icmp sle i32 %155, 20
br i1 %156, label %157, label %169
157: ; preds = %154
%158 = load i32, i32* %5
%159 = load i32, i32* %5
%160 = call i32 @cup(i32 %158, i32 %159)
%161 = load i32, i32* %9
%162 = icmp ne i32 %161, 0
%163 = zext i1 %162 to i64
%164 = select i1 %162, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0)
%165 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %164)
br label %166
166: ; preds = %157
%167 = load i32, i32* %5
%168 = add nsw i32 %167, 1
store i32 %168, i32* %5
br label %154
169: ; preds = %154
%170 = call i32 (...) @holdit()
br label %171
171: ; preds = %169
%172 = load i32, i32* %9
%173 = add nsw i32 %172, 1
store i32 %173, i32* %9
br label %89
174: ; preds = %89
%175 = call i32 @ed(i32 2)
%176 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i64 0, i64 0))
store i32 -1, i32* %8
br label %177
177: ; preds = %245, %174
%178 = load i32, i32* %8
%179 = icmp sle i32 %178, 0
br i1 %179, label %180, label %248
180: ; preds = %177
%181 = load i32, i32* %8
%182 = icmp ne i32 %181, 0
br i1 %182, label %183, label %185
183: ; preds = %180
%184 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
br label %187
185: ; preds = %180
%186 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
br label %187
187: ; preds = %185, %183
store i32 12, i32* %5
br label %188
188: ; preds = %241, %187
%189 = load i32, i32* %5
%190 = icmp sge i32 %189, 1
br i1 %190, label %191, label %244
191: ; preds = %188
%192 = load i32, i32* %5
%193 = load i32, i32* %5
%194 = sub nsw i32 24, %193
%195 = add nsw i32 %194, 1
%196 = call i32 @decstbm(i32 %192, i32 %195)
%197 = call i32 @ed(i32 2)
store i32 0, i32* %7
br label %198
198: ; preds = %236, %191
%199 = load i32, i32* %7
%200 = icmp sge i32 %199, -1
br i1 %200, label %201, label %239
201: ; preds = %198
%202 = load i32, i32* %7
%203 = icmp ne i32 %202, 0
br i1 %203, label %204, label %206
204: ; preds = %201
%205 = call i32 @cuu(i32 24)
br label %208
206: ; preds = %201
%207 = call i32 @cud(i32 24)
br label %208
208: ; preds = %206, %204
store i32 1, i32* %2
br label %209
209: ; preds = %232, %208
%210 = load i32, i32* %2
%211 = icmp sle i32 %210, 30
br i1 %211, label %212, label %235
212: ; preds = %209
%213 = load i32, i32* %8
%214 = icmp ne i32 %213, 0
%215 = zext i1 %214 to i64
%216 = select i1 %214, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.27, i64 0, i64 0)
%217 = load i32, i32* %7
%218 = icmp ne i32 %217, 0
%219 = zext i1 %218 to i64
%220 = select i1 %218, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0)
%221 = load i32, i32* %5
%222 = sub nsw i32 13, %221
%223 = mul nsw i32 2, %222
%224 = load i32, i32* %2
%225 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %216, i8* %220, i32 %223, i32 %224)
%226 = load i32, i32* %7
%227 = icmp ne i32 %226, 0
br i1 %227, label %228, label %231
228: ; preds = %212
%229 = call i32 (...) @ri()
%230 = call i32 (...) @ri()
br label %231
231: ; preds = %228, %212
br label %232
232: ; preds = %231
%233 = load i32, i32* %2
%234 = add nsw i32 %233, 1
store i32 %234, i32* %2
br label %209
235: ; preds = %209
br label %236
236: ; preds = %235
%237 = load i32, i32* %7
%238 = add nsw i32 %237, -1
store i32 %238, i32* %7
br label %198
239: ; preds = %198
%240 = call i32 (...) @holdit()
br label %241
241: ; preds = %239
%242 = load i32, i32* %5
%243 = sub nsw i32 %242, 11
store i32 %243, i32* %5
br label %188
244: ; preds = %188
br label %245
245: ; preds = %244
%246 = load i32, i32* %8
%247 = add nsw i32 %246, 1
store i32 %247, i32* %8
br label %177
248: ; preds = %177
%249 = call i32 @ed(i32 2)
%250 = call i32 @decstbm(i32 23, i32 24)
%251 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.30, i64 0, i64 0))
%252 = call i32 @cup(i32 1, i32 1)
%253 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.32, i64 0, i64 0))
%254 = call i32 (...) @holdit()
%255 = call i32 @ed(i32 2)
%256 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i64 0, i64 0))
%257 = call i32 @cup(i32 24, i32 1)
%258 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.33, i64 0, i64 0))
%259 = call i32 @cup(i32 1, i32 1)
%260 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.34, i64 0, i64 0))
%261 = call i32 (...) @holdit()
%262 = call i32 @decstbm(i32 1, i32 24)
%263 = call i32 @ed(i32 2)
%264 = call i32 @cup(i32 1, i32 20)
%265 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.35, i64 0, i64 0))
%266 = call i32 @cup(i32 4, i32 1)
%267 = call i32 @sgr(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.36, i64 0, i64 0))
%268 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.37, i64 0, i64 0))
%269 = call i32 @cup(i32 4, i32 40)
%270 = call i32 @sgr(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%271 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0))
%272 = call i32 @cup(i32 6, i32 6)
%273 = call i32 @sgr(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0))
%274 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.40, i64 0, i64 0))
%275 = call i32 @cup(i32 6, i32 45)
%276 = call i32 @sgr(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%277 = call i32 @sgr(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.41, i64 0, i64 0))
%278 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.42, i64 0, i64 0))
%279 = call i32 @cup(i32 8, i32 1)
%280 = call i32 @sgr(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0))
%281 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i64 0, i64 0))
%282 = call i32 @cup(i32 8, i32 40)
%283 = call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0))
%284 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.46, i64 0, i64 0))
%285 = call i32 @cup(i32 10, i32 6)
%286 = call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.47, i64 0, i64 0))
%287 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i64 0, i64 0))
%288 = call i32 @cup(i32 10, i32 45)
%289 = call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.49, i64 0, i64 0))
%290 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
%291 = call i32 @cup(i32 12, i32 1)
%292 = call i32 @sgr(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.51, i64 0, i64 0))
%293 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.52, i64 0, i64 0))
%294 = call i32 @cup(i32 12, i32 40)
%295 = call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0))
%296 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.54, i64 0, i64 0))
%297 = call i32 @cup(i32 14, i32 6)
%298 = call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.55, i64 0, i64 0))
%299 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.56, i64 0, i64 0))
%300 = call i32 @cup(i32 14, i32 45)
%301 = call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.57, i64 0, i64 0))
%302 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.58, i64 0, i64 0))
%303 = call i32 @cup(i32 16, i32 1)
%304 = call i32 @sgr(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.59, i64 0, i64 0))
%305 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.60, i64 0, i64 0))
%306 = call i32 @cup(i32 16, i32 40)
%307 = call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.61, i64 0, i64 0))
%308 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.62, i64 0, i64 0))
%309 = call i32 @cup(i32 18, i32 6)
%310 = call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.63, i64 0, i64 0))
%311 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.64, i64 0, i64 0))
%312 = call i32 @cup(i32 18, i32 45)
%313 = call i32 @sgr(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.65, i64 0, i64 0))
%314 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.66, i64 0, i64 0))
%315 = call i32 @sgr(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.67, i64 0, i64 0))
%316 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%317 = call i32 @cup(i32 23, i32 1)
%318 = call i32 @el(i32 0)
%319 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.68, i64 0, i64 0))
%320 = call i32 (...) @holdit()
%321 = call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%322 = call i32 @cup(i32 23, i32 1)
%323 = call i32 @el(i32 0)
%324 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.69, i64 0, i64 0))
%325 = call i32 (...) @holdit()
%326 = call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%327 = call i32 @ed(i32 2)
%328 = call i32 @cup(i32 8, i32 12)
%329 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.70, i64 0, i64 0))
%330 = call i32 @cup(i32 8, i32 24)
%331 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0))
%332 = call i32 @cup(i32 8, i32 36)
%333 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.71, i64 0, i64 0))
%334 = call i32 @cup(i32 8, i32 48)
%335 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.72, i64 0, i64 0))
%336 = call i32 @cup(i32 8, i32 60)
%337 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.73, i64 0, i64 0))
%338 = call i32 @cup(i32 10, i32 1)
%339 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.74, i64 0, i64 0))
%340 = call i32 @cup(i32 12, i32 1)
%341 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0))
%342 = call i32 @cup(i32 14, i32 1)
%343 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.76, i64 0, i64 0))
%344 = call i32 @cup(i32 16, i32 1)
%345 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.77, i64 0, i64 0))
store i32 0, i32* %4
br label %346
346: ; preds = %420, %248
%347 = load i32, i32* %4
%348 = icmp sle i32 %347, 3
br i1 %348, label %349, label %423
349: ; preds = %346
store i32 0, i32* %2
br label %350
350: ; preds = %416, %349
%351 = load i32, i32* %2
%352 = icmp sle i32 %351, 4
br i1 %352, label %353, label %419
353: ; preds = %350
%354 = load i32, i32* %4
%355 = mul nsw i32 2, %354
%356 = add nsw i32 10, %355
%357 = load i32, i32* %2
%358 = mul nsw i32 12, %357
%359 = add nsw i32 12, %358
%360 = call i32 @cup(i32 %356, i32 %359)
%361 = load i32, i32* %2
%362 = sext i32 %361 to i64
%363 = getelementptr inbounds [5 x i8*], [5 x i8*]* @tst_screen.attr, i64 0, i64 %362
%364 = load i8*, i8** %363
%365 = call i32 @sgr(i8* %364)
%366 = load i32, i32* %4
%367 = icmp eq i32 %366, 0
br i1 %367, label %371, label %368
368: ; preds = %353
%369 = load i32, i32* %4
%370 = icmp eq i32 %369, 2
br i1 %370, label %371, label %373
371: ; preds = %368, %353
%372 = call i32 @scs(i32 0, i8 signext 66)
br label %375
373: ; preds = %368
%374 = call i32 @scs(i32 0, i8 signext 48)
br label %375
375: ; preds = %373, %371
store i32 0, i32* %3
br label %376
376: ; preds = %387, %375
%377 = load i32, i32* %3
%378 = icmp sle i32 %377, 4
br i1 %378, label %379, label %390
379: ; preds = %376
%380 = load i8*, i8** @tst_screen.tststr
%381 = load i32, i32* %4
%382 = sext i32 %381 to i64
%383 = getelementptr inbounds i8, i8* %380, i64 %382
%384 = load i8, i8* %383
%385 = sext i8 %384 to i32
%386 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.78, i64 0, i64 0), i32 %385)
br label %387
387: ; preds = %379
%388 = load i32, i32* %3
%389 = add nsw i32 %388, 1
store i32 %389, i32* %3
br label %376
390: ; preds = %376
%391 = call i32 (...) @decsc()
%392 = load i32, i32* %4
%393 = add nsw i32 %392, 1
%394 = load i32, i32* %2
%395 = add nsw i32 %394, 1
%396 = call i32 @cup(i32 %393, i32 %395)
%397 = call i32 @sgr(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.67, i64 0, i64 0))
%398 = call i32 @scs(i32 0, i8 signext 66)
%399 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.79, i64 0, i64 0))
%400 = call i32 (...) @decrc()
store i32 0, i32* %3
br label %401
401: ; preds = %412, %390
%402 = load i32, i32* %3
%403 = icmp sle i32 %402, 4
br i1 %403, label %404, label %415
404: ; preds = %401
%405 = load i8*, i8** @tst_screen.tststr
%406 = load i32, i32* %4
%407 = sext i32 %406 to i64
%408 = getelementptr inbounds i8, i8* %405, i64 %407
%409 = load i8, i8* %408
%410 = sext i8 %409 to i32
%411 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.78, i64 0, i64 0), i32 %410)
br label %412
412: ; preds = %404
%413 = load i32, i32* %3
%414 = add nsw i32 %413, 1
store i32 %414, i32* %3
br label %401
415: ; preds = %401
br label %416
416: ; preds = %415
%417 = load i32, i32* %2
%418 = add nsw i32 %417, 1
store i32 %418, i32* %2
br label %350
419: ; preds = %350
br label %420
420: ; preds = %419
%421 = load i32, i32* %4
%422 = add nsw i32 %421, 1
store i32 %422, i32* %4
br label %346
423: ; preds = %346
%424 = call i32 @sgr(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.36, i64 0, i64 0))
%425 = call i32 @scs(i32 0, i8 signext 66)
%426 = call i32 @cup(i32 21, i32 1)
%427 = call i32 @println(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.80, i64 0, i64 0))
%428 = call i32 @println(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.81, i64 0, i64 0))
%429 = call i32 @println(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.82, i64 0, i64 0))
%430 = call i32 (...) @holdit()
%431 = load i32, i32* %1
ret i32 %431
}

LLVM IR (-O2):
@.str = [5 x i8] c"*qx`\00"
@reltable.tst_screen = internal unnamed_addr constant [5 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.1 to i64), i64 ptrtoint ([5 x i32]* @reltable.tst_screen to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.2 to i64), i64 ptrtoint ([5 x i32]* @reltable.tst_screen to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.3 to i64), i64 ptrtoint ([5 x i32]* @reltable.tst_screen to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.4 to i64), i64 ptrtoint ([5 x i32]* @reltable.tst_screen to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.5 to i64), i64 ptrtoint ([5 x i32]* @reltable.tst_screen to i64)) to i32)]
@.str.1 = [3 x i8] c";0\00"
@.str.2 = [3 x i8] c";1\00"
@.str.3 = [3 x i8] c";4\00"
@.str.4 = [3 x i8] c";5\00"
@.str.5 = [3 x i8] c";7\00"
@.str.6 = [3 x i8] c"?7\00"
@.str.8 = [63 x i8] c"This should be three identical lines of *'s completely filling\00"
@.str.9 = [55 x i8] c"the top of the screen without any empty lines between.\00"
@.str.10 = [36 x i8] c"(Test of WRAP AROUND mode setting.)\00"
@.str.11 = [3 x i8] c"\09*\00"
@.str.12 = [7 x i8] c" *\00"
@.str.13 = [47 x i8] c"Test of TAB setting/resetting. These two lines\00"
@.str.14 = [23 x i8] c"should look the same. \00"
@.str.15 = [3 x i8] c"?5\00"
@.str.16 = [3 x i8] c"?3\00"
@.str.17 = [11 x i8] c"1234567890\00"
@.str.18 = [3 x i8] c"12\00"
@.str.19 = [40 x i8] c"This is 132 column mode, %s background.\00"
@.str.20 = [5 x i8] c"dark\00"
@.str.21 = [6 x i8] c"light\00"
@.str.22 = [39 x i8] c"This is 80 column mode, %s background.\00"
@.str.23 = [3 x i8] c"?6\00"
@.str.24 = [3 x i8] c"?4\00"
@.str.25 = [32 x i8] c"%s scroll %s region %d Line %d\0A\00"
@.str.26 = [5 x i8] c"Soft\00"
@.str.27 = [5 x i8] c"Jump\00"
@.str.28 = [5 x i8] c"down\00"
@.str.29 = [3 x i8] c"up\00"
@.str.30 = [68 x i8] c"\0AOrigin mode test. This line should be at the bottom of the screen.\00"
@.str.31 = [3 x i8] c"%s\00"
@.str.32 = [62 x i8] c"This line should be the one above the bottom of the screeen. \00"
@.str.33 = [67 x i8] c"Origin mode test. This line should be at the bottom of the screen.\00"
@.str.34 = [47 x i8] c"This line should be at the top if the screen. \00"
@.str.35 = [32 x i8] c"Graphic rendition test pattern:\00"
@.str.36 = [2 x i8] c"0\00"
@.str.37 = [8 x i8] c"vanilla\00"
@.str.38 = [4 x i8] c"0;1\00"
@.str.39 = [5 x i8] c"bold\00"
@.str.40 = [10 x i8] c"underline\00"
@.str.41 = [2 x i8] c"4\00"
@.str.42 = [15 x i8] c"bold underline\00"
@.str.43 = [4 x i8] c"0;5\00"
@.str.44 = [6 x i8] c"blink\00"
@.str.45 = [6 x i8] c"0;5;1\00"
@.str.46 = [11 x i8] c"bold blink\00"
@.str.47 = [6 x i8] c"0;4;5\00"
@.str.48 = [16 x i8] c"underline blink\00"
@.str.49 = [8 x i8] c"0;1;4;5\00"
@.str.50 = [21 x i8] c"bold underline blink\00"
@.str.51 = [10 x i8] c"1;4;5;0;7\00"
@.str.52 = [9 x i8] c"negative\00"
@.str.53 = [6 x i8] c"0;1;7\00"
@.str.54 = [14 x i8] c"bold negative\00"
@.str.55 = [6 x i8] c"0;4;7\00"
@.str.56 = [19 x i8] c"underline negative\00"
@.str.57 = [8 x i8] c"0;1;4;7\00"
@.str.58 = [24 x i8] c"bold underline negative\00"
@.str.59 = [9 x i8] c"1;4;;5;7\00"
@.str.60 = [15 x i8] c"blink negative\00"
@.str.61 = [8 x i8] c"0;1;5;7\00"
@.str.62 = [20 x i8] c"bold blink negative\00"
@.str.63 = [8 x i8] c"0;4;5;7\00"
@.str.64 = [25 x i8] c"underline blink negative\00"
@.str.65 = [10 x i8] c"0;1;4;5;7\00"
@.str.66 = [30 x i8] c"bold underline blink negative\00"
@.str.67 = [1 x i8] zeroinitializer
@.str.68 = [18 x i8] c"Dark background. \00"
@.str.69 = [19 x i8] c"Light background. \00"
@.str.70 = [7 x i8] c"normal\00"
@.str.71 = [12 x i8] c"underscored\00"
@.str.72 = [9 x i8] c"blinking\00"
@.str.73 = [9 x i8] c"reversed\00"
@.str.74 = [7 x i8] c"stars:\00"
@.str.75 = [6 x i8] c"line:\00"
@.str.76 = [6 x i8] c"x'es:\00"
@.str.77 = [10 x i8] c"diamonds:\00"
@.str.80 = [54 x i8] c"Test of the SAVE/RESTORE CURSOR feature. There should\00"
@.str.81 = [51 x i8] c"be ten characters of each flavour, and a rectangle\00"
@.str.82 = [49 x i8] c"of 5 x 4 A's filling the top left of the screen.\00"
define i32 @tst_screen() {
%1 = tail call i32 @cup(i32 1, i32 1)
%2 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
br label %3
3: ; preds = %0, %3
%4 = phi i32 [ 1, %0 ], [ %6, %3 ]
%5 = tail call i32 @putchar(i32 42)
%6 = add nuw nsw i32 %4, 1
%7 = icmp eq i32 %6, 161
br i1 %7, label %8, label %3
8: ; preds = %3
%9 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%10 = tail call i32 @cup(i32 3, i32 1)
br label %11
11: ; preds = %8, %11
%12 = phi i32 [ 1, %8 ], [ %14, %11 ]
%13 = tail call i32 @putchar(i32 42)
%14 = add nuw nsw i32 %12, 1
%15 = icmp eq i32 %14, 161
br i1 %15, label %16, label %11
16: ; preds = %11
%17 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%18 = tail call i32 @cup(i32 5, i32 1)
%19 = tail call i32 @println(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.8, i64 0, i64 0))
%20 = tail call i32 @println(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.9, i64 0, i64 0))
%21 = tail call i32 @println(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.10, i64 0, i64 0))
%22 = tail call i32 (...) @holdit()
%23 = tail call i32 @ed(i32 2)
%24 = tail call i32 @tbc(i32 3)
%25 = tail call i32 @cup(i32 1, i32 1)
%26 = tail call i32 @cuf(i32 3)
%27 = tail call i32 (...) @hts()
%28 = tail call i32 @cuf(i32 3)
%29 = tail call i32 (...) @hts()
%30 = tail call i32 @cuf(i32 3)
%31 = tail call i32 (...) @hts()
%32 = tail call i32 @cuf(i32 3)
%33 = tail call i32 (...) @hts()
%34 = tail call i32 @cuf(i32 3)
%35 = tail call i32 (...) @hts()
%36 = tail call i32 @cuf(i32 3)
%37 = tail call i32 (...) @hts()
%38 = tail call i32 @cuf(i32 3)
%39 = tail call i32 (...) @hts()
%40 = tail call i32 @cuf(i32 3)
%41 = tail call i32 (...) @hts()
%42 = tail call i32 @cuf(i32 3)
%43 = tail call i32 (...) @hts()
%44 = tail call i32 @cuf(i32 3)
%45 = tail call i32 (...) @hts()
%46 = tail call i32 @cuf(i32 3)
%47 = tail call i32 (...) @hts()
%48 = tail call i32 @cuf(i32 3)
%49 = tail call i32 (...) @hts()
%50 = tail call i32 @cuf(i32 3)
%51 = tail call i32 (...) @hts()
%52 = tail call i32 @cuf(i32 3)
%53 = tail call i32 (...) @hts()
%54 = tail call i32 @cuf(i32 3)
%55 = tail call i32 (...) @hts()
%56 = tail call i32 @cuf(i32 3)
%57 = tail call i32 (...) @hts()
%58 = tail call i32 @cuf(i32 3)
%59 = tail call i32 (...) @hts()
%60 = tail call i32 @cuf(i32 3)
%61 = tail call i32 (...) @hts()
%62 = tail call i32 @cuf(i32 3)
%63 = tail call i32 (...) @hts()
%64 = tail call i32 @cuf(i32 3)
%65 = tail call i32 (...) @hts()
%66 = tail call i32 @cuf(i32 3)
%67 = tail call i32 (...) @hts()
%68 = tail call i32 @cuf(i32 3)
%69 = tail call i32 (...) @hts()
%70 = tail call i32 @cuf(i32 3)
%71 = tail call i32 (...) @hts()
%72 = tail call i32 @cuf(i32 3)
%73 = tail call i32 (...) @hts()
%74 = tail call i32 @cuf(i32 3)
%75 = tail call i32 (...) @hts()
%76 = tail call i32 @cuf(i32 3)
%77 = tail call i32 (...) @hts()
%78 = tail call i32 @cup(i32 1, i32 4)
%79 = tail call i32 @tbc(i32 0)
%80 = tail call i32 @cuf(i32 6)
%81 = tail call i32 @tbc(i32 0)
%82 = tail call i32 @cuf(i32 6)
%83 = tail call i32 @tbc(i32 0)
%84 = tail call i32 @cuf(i32 6)
%85 = tail call i32 @tbc(i32 0)
%86 = tail call i32 @cuf(i32 6)
%87 = tail call i32 @tbc(i32 0)
%88 = tail call i32 @cuf(i32 6)
%89 = tail call i32 @tbc(i32 0)
%90 = tail call i32 @cuf(i32 6)
%91 = tail call i32 @tbc(i32 0)
%92 = tail call i32 @cuf(i32 6)
%93 = tail call i32 @tbc(i32 0)
%94 = tail call i32 @cuf(i32 6)
%95 = tail call i32 @tbc(i32 0)
%96 = tail call i32 @cuf(i32 6)
%97 = tail call i32 @tbc(i32 0)
%98 = tail call i32 @cuf(i32 6)
%99 = tail call i32 @tbc(i32 0)
%100 = tail call i32 @cuf(i32 6)
%101 = tail call i32 @tbc(i32 0)
%102 = tail call i32 @cuf(i32 6)
%103 = tail call i32 @tbc(i32 0)
%104 = tail call i32 @cuf(i32 6)
%105 = tail call i32 @cup(i32 1, i32 7)
%106 = tail call i32 @tbc(i32 1)
%107 = tail call i32 @tbc(i32 2)
%108 = tail call i32 @cup(i32 1, i32 1)
%109 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%110 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%111 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%112 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%113 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%114 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%115 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%116 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%117 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%118 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%119 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%120 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%121 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%122 = tail call i32 @cup(i32 2, i32 2)
%123 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%124 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%125 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%126 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%127 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%128 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%129 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%130 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%131 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%132 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%133 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%134 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%135 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
%136 = tail call i32 @cup(i32 4, i32 1)
%137 = tail call i32 @println(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.13, i64 0, i64 0))
%138 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.14, i64 0, i64 0))
%139 = tail call i32 (...) @holdit()
br label %140
140: ; preds = %16, %146
%141 = phi i1 [ true, %16 ], [ false, %146 ]
br i1 %141, label %144, label %142
142: ; preds = %140
%143 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
br label %146
144: ; preds = %140
%145 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
br label %146
146: ; preds = %144, %142
%147 = phi i8* [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0), %144 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0), %142 ]
%148 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
%149 = tail call i32 @ed(i32 2)
%150 = tail call i32 @cup(i32 1, i32 1)
%151 = tail call i32 @tbc(i32 3)
%152 = tail call i32 @cuf(i32 8)
%153 = tail call i32 (...) @hts()
%154 = tail call i32 @cuf(i32 8)
%155 = tail call i32 (...) @hts()
%156 = tail call i32 @cuf(i32 8)
%157 = tail call i32 (...) @hts()
%158 = tail call i32 @cuf(i32 8)
%159 = tail call i32 (...) @hts()
%160 = tail call i32 @cuf(i32 8)
%161 = tail call i32 (...) @hts()
%162 = tail call i32 @cuf(i32 8)
%163 = tail call i32 (...) @hts()
%164 = tail call i32 @cuf(i32 8)
%165 = tail call i32 (...) @hts()
%166 = tail call i32 @cuf(i32 8)
%167 = tail call i32 (...) @hts()
%168 = tail call i32 @cuf(i32 8)
%169 = tail call i32 (...) @hts()
%170 = tail call i32 @cuf(i32 8)
%171 = tail call i32 (...) @hts()
%172 = tail call i32 @cuf(i32 8)
%173 = tail call i32 (...) @hts()
%174 = tail call i32 @cuf(i32 8)
%175 = tail call i32 (...) @hts()
%176 = tail call i32 @cuf(i32 8)
%177 = tail call i32 (...) @hts()
%178 = tail call i32 @cuf(i32 8)
%179 = tail call i32 (...) @hts()
%180 = tail call i32 @cuf(i32 8)
%181 = tail call i32 (...) @hts()
%182 = tail call i32 @cuf(i32 8)
%183 = tail call i32 (...) @hts()
%184 = tail call i32 @cuf(i32 8)
%185 = tail call i32 (...) @hts()
%186 = tail call i32 @cup(i32 1, i32 1)
%187 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%188 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%189 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%190 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%191 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%192 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%193 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%194 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%195 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%196 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%197 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%198 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%199 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%200 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.18, i64 0, i64 0))
%201 = tail call i32 @cup(i32 3, i32 3)
%202 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%203 = tail call i32 @cup(i32 4, i32 4)
%204 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%205 = tail call i32 @cup(i32 5, i32 5)
%206 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%207 = tail call i32 @cup(i32 6, i32 6)
%208 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%209 = tail call i32 @cup(i32 7, i32 7)
%210 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%211 = tail call i32 @cup(i32 8, i32 8)
%212 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%213 = tail call i32 @cup(i32 9, i32 9)
%214 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%215 = tail call i32 @cup(i32 10, i32 10)
%216 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%217 = tail call i32 @cup(i32 11, i32 11)
%218 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%219 = tail call i32 @cup(i32 12, i32 12)
%220 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%221 = tail call i32 @cup(i32 13, i32 13)
%222 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%223 = tail call i32 @cup(i32 14, i32 14)
%224 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%225 = tail call i32 @cup(i32 15, i32 15)
%226 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%227 = tail call i32 @cup(i32 16, i32 16)
%228 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%229 = tail call i32 @cup(i32 17, i32 17)
%230 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%231 = tail call i32 @cup(i32 18, i32 18)
%232 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%233 = tail call i32 @cup(i32 19, i32 19)
%234 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%235 = tail call i32 @cup(i32 20, i32 20)
%236 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.19, i64 0, i64 0), i8* %147)
%237 = tail call i32 (...) @holdit()
%238 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
%239 = tail call i32 @ed(i32 2)
%240 = tail call i32 @cup(i32 1, i32 1)
%241 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%242 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%243 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%244 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%245 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%246 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%247 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%248 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.17, i64 0, i64 0))
%249 = tail call i32 @cup(i32 3, i32 3)
%250 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%251 = tail call i32 @cup(i32 4, i32 4)
%252 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%253 = tail call i32 @cup(i32 5, i32 5)
%254 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%255 = tail call i32 @cup(i32 6, i32 6)
%256 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%257 = tail call i32 @cup(i32 7, i32 7)
%258 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%259 = tail call i32 @cup(i32 8, i32 8)
%260 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%261 = tail call i32 @cup(i32 9, i32 9)
%262 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%263 = tail call i32 @cup(i32 10, i32 10)
%264 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%265 = tail call i32 @cup(i32 11, i32 11)
%266 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%267 = tail call i32 @cup(i32 12, i32 12)
%268 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%269 = tail call i32 @cup(i32 13, i32 13)
%270 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%271 = tail call i32 @cup(i32 14, i32 14)
%272 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%273 = tail call i32 @cup(i32 15, i32 15)
%274 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%275 = tail call i32 @cup(i32 16, i32 16)
%276 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%277 = tail call i32 @cup(i32 17, i32 17)
%278 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%279 = tail call i32 @cup(i32 18, i32 18)
%280 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%281 = tail call i32 @cup(i32 19, i32 19)
%282 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%283 = tail call i32 @cup(i32 20, i32 20)
%284 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.22, i64 0, i64 0), i8* %147)
%285 = tail call i32 (...) @holdit()
br i1 %141, label %140, label %286
286: ; preds = %146
%287 = tail call i32 @ed(i32 2)
%288 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i64 0, i64 0))
br label %289
289: ; preds = %286, %382
%290 = phi i32 [ -1, %286 ], [ %384, %382 ]
%291 = icmp eq i32 %290, 0
br i1 %291, label %294, label %292
292: ; preds = %289
%293 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
br label %296
294: ; preds = %289
%295 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
br label %296
296: ; preds = %294, %292
%297 = phi i8* [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.27, i64 0, i64 0), %294 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), %292 ]
%298 = tail call i32 @decstbm(i32 12, i32 13)
%299 = tail call i32 @ed(i32 2)
%300 = tail call i32 @cud(i32 24)
%301 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 1)
%302 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 2)
%303 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 3)
%304 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 4)
%305 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 5)
%306 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 6)
%307 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 7)
%308 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 8)
%309 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 9)
%310 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 10)
%311 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 11)
%312 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 12)
%313 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 13)
%314 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 14)
%315 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 15)
%316 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 16)
%317 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 17)
%318 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 18)
%319 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 19)
%320 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 20)
%321 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 21)
%322 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 22)
%323 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 23)
%324 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 24)
%325 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 25)
%326 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 26)
%327 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 27)
%328 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 28)
%329 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 29)
%330 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 2, i32 30)
%331 = tail call i32 @cuu(i32 24)
br label %332
332: ; preds = %332, %296
%333 = phi i32 [ 1, %296 ], [ %337, %332 ]
%334 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i32 2, i32 %333)
%335 = tail call i32 (...) @ri()
%336 = tail call i32 (...) @ri()
%337 = add nuw nsw i32 %333, 1
%338 = icmp eq i32 %337, 31
br i1 %338, label %339, label %332
339: ; preds = %332
%340 = tail call i32 (...) @holdit()
%341 = tail call i32 @decstbm(i32 1, i32 24)
%342 = tail call i32 @ed(i32 2)
%343 = tail call i32 @cud(i32 24)
%344 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 1)
%345 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 2)
%346 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 3)
%347 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 4)
%348 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 5)
%349 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 6)
%350 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 7)
%351 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 8)
%352 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 9)
%353 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 10)
%354 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 11)
%355 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 12)
%356 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 13)
%357 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 14)
%358 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 15)
%359 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 16)
%360 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 17)
%361 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 18)
%362 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 19)
%363 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 20)
%364 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 21)
%365 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 22)
%366 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 23)
%367 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 24)
%368 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 25)
%369 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 26)
%370 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 27)
%371 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 28)
%372 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 29)
%373 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i32 24, i32 30)
%374 = tail call i32 @cuu(i32 24)
br label %375
375: ; preds = %375, %339
%376 = phi i32 [ 1, %339 ], [ %380, %375 ]
%377 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.25, i64 0, i64 0), i8* %297, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i32 24, i32 %376)
%378 = tail call i32 (...) @ri()
%379 = tail call i32 (...) @ri()
%380 = add nuw nsw i32 %376, 1
%381 = icmp eq i32 %380, 31
br i1 %381, label %382, label %375
382: ; preds = %375
%383 = tail call i32 (...) @holdit()
%384 = add nsw i32 %290, 1
%385 = icmp eq i32 %290, 0
br i1 %385, label %386, label %289
386: ; preds = %382
%387 = tail call i32 @ed(i32 2)
%388 = tail call i32 @decstbm(i32 23, i32 24)
%389 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @.str.30, i64 0, i64 0))
%390 = tail call i32 @cup(i32 1, i32 1)
%391 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.32, i64 0, i64 0))
%392 = tail call i32 (...) @holdit()
%393 = tail call i32 @ed(i32 2)
%394 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i64 0, i64 0))
%395 = tail call i32 @cup(i32 24, i32 1)
%396 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @.str.33, i64 0, i64 0))
%397 = tail call i32 @cup(i32 1, i32 1)
%398 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.34, i64 0, i64 0))
%399 = tail call i32 (...) @holdit()
%400 = tail call i32 @decstbm(i32 1, i32 24)
%401 = tail call i32 @ed(i32 2)
%402 = tail call i32 @cup(i32 1, i32 20)
%403 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @.str.35, i64 0, i64 0))
%404 = tail call i32 @cup(i32 4, i32 1)
%405 = tail call i32 @sgr(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.36, i64 0, i64 0))
%406 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.37, i64 0, i64 0))
%407 = tail call i32 @cup(i32 4, i32 40)
%408 = tail call i32 @sgr(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%409 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0))
%410 = tail call i32 @cup(i32 6, i32 6)
%411 = tail call i32 @sgr(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0))
%412 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.40, i64 0, i64 0))
%413 = tail call i32 @cup(i32 6, i32 45)
%414 = tail call i32 @sgr(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%415 = tail call i32 @sgr(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.41, i64 0, i64 0))
%416 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.42, i64 0, i64 0))
%417 = tail call i32 @cup(i32 8, i32 1)
%418 = tail call i32 @sgr(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0))
%419 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i64 0, i64 0))
%420 = tail call i32 @cup(i32 8, i32 40)
%421 = tail call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0))
%422 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.46, i64 0, i64 0))
%423 = tail call i32 @cup(i32 10, i32 6)
%424 = tail call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.47, i64 0, i64 0))
%425 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i64 0, i64 0))
%426 = tail call i32 @cup(i32 10, i32 45)
%427 = tail call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.49, i64 0, i64 0))
%428 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
%429 = tail call i32 @cup(i32 12, i32 1)
%430 = tail call i32 @sgr(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.51, i64 0, i64 0))
%431 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.52, i64 0, i64 0))
%432 = tail call i32 @cup(i32 12, i32 40)
%433 = tail call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0))
%434 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.54, i64 0, i64 0))
%435 = tail call i32 @cup(i32 14, i32 6)
%436 = tail call i32 @sgr(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.55, i64 0, i64 0))
%437 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.56, i64 0, i64 0))
%438 = tail call i32 @cup(i32 14, i32 45)
%439 = tail call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.57, i64 0, i64 0))
%440 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.58, i64 0, i64 0))
%441 = tail call i32 @cup(i32 16, i32 1)
%442 = tail call i32 @sgr(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.59, i64 0, i64 0))
%443 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.60, i64 0, i64 0))
%444 = tail call i32 @cup(i32 16, i32 40)
%445 = tail call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.61, i64 0, i64 0))
%446 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.62, i64 0, i64 0))
%447 = tail call i32 @cup(i32 18, i32 6)
%448 = tail call i32 @sgr(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.63, i64 0, i64 0))
%449 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.64, i64 0, i64 0))
%450 = tail call i32 @cup(i32 18, i32 45)
%451 = tail call i32 @sgr(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.65, i64 0, i64 0))
%452 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.66, i64 0, i64 0))
%453 = tail call i32 @sgr(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.67, i64 0, i64 0))
%454 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%455 = tail call i32 @cup(i32 23, i32 1)
%456 = tail call i32 @el(i32 0)
%457 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.68, i64 0, i64 0))
%458 = tail call i32 (...) @holdit()
%459 = tail call i32 @sm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%460 = tail call i32 @cup(i32 23, i32 1)
%461 = tail call i32 @el(i32 0)
%462 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.69, i64 0, i64 0))
%463 = tail call i32 (...) @holdit()
%464 = tail call i32 @rm(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
%465 = tail call i32 @ed(i32 2)
%466 = tail call i32 @cup(i32 8, i32 12)
%467 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.70, i64 0, i64 0))
%468 = tail call i32 @cup(i32 8, i32 24)
%469 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0))
%470 = tail call i32 @cup(i32 8, i32 36)
%471 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.71, i64 0, i64 0))
%472 = tail call i32 @cup(i32 8, i32 48)
%473 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.72, i64 0, i64 0))
%474 = tail call i32 @cup(i32 8, i32 60)
%475 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.73, i64 0, i64 0))
%476 = tail call i32 @cup(i32 10, i32 1)
%477 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.74, i64 0, i64 0))
%478 = tail call i32 @cup(i32 12, i32 1)
%479 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0))
%480 = tail call i32 @cup(i32 14, i32 1)
%481 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.76, i64 0, i64 0))
%482 = tail call i32 @cup(i32 16, i32 1)
%483 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.77, i64 0, i64 0))
br label %484
484: ; preds = %386, %526
%485 = phi i64 [ 0, %386 ], [ %489, %526 ]
%486 = and i64 %485, 2147483645
%487 = icmp eq i64 %486, 0
%488 = getelementptr inbounds [5 x i8], [5 x i8]* @.str, i64 0, i64 %485
%489 = add nuw nsw i64 %485, 1
%490 = trunc i64 %485 to i32
%491 = shl i32 %490, 1
%492 = add i32 %491, 10
%493 = trunc i64 %489 to i32
%494 = select i1 %487, i8 66, i8 48
br label %495
495: ; preds = %484, %495
%496 = phi i64 [ 0, %484 ], [ %513, %495 ]
%497 = trunc i64 %496 to i32
%498 = mul i32 %497, 12
%499 = add i32 %498, 12
%500 = tail call i32 @cup(i32 %492, i32 %499)
%501 = shl i64 %496, 2
%502 = call i8* @llvm.load.relative.i64(i8* bitcast ([5 x i32]* @reltable.tst_screen to i8*), i64 %501)
%503 = tail call i32 @sgr(i8* %502)
%504 = tail call i32 @scs(i32 0, i8 signext %494)
%505 = load i8, i8* %488
%506 = sext i8 %505 to i32
%507 = tail call i32 @putchar(i32 %506)
%508 = tail call i32 @putchar(i32 %506)
%509 = tail call i32 @putchar(i32 %506)
%510 = tail call i32 @putchar(i32 %506)
%511 = tail call i32 @putchar(i32 %506)
%512 = tail call i32 (...) @decsc()
%513 = add nuw nsw i64 %496, 1
%514 = trunc i64 %513 to i32
%515 = tail call i32 @cup(i32 %493, i32 %514)
%516 = tail call i32 @sgr(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.67, i64 0, i64 0))
%517 = tail call i32 @scs(i32 0, i8 signext 66)
%518 = tail call i32 @putchar(i32 65)
%519 = tail call i32 (...) @decrc()
%520 = tail call i32 @putchar(i32 %506)
%521 = tail call i32 @putchar(i32 %506)
%522 = tail call i32 @putchar(i32 %506)
%523 = tail call i32 @putchar(i32 %506)
%524 = tail call i32 @putchar(i32 %506)
%525 = icmp eq i64 %513, 5
br i1 %525, label %526, label %495
526: ; preds = %495
%527 = icmp eq i64 %489, 4
br i1 %527, label %528, label %484
528: ; preds = %526
%529 = tail call i32 @sgr(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.36, i64 0, i64 0))
%530 = tail call i32 @scs(i32 0, i8 signext 66)
%531 = tail call i32 @cup(i32 21, i32 1)
%532 = tail call i32 @println(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.80, i64 0, i64 0))
%533 = tail call i32 @println(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.81, i64 0, i64 0))
%534 = tail call i32 @println(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.82, i64 0, i64 0))
%535 = tail call i32 (...) @holdit()
ret i32 undef
}