#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 */
unsigned char *xodirectline(int);
int /*<<< orphan*/ xoinit(int);
int main() {
  int i, y;
  unsigned char *p;
  xoinit(4);
  for (y = 0; y < 200; y++) {
    p = xodirectline(y);
    if (y < 2 || y >= 198) {
      for (i = 0; i < 80; i++)
        p[i] = 0xFF;
      continue;
    }
    i = 0;
    p[i++] = 0xF0;
    for (; i < 3; i++)
      p[i] = 0x00;
    for (; i < 6; i++)
      if (y & 1)
        p[i] = 0x40;
      else
        p[i] = 0x04;
    for (; i < 9; i++)
      p[i] = 0x44;
    for (; i < 12; i++)
      if (y & 1)
        p[i] = 0xE4;
      else
        p[i] = 0x4E;
    for (; i < 15; i++)
      p[i] = 0xEE;
    for (; i < 18; i++)
      if (y & 1)
        p[i] = 0xEC;
      else
        p[i] = 0xCE;
    for (; i < 21; i++)
      p[i] = 0xCC;
    for (; i < 24; i++)
      if (y & 1)
        p[i] = 0xDC;
      else
        p[i] = 0xCD;
    for (; i < 27; i++)
      p[i] = 0xDD;
    for (; i < 30; i++)
      if (y & 1)
        p[i] = 0xD8;
      else
        p[i] = 0x8D;
    for (; i < 33; i++)
      p[i] = 0x88;
    for (; i < 36; i++)
      if (y & 1)
        p[i] = 0x98;
      else
        p[i] = 0x89;
    for (; i < 39; i++)
      p[i] = 0x99;
    for (; i < 42; i++)
      if (y & 1)
        p[i] = 0xB9;
      else
        p[i] = 0x9B;
    for (; i < 45; i++)
      p[i] = 0xBB;
    for (; i < 48; i++)
      if (y & 1)
        p[i] = 0xB1;
      else
        p[i] = 0x1B;
    for (; i < 51; i++)
      p[i] = 0x11;
    for (; i < 54; i++)
      if (y & 1)
        p[i] = 0x31;
      else
        p[i] = 0x13;
    for (; i < 57; i++)
      p[i] = 0x33;
    for (; i < 60; i++)
      if (y & 1)
        p[i] = 0x32;
      else
        p[i] = 0x23;
    for (; i < 63; i++)
      p[i] = 0x22;
    for (; i < 66; i++)
      if (y & 1)
        p[i] = 0x72;
      else
        p[i] = 0x27;
    for (; i < 69; i++)
      p[i] = 0x77;
    for (; i < 72; i++)
      if (y & 1)
        p[i] = 0x76;
      else
        p[i] = 0x67;
    for (; i < 75; i++)
      p[i] = 0x66;
    for (; i < 78; i++)
      if (y & 1)
        p[i] = 0xF6;
      else
        p[i] = 0x6F;
    for (; i < 80; i++)
      p[i] = 0xFF;
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
movl   $0x0,-0x4(%rbp)
mov    $0x4,%edi
call   1040 <xoinit@plt>
movl   $0x0,-0xc(%rbp)
cmpl   $0xc8,-0xc(%rbp)
jge    17ff <main+0x6df>
mov    -0xc(%rbp),%edi
call   1030 <xodirectline@plt>
mov    %rax,-0x18(%rbp)
cmpl   $0x2,-0xc(%rbp)
jl     1170 <main+0x50>
cmpl   $0xc6,-0xc(%rbp)
jl     11a0 <main+0x80>
movl   $0x0,-0x8(%rbp)
cmpl   $0x50,-0x8(%rbp)
jge    119b <main+0x7b>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xff,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1177 <main+0x57>
jmp    17f1 <main+0x6d1>
movl   $0x0,-0x8(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%ecx
mov    %ecx,%edx
add    $0x1,%edx
mov    %edx,-0x8(%rbp)
movslq %ecx,%rcx
movb   $0xf0,(%rax,%rcx,1)
cmpl   $0x3,-0x8(%rbp)
jge    11e1 <main+0xc1>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x0,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11bd <main+0x9d>
jmp    11e6 <main+0xc6>
cmpl   $0x6,-0x8(%rbp)
jge    122f <main+0x10f>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1210 <main+0xf0>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x40,(%rax,%rcx,1)
jmp    121c <main+0xfc>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x4,(%rax,%rcx,1)
jmp    1221 <main+0x101>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11e6 <main+0xc6>
jmp    1234 <main+0x114>
cmpl   $0x9,-0x8(%rbp)
jge    1258 <main+0x138>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x44,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1234 <main+0x114>
jmp    125d <main+0x13d>
cmpl   $0xc,-0x8(%rbp)
jge    12a6 <main+0x186>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1287 <main+0x167>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xe4,(%rax,%rcx,1)
jmp    1293 <main+0x173>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x4e,(%rax,%rcx,1)
jmp    1298 <main+0x178>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    125d <main+0x13d>
jmp    12ab <main+0x18b>
cmpl   $0xf,-0x8(%rbp)
jge    12cf <main+0x1af>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xee,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    12ab <main+0x18b>
jmp    12d4 <main+0x1b4>
cmpl   $0x12,-0x8(%rbp)
jge    131d <main+0x1fd>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     12fe <main+0x1de>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xec,(%rax,%rcx,1)
jmp    130a <main+0x1ea>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xce,(%rax,%rcx,1)
jmp    130f <main+0x1ef>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    12d4 <main+0x1b4>
jmp    1322 <main+0x202>
cmpl   $0x15,-0x8(%rbp)
jge    1346 <main+0x226>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xcc,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1322 <main+0x202>
jmp    134b <main+0x22b>
cmpl   $0x18,-0x8(%rbp)
jge    1394 <main+0x274>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1375 <main+0x255>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xdc,(%rax,%rcx,1)
jmp    1381 <main+0x261>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xcd,(%rax,%rcx,1)
jmp    1386 <main+0x266>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    134b <main+0x22b>
jmp    1399 <main+0x279>
cmpl   $0x1b,-0x8(%rbp)
jge    13bd <main+0x29d>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xdd,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1399 <main+0x279>
jmp    13c2 <main+0x2a2>
cmpl   $0x1e,-0x8(%rbp)
jge    140b <main+0x2eb>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     13ec <main+0x2cc>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xd8,(%rax,%rcx,1)
jmp    13f8 <main+0x2d8>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x8d,(%rax,%rcx,1)
jmp    13fd <main+0x2dd>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    13c2 <main+0x2a2>
jmp    1410 <main+0x2f0>
cmpl   $0x21,-0x8(%rbp)
jge    1434 <main+0x314>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x88,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1410 <main+0x2f0>
jmp    1439 <main+0x319>
cmpl   $0x24,-0x8(%rbp)
jge    1482 <main+0x362>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1463 <main+0x343>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x98,(%rax,%rcx,1)
jmp    146f <main+0x34f>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x89,(%rax,%rcx,1)
jmp    1474 <main+0x354>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1439 <main+0x319>
jmp    1487 <main+0x367>
cmpl   $0x27,-0x8(%rbp)
jge    14ab <main+0x38b>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x99,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1487 <main+0x367>
jmp    14b0 <main+0x390>
cmpl   $0x2a,-0x8(%rbp)
jge    14f9 <main+0x3d9>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     14da <main+0x3ba>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xb9,(%rax,%rcx,1)
jmp    14e6 <main+0x3c6>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x9b,(%rax,%rcx,1)
jmp    14eb <main+0x3cb>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    14b0 <main+0x390>
jmp    14fe <main+0x3de>
cmpl   $0x2d,-0x8(%rbp)
jge    1522 <main+0x402>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xbb,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    14fe <main+0x3de>
jmp    1527 <main+0x407>
cmpl   $0x30,-0x8(%rbp)
jge    1570 <main+0x450>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1551 <main+0x431>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xb1,(%rax,%rcx,1)
jmp    155d <main+0x43d>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x1b,(%rax,%rcx,1)
jmp    1562 <main+0x442>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1527 <main+0x407>
jmp    1575 <main+0x455>
cmpl   $0x33,-0x8(%rbp)
jge    1599 <main+0x479>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x11,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1575 <main+0x455>
jmp    159e <main+0x47e>
cmpl   $0x36,-0x8(%rbp)
jge    15e7 <main+0x4c7>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     15c8 <main+0x4a8>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x31,(%rax,%rcx,1)
jmp    15d4 <main+0x4b4>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x13,(%rax,%rcx,1)
jmp    15d9 <main+0x4b9>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    159e <main+0x47e>
jmp    15ec <main+0x4cc>
cmpl   $0x39,-0x8(%rbp)
jge    1610 <main+0x4f0>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x33,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    15ec <main+0x4cc>
jmp    1615 <main+0x4f5>
cmpl   $0x3c,-0x8(%rbp)
jge    165e <main+0x53e>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     163f <main+0x51f>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x32,(%rax,%rcx,1)
jmp    164b <main+0x52b>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x23,(%rax,%rcx,1)
jmp    1650 <main+0x530>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1615 <main+0x4f5>
jmp    1663 <main+0x543>
cmpl   $0x3f,-0x8(%rbp)
jge    1687 <main+0x567>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x22,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1663 <main+0x543>
jmp    168c <main+0x56c>
cmpl   $0x42,-0x8(%rbp)
jge    16d5 <main+0x5b5>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     16b6 <main+0x596>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x72,(%rax,%rcx,1)
jmp    16c2 <main+0x5a2>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x27,(%rax,%rcx,1)
jmp    16c7 <main+0x5a7>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    168c <main+0x56c>
jmp    16da <main+0x5ba>
cmpl   $0x45,-0x8(%rbp)
jge    16fe <main+0x5de>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x77,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    16da <main+0x5ba>
jmp    1703 <main+0x5e3>
cmpl   $0x48,-0x8(%rbp)
jge    174c <main+0x62c>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     172d <main+0x60d>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x76,(%rax,%rcx,1)
jmp    1739 <main+0x619>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x67,(%rax,%rcx,1)
jmp    173e <main+0x61e>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1703 <main+0x5e3>
jmp    1751 <main+0x631>
cmpl   $0x4b,-0x8(%rbp)
jge    1775 <main+0x655>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x66,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1751 <main+0x631>
jmp    177a <main+0x65a>
cmpl   $0x4e,-0x8(%rbp)
jge    17c3 <main+0x6a3>
mov    -0xc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     17a4 <main+0x684>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xf6,(%rax,%rcx,1)
jmp    17b0 <main+0x690>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0x6f,(%rax,%rcx,1)
jmp    17b5 <main+0x695>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    177a <main+0x65a>
jmp    17c8 <main+0x6a8>
cmpl   $0x50,-0x8(%rbp)
jge    17ec <main+0x6cc>
mov    -0x18(%rbp),%rax
movslq -0x8(%rbp),%rcx
movb   $0xff,(%rax,%rcx,1)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    17c8 <main+0x6a8>
jmp    17f1 <main+0x6d1>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1140 <main+0x20>
xor    %eax,%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    $0x4,%edi
call   1040 <xoinit@plt>
xor    %ebx,%ebx
jmp    1170 <main+0x50>
nopl   0x0(%rax)
pcmpeqd %xmm0,%xmm0
movdqu %xmm0,0x40(%rax)
movdqu %xmm0,0x30(%rax)
movdqu %xmm0,0x20(%rax)
movdqu %xmm0,0x10(%rax)
movdqu %xmm0,(%rax)
add    $0xc7,%ecx
mov    %ecx,%ebx
cmp    $0xc8,%ecx
je     12fe <main+0x1de>
mov    %ebx,%edi
call   1030 <xodirectline@plt>
lea    -0xc6(%rbx),%ecx
cmp    $0xffffff3b,%ecx
jbe    1140 <main+0x20>
movb   $0xf0,(%rax)
movw   $0x0,0x1(%rax)
test   $0x1,%bl
jne    11c0 <main+0xa0>
mov    $0x6f,%sil
mov    $0x67,%dil
mov    $0x27,%r8b
mov    $0x23,%r9b
mov    $0x13,%r10b
mov    $0x1b,%r11b
mov    $0x9b,%bpl
mov    $0x89,%r14b
mov    $0x8d,%r15b
mov    $0xcd,%r12b
mov    $0xce,%r13b
mov    $0x4e,%bl
mov    $0x4,%dl
jmp    11e5 <main+0xc5>
nopw   0x0(%rax,%rax,1)
mov    $0xf6,%sil
mov    $0x76,%dil
mov    $0x72,%r8b
mov    $0x32,%r9b
mov    $0x31,%r10b
mov    $0xb1,%r11b
mov    $0xb9,%bpl
mov    $0x98,%r14b
mov    $0xd8,%r15b
mov    $0xdc,%r12b
mov    $0xec,%r13b
mov    $0xe4,%bl
mov    $0x40,%dl
mov    %dl,0x3(%rax)
mov    %dl,0x4(%rax)
mov    %dl,0x5(%rax)
movw   $0x4444,0x6(%rax)
movb   $0x44,0x8(%rax)
mov    %bl,0x9(%rax)
mov    %bl,0xa(%rax)
mov    %bl,0xb(%rax)
movw   $0xeeee,0xc(%rax)
movb   $0xee,0xe(%rax)
mov    %r13b,0xf(%rax)
mov    %r13b,0x10(%rax)
mov    %r13b,0x11(%rax)
movw   $0xcccc,0x12(%rax)
movb   $0xcc,0x14(%rax)
mov    %r12b,0x15(%rax)
mov    %r12b,0x16(%rax)
mov    %r12b,0x17(%rax)
movb   $0xdd,0x1a(%rax)
movw   $0xdddd,0x18(%rax)
mov    %r15b,0x1b(%rax)
mov    %r15b,0x1c(%rax)
mov    %r15b,0x1d(%rax)
movw   $0x8888,0x1e(%rax)
movb   $0x88,0x20(%rax)
mov    %r14b,0x21(%rax)
mov    %r14b,0x22(%rax)
mov    %r14b,0x23(%rax)
movw   $0x9999,0x24(%rax)
movb   $0x99,0x26(%rax)
mov    %bpl,0x27(%rax)
mov    %bpl,0x28(%rax)
mov    %bpl,0x29(%rax)
movb   $0xbb,0x2c(%rax)
movw   $0xbbbb,0x2a(%rax)
mov    %r11b,0x2d(%rax)
mov    %r11b,0x2e(%rax)
mov    %r11b,0x2f(%rax)
movb   $0x11,0x32(%rax)
movw   $0x1111,0x30(%rax)
mov    %r10b,0x33(%rax)
mov    %r10b,0x34(%rax)
mov    %r10b,0x35(%rax)
movb   $0x33,0x38(%rax)
movw   $0x3333,0x36(%rax)
mov    %r9b,0x39(%rax)
mov    %r9b,0x3a(%rax)
mov    %r9b,0x3b(%rax)
movb   $0x22,0x3e(%rax)
movw   $0x2222,0x3c(%rax)
mov    %r8b,0x3f(%rax)
mov    %r8b,0x40(%rax)
mov    %r8b,0x41(%rax)
movb   $0x77,0x44(%rax)
movw   $0x7777,0x42(%rax)
mov    %dil,0x45(%rax)
mov    %dil,0x46(%rax)
mov    %dil,0x47(%rax)
movb   $0x66,0x4a(%rax)
movw   $0x6666,0x48(%rax)
mov    %sil,0x4b(%rax)
mov    %sil,0x4c(%rax)
mov    %sil,0x4d(%rax)
movw   $0xffff,0x4e(%rax)
jmp    115c <main+0x3c>
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define i32 @main() {
%1 = tail call i32 @xoinit(i32 4)
br label %2
2: ; preds = %0, %81
%3 = phi i32 [ 0, %0 ], [ %82, %81 ]
%4 = tail call i8* @xodirectline(i32 %3)
%5 = add nsw i32 %3, -198
%6 = icmp ult i32 %5, -196
br i1 %6, label %7, label %8
7: ; preds = %2
br label %81
8: ; preds = %2
store i8 -16, i8* %4
%9 = getelementptr i8, i8* %4, i64 1
%10 = bitcast i8* %9 to i16*
store i16 0, i16* %10
%11 = and i32 %3, 1
%12 = icmp eq i32 %11, 0
%13 = getelementptr inbounds i8, i8* %4, i64 3
br i1 %12, label %80, label %14
14: ; preds = %8, %80
%15 = phi i8 [ 4, %80 ], [ 64, %8 ]
%16 = phi i8 [ 78, %80 ], [ -28, %8 ]
%17 = phi i8 [ -50, %80 ], [ -20, %8 ]
%18 = phi i8 [ -51, %80 ], [ -36, %8 ]
%19 = phi i8 [ -115, %80 ], [ -40, %8 ]
%20 = phi i8 [ -119, %80 ], [ -104, %8 ]
%21 = phi i8 [ -101, %80 ], [ -71, %8 ]
%22 = phi i8 [ 27, %80 ], [ -79, %8 ]
%23 = phi i8 [ 19, %80 ], [ 49, %8 ]
%24 = phi i8 [ 35, %80 ], [ 50, %8 ]
%25 = phi i8 [ 39, %80 ], [ 114, %8 ]
%26 = phi i8 [ 103, %80 ], [ 118, %8 ]
%27 = phi i8 [ 111, %80 ], [ -10, %8 ]
store i8 %15, i8* %13
%28 = getelementptr inbounds i8, i8* %4, i64 4
store i8 %15, i8* %28
%29 = getelementptr inbounds i8, i8* %4, i64 5
store i8 %15, i8* %29
%30 = getelementptr i8, i8* %4, i64 6
%31 = getelementptr inbounds i8, i8* %4, i64 9
store i8 %16, i8* %31
%32 = getelementptr inbounds i8, i8* %4, i64 10
store i8 %16, i8* %32
%33 = getelementptr inbounds i8, i8* %4, i64 11
store i8 %16, i8* %33
%34 = getelementptr i8, i8* %4, i64 12
%35 = getelementptr inbounds i8, i8* %4, i64 15
store i8 %17, i8* %35
%36 = getelementptr inbounds i8, i8* %4, i64 16
store i8 %17, i8* %36
%37 = getelementptr inbounds i8, i8* %4, i64 17
store i8 %17, i8* %37
%38 = getelementptr i8, i8* %4, i64 18
%39 = getelementptr inbounds i8, i8* %4, i64 21
store i8 %18, i8* %39
%40 = getelementptr inbounds i8, i8* %4, i64 22
store i8 %18, i8* %40
%41 = getelementptr inbounds i8, i8* %4, i64 23
store i8 %18, i8* %41
%42 = getelementptr i8, i8* %4, i64 24
%43 = getelementptr inbounds i8, i8* %4, i64 27
store i8 %19, i8* %43
%44 = getelementptr inbounds i8, i8* %4, i64 28
store i8 %19, i8* %44
%45 = getelementptr inbounds i8, i8* %4, i64 29
store i8 %19, i8* %45
%46 = getelementptr i8, i8* %4, i64 30
%47 = getelementptr inbounds i8, i8* %4, i64 33
store i8 %20, i8* %47
%48 = getelementptr inbounds i8, i8* %4, i64 34
store i8 %20, i8* %48
%49 = getelementptr inbounds i8, i8* %4, i64 35
store i8 %20, i8* %49
%50 = getelementptr i8, i8* %4, i64 36
%51 = getelementptr inbounds i8, i8* %4, i64 39
store i8 %21, i8* %51
%52 = getelementptr inbounds i8, i8* %4, i64 40
store i8 %21, i8* %52
%53 = getelementptr inbounds i8, i8* %4, i64 41
store i8 %21, i8* %53
%54 = getelementptr i8, i8* %4, i64 42
%55 = getelementptr inbounds i8, i8* %4, i64 45
store i8 %22, i8* %55
%56 = getelementptr inbounds i8, i8* %4, i64 46
store i8 %22, i8* %56
%57 = getelementptr inbounds i8, i8* %4, i64 47
store i8 %22, i8* %57
%58 = getelementptr i8, i8* %4, i64 48
%59 = getelementptr inbounds i8, i8* %4, i64 51
store i8 %23, i8* %59
%60 = getelementptr inbounds i8, i8* %4, i64 52
store i8 %23, i8* %60
%61 = getelementptr inbounds i8, i8* %4, i64 53
store i8 %23, i8* %61
%62 = getelementptr i8, i8* %4, i64 54
%63 = getelementptr inbounds i8, i8* %4, i64 57
store i8 %24, i8* %63
%64 = getelementptr inbounds i8, i8* %4, i64 58
store i8 %24, i8* %64
%65 = getelementptr inbounds i8, i8* %4, i64 59
store i8 %24, i8* %65
%66 = getelementptr i8, i8* %4, i64 60
%67 = getelementptr inbounds i8, i8* %4, i64 63
store i8 %25, i8* %67
%68 = getelementptr inbounds i8, i8* %4, i64 64
store i8 %25, i8* %68
%69 = getelementptr inbounds i8, i8* %4, i64 65
store i8 %25, i8* %69
%70 = getelementptr i8, i8* %4, i64 66
%71 = getelementptr inbounds i8, i8* %4, i64 69
store i8 %26, i8* %71
%72 = getelementptr inbounds i8, i8* %4, i64 70
store i8 %26, i8* %72
%73 = getelementptr inbounds i8, i8* %4, i64 71
store i8 %26, i8* %73
%74 = getelementptr i8, i8* %4, i64 72
%75 = getelementptr inbounds i8, i8* %4, i64 75
store i8 %27, i8* %75
%76 = getelementptr inbounds i8, i8* %4, i64 76
store i8 %27, i8* %76
%77 = getelementptr inbounds i8, i8* %4, i64 77
store i8 %27, i8* %77
%78 = getelementptr i8, i8* %4, i64 78
%79 = bitcast i8* %78 to i16*
store i16 -1, i16* %79
br label %81
80: ; preds = %8
br label %14
81: ; preds = %14, %7
%82 = add nuw nsw i32 %3, 1
%83 = icmp eq i32 %82, 200
br i1 %83, label %84, label %2
84: ; preds = %81
ret i32 0
}