#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 EINVAL;
int mkline(unsigned short int *buf, int field, int active) {
  const unsigned int b = 205;
  unsigned short int *p = buf, sav, eav;
  switch (field) {
  case 1:
    switch (active) {
    case 0:
      eav = 0xb6 << 2;
      sav = 0xab << 2;
      break;
    case 1:
    case 2:
    case 3:
      eav = 0x9d << 2;
      sav = 0x80 << 2;
      break;
    default:
      return -EINVAL;
    }
    break;
  case 2:
    switch (active) {
    case 0:
      eav = 0xf1 << 2;
      sav = 0xec << 2;
      break;
    case 1:
    case 2:
    case 3:
      eav = 0xda << 2;
      sav = 0xc7 << 2;
      break;
    default:
      return -EINVAL;
    }
    break;
  default:
    return -EINVAL;
  }
  *p++ = 0x3ff;
  *p++ = 0x000;
  *p++ = 0x000;
  *p++ = eav;
  while (p < (buf + 272)) {
    *p++ = 0x200;
    *p++ = 0x040;
    *p++ = 0x200;
    *p++ = 0x040;
  }
  *p++ = 0x3ff;
  *p++ = 0x000;
  *p++ = 0x000;
  *p++ = sav;
  switch (active) {
  default:
  case 0:
    while (p < (buf + 1716)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    break;
  case 1:
    while (p < (buf + 276 + b + 1)) {
      *p++ = 512;
      *p++ = 721;
      *p++ = 512;
      *p++ = 721;
    }
    while (p < (buf + 276 + 2 * b + 2)) {
      *p++ = 176;
      *p++ = 646;
      *p++ = 567;
      *p++ = 646;
    }
    while (p < (buf + 276 + 3 * b + 3)) {
      *p++ = 625;
      *p++ = 525;
      *p++ = 176;
      *p++ = 525;
    }
    while (p < (buf + 276 + 4 * b + 2)) {
      *p++ = 289;
      *p++ = 450;
      *p++ = 231;
      *p++ = 450;
    }
    while (p < (buf + 276 + 5 * b + 3)) {
      *p++ = 735;
      *p++ = 335;
      *p++ = 793;
      *p++ = 335;
    }
    while (p < (buf + 276 + 6 * b + 4)) {
      *p++ = 399;
      *p++ = 260;
      *p++ = 848;
      *p++ = 260;
    }
    while (p < (buf + 1716)) {
      *p++ = 848;
      *p++ = 139;
      *p++ = 457;
      *p++ = 139;
    }
    break;
  case 2:
    while (p < (buf + 276 + b + 1)) {
      *p++ = 848;
      *p++ = 139;
      *p++ = 457;
      *p++ = 139;
    }
    while (p < (buf + 276 + 2 * b + 2)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    while (p < (buf + 276 + 3 * b + 3)) {
      *p++ = 735;
      *p++ = 335;
      *p++ = 793;
      *p++ = 335;
    }
    while (p < (buf + 276 + 4 * b + 2)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    while (p < (buf + 276 + 5 * b + 3)) {
      *p++ = 625;
      *p++ = 525;
      *p++ = 176;
      *p++ = 525;
    }
    while (p < (buf + 276 + 6 * b + 4)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    while (p < (buf + 1716)) {
      *p++ = 512;
      *p++ = 721;
      *p++ = 512;
      *p++ = 721;
    }
    break;
  case 3:
    while (p < (buf + 276 + 257)) {
      *p++ = 624;
      *p++ = 231;
      *p++ = 390;
      *p++ = 231;
    }
    while (p < (buf + 276 + 2 * 257)) {
      *p++ = 0x200;
      *p++ = 940;
      *p++ = 0x200;
      *p++ = 940;
    }
    while (p < (buf + 276 + 3 * 257)) {
      *p++ = 684;
      *p++ = 177;
      *p++ = 591;
      *p++ = 177;
    }
    while (p < (buf + 276 + 4 * 257)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    while (p < (buf + 276 + 4 * 257 + 68)) {
      *p++ = 0x200;
      *p++ = 29;
      *p++ = 0x200;
      *p++ = 29;
    }
    while (p < (buf + 276 + 4 * 257 + 2 * 68 + 2)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    while (p < (buf + 276 + 4 * 257 + 3 * 68 + 2)) {
      *p++ = 0x200;
      *p++ = 99;
      *p++ = 0x200;
      *p++ = 99;
    }
    while (p < (buf + 1716)) {
      *p++ = 0x200;
      *p++ = 0x040;
      *p++ = 0x200;
      *p++ = 0x040;
    }
    break;
  }
  return 0;
}


x86 assembly (clang, -O0):
<mkline>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    %edx,-0x18(%rbp)
movl   $0xcd,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x30(%rbp)
sub    $0x1,%eax
je     1142 <mkline+0x42>
jmp    1131 <mkline+0x31>
mov    -0x30(%rbp),%eax
sub    $0x2,%eax
je     11a3 <mkline+0xa3>
jmp    1204 <mkline+0x104>
mov    -0x18(%rbp),%eax
mov    %eax,-0x34(%rbp)
test   %eax,%eax
je     1169 <mkline+0x69>
jmp    1155 <mkline+0x55>
mov    -0x34(%rbp),%eax
add    $0xffffffff,%eax
sub    $0x3,%eax
jb     117a <mkline+0x7a>
jmp    118b <mkline+0x8b>
movw   $0x2d8,-0x2c(%rbp)
movw   $0x2ac,-0x2a(%rbp)
jmp    119e <mkline+0x9e>
movw   $0x274,-0x2c(%rbp)
movw   $0x200,-0x2a(%rbp)
jmp    119e <mkline+0x9e>
xor    %eax,%eax
mov    0x2e4c(%rip),%rcx
sub    (%rcx),%eax
mov    %eax,-0x4(%rbp)
jmp    1e7d <mkline+0xd7d>
jmp    1217 <mkline+0x117>
mov    -0x18(%rbp),%eax
mov    %eax,-0x38(%rbp)
test   %eax,%eax
je     11ca <mkline+0xca>
jmp    11b6 <mkline+0xb6>
mov    -0x38(%rbp),%eax
add    $0xffffffff,%eax
sub    $0x3,%eax
jb     11db <mkline+0xdb>
jmp    11ec <mkline+0xec>
movw   $0x3c4,-0x2c(%rbp)
movw   $0x3b0,-0x2a(%rbp)
jmp    11ff <mkline+0xff>
movw   $0x368,-0x2c(%rbp)
movw   $0x31c,-0x2a(%rbp)
jmp    11ff <mkline+0xff>
xor    %eax,%eax
mov    0x2deb(%rip),%rcx
sub    (%rcx),%eax
mov    %eax,-0x4(%rbp)
jmp    1e7d <mkline+0xd7d>
jmp    1217 <mkline+0x117>
xor    %eax,%eax
mov    0x2dd3(%rip),%rcx
sub    (%rcx),%eax
mov    %eax,-0x4(%rbp)
jmp    1e7d <mkline+0xd7d>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x3ff,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x0,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x0,(%rax)
mov    -0x2c(%rbp),%cx
mov    -0x28(%rbp),%rax
mov    %rax,%rdx
add    $0x2,%rdx
mov    %rdx,-0x28(%rbp)
mov    %cx,(%rax)
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x220,%rcx
cmp    %rcx,%rax
jae    12d6 <mkline+0x1d6>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    1269 <mkline+0x169>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x3ff,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x0,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x0,(%rax)
mov    -0x2a(%rbp),%cx
mov    -0x28(%rbp),%rax
mov    %rax,%rdx
add    $0x2,%rdx
mov    %rdx,-0x28(%rbp)
mov    %cx,(%rax)
mov    -0x18(%rbp),%eax
mov    %rax,-0x40(%rbp)
sub    $0x3,%rax
ja     134d <mkline+0x24d>
mov    -0x40(%rbp),%rax
lea    0xcbc(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
jmp    1352 <mkline+0x252>
jmp    1357 <mkline+0x257>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0xd68,%rcx
cmp    %rcx,%rax
jae    13c4 <mkline+0x2c4>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    1357 <mkline+0x257>
jmp    1e76 <mkline+0xd76>
jmp    13ce <mkline+0x2ce>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x19a,%rcx
add    $0x2,%rcx
cmp    %rcx,%rax
jae    1446 <mkline+0x346>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2d1,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2d1,(%rax)
jmp    13ce <mkline+0x2ce>
jmp    144b <mkline+0x34b>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x334,%rcx
add    $0x4,%rcx
cmp    %rcx,%rax
jae    14c3 <mkline+0x3c3>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xb0,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x286,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x237,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x286,(%rax)
jmp    144b <mkline+0x34b>
jmp    14c8 <mkline+0x3c8>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x4ce,%rcx
add    $0x6,%rcx
cmp    %rcx,%rax
jae    1540 <mkline+0x440>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x271,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x20d,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xb0,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x20d,(%rax)
jmp    14c8 <mkline+0x3c8>
jmp    1545 <mkline+0x445>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x668,%rcx
add    $0x4,%rcx
cmp    %rcx,%rax
jae    15bd <mkline+0x4bd>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x121,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x1c2,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xe7,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x1c2,(%rax)
jmp    1545 <mkline+0x445>
jmp    15c2 <mkline+0x4c2>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x802,%rcx
add    $0x6,%rcx
cmp    %rcx,%rax
jae    163a <mkline+0x53a>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2df,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x14f,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x319,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x14f,(%rax)
jmp    15c2 <mkline+0x4c2>
jmp    163f <mkline+0x53f>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x99c,%rcx
add    $0x8,%rcx
cmp    %rcx,%rax
jae    16b7 <mkline+0x5b7>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x18f,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x104,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x350,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x104,(%rax)
jmp    163f <mkline+0x53f>
jmp    16bc <mkline+0x5bc>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0xd68,%rcx
cmp    %rcx,%rax
jae    1729 <mkline+0x629>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x350,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x8b,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x1c9,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x8b,(%rax)
jmp    16bc <mkline+0x5bc>
jmp    1e76 <mkline+0xd76>
jmp    1733 <mkline+0x633>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x19a,%rcx
add    $0x2,%rcx
cmp    %rcx,%rax
jae    17ab <mkline+0x6ab>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x350,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x8b,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x1c9,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x8b,(%rax)
jmp    1733 <mkline+0x633>
jmp    17b0 <mkline+0x6b0>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x334,%rcx
add    $0x4,%rcx
cmp    %rcx,%rax
jae    1828 <mkline+0x728>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    17b0 <mkline+0x6b0>
jmp    182d <mkline+0x72d>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x4ce,%rcx
add    $0x6,%rcx
cmp    %rcx,%rax
jae    18a5 <mkline+0x7a5>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2df,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x14f,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x319,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x14f,(%rax)
jmp    182d <mkline+0x72d>
jmp    18aa <mkline+0x7aa>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x668,%rcx
add    $0x4,%rcx
cmp    %rcx,%rax
jae    1922 <mkline+0x822>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    18aa <mkline+0x7aa>
jmp    1927 <mkline+0x827>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x802,%rcx
add    $0x6,%rcx
cmp    %rcx,%rax
jae    199f <mkline+0x89f>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x271,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x20d,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xb0,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x20d,(%rax)
jmp    1927 <mkline+0x827>
jmp    19a4 <mkline+0x8a4>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x99c,%rcx
add    $0x8,%rcx
cmp    %rcx,%rax
jae    1a1c <mkline+0x91c>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    19a4 <mkline+0x8a4>
jmp    1a21 <mkline+0x921>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0xd68,%rcx
cmp    %rcx,%rax
jae    1a8e <mkline+0x98e>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2d1,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2d1,(%rax)
jmp    1a21 <mkline+0x921>
jmp    1e76 <mkline+0xd76>
jmp    1a98 <mkline+0x998>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x202,%rcx
cmp    %rcx,%rax
jae    1b0c <mkline+0xa0c>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x270,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xe7,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x186,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xe7,(%rax)
jmp    1a98 <mkline+0x998>
jmp    1b11 <mkline+0xa11>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x404,%rcx
cmp    %rcx,%rax
jae    1b85 <mkline+0xa85>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x3ac,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x3ac,(%rax)
jmp    1b11 <mkline+0xa11>
jmp    1b8a <mkline+0xa8a>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x606,%rcx
cmp    %rcx,%rax
jae    1bfe <mkline+0xafe>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x2ac,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xb1,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x24f,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0xb1,(%rax)
jmp    1b8a <mkline+0xa8a>
jmp    1c03 <mkline+0xb03>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x808,%rcx
cmp    %rcx,%rax
jae    1c77 <mkline+0xb77>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    1c03 <mkline+0xb03>
jmp    1c7c <mkline+0xb7c>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x808,%rcx
add    $0x88,%rcx
cmp    %rcx,%rax
jae    1cf7 <mkline+0xbf7>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x1d,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x1d,(%rax)
jmp    1c7c <mkline+0xb7c>
jmp    1cfc <mkline+0xbfc>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x808,%rcx
add    $0x110,%rcx
add    $0x4,%rcx
cmp    %rcx,%rax
jae    1d7b <mkline+0xc7b>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    1cfc <mkline+0xbfc>
jmp    1d80 <mkline+0xc80>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0x228,%rcx
add    $0x808,%rcx
add    $0x198,%rcx
add    $0x4,%rcx
cmp    %rcx,%rax
jae    1dff <mkline+0xcff>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x63,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x63,(%rax)
jmp    1d80 <mkline+0xc80>
jmp    1e04 <mkline+0xd04>
mov    -0x28(%rbp),%rax
mov    -0x10(%rbp),%rcx
add    $0xd68,%rcx
cmp    %rcx,%rax
jae    1e71 <mkline+0xd71>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x200,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x28(%rbp)
movw   $0x40,(%rax)
jmp    1e04 <mkline+0xd04>
jmp    1e76 <mkline+0xd76>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<mkline>:
cmp    $0x2,%esi
je     112d <mkline+0x2d>
cmp    $0x1,%esi
jne    1199 <mkline+0x99>
cmp    $0x4,%edx
jae    1199 <mkline+0x99>
movabs $0x2740274027402d8,%rax
02 74 02
movabs $0x2000200020002ac,%rsi
jmp    1146 <mkline+0x46>
cmp    $0x4,%edx
jae    1199 <mkline+0x99>
movabs $0x3680368036803c4,%rax
03 68 03
movabs $0x31c031c031c03b0,%rsi
03 1c 03
mov    %edx,%ecx
shl    $0x4,%ecx
shr    %cl,%rsi
shr    %cl,%rax
movl   $0x3ff,(%rdi)
movw   $0x0,0x4(%rdi)
mov    %ax,0x6(%rdi)
mov    $0x4,%ecx
movabs $0x40020000400200,%rax
mov    %rax,(%rdi,%rcx,2)
cmp    $0x10b,%rcx
ja     11a5 <mkline+0xa5>
movw   $0x200,0x8(%rdi,%rcx,2)
movl   $0x2000040,0xa(%rdi,%rcx,2)
02
movw   $0x40,0xe(%rdi,%rcx,2)
add    $0x8,%rcx
jmp    1170 <mkline+0x70>
mov    0x2e40(%rip),%rcx
xor    %eax,%eax
sub    (%rcx),%eax
ret
movw   $0x3ff,0x8(%rdi,%rcx,2)
movl   $0x0,0x222(%rdi)
mov    %si,0x226(%rdi)
cmp    $0x1,%edx
je     1223 <mkline+0x123>
cmp    $0x3,%edx
je     1283 <mkline+0x183>
cmp    $0x2,%edx
jne    12bc <mkline+0x1bc>
mov    $0x10c,%ecx
movaps 0xe20(%rip),%xmm0
movups %xmm0,0x10(%rdi,%rcx,2)
add    $0x8,%rcx
cmp    $0x1da,%rcx
jb     11e0 <mkline+0xe0>
add    $0x3ee,%rdi
mov    $0x1e0,%ecx
xchg   %ax,%ax
lea    0x4(%rcx),%rdx
mov    %rax,-0x26(%rdi)
cmp    $0x2ac,%rdx
jae    12e4 <mkline+0x1e4>
mov    %rax,-0x1e(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
jmp    1200 <mkline+0x100>
mov    $0x10c,%eax
movaps 0xe01(%rip),%xmm0
nop
movups %xmm0,0x10(%rdi,%rax,2)
add    $0x8,%rax
cmp    $0x1da,%rax
jb     1230 <mkline+0x130>
add    $0x3ee,%rdi
mov    $0x1e0,%eax
movabs $0x2860237028600b0,%rcx
02 86 02
nopw   0x0(%rax,%rax,1)
lea    0x4(%rax),%rdx
mov    %rcx,-0x26(%rdi)
cmp    $0x2ac,%rdx
jae    132f <mkline+0x22f>
mov    %rcx,-0x1e(%rdi)
add    $0x10,%rdi
add    $0x8,%rax
jmp    1260 <mkline+0x160>
mov    $0x114,%ecx
movabs $0xe7018600e70270,%rdx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %rdx,(%rdi,%rcx,2)
cmp    $0x211,%rcx
jae    138e <mkline+0x28e>
mov    %rdx,0x8(%rdi,%rcx,2)
add    $0x8,%rcx
jmp    12a0 <mkline+0x1a0>
mov    $0x10c,%eax
movaps 0xd58(%rip),%xmm0
nopl   0x0(%rax,%rax,1)
movups %xmm0,0x10(%rdi,%rax,2)
add    $0x8,%rax
cmp    $0x6ac,%rax
jb     12d0 <mkline+0x1d0>
xor    %eax,%eax
ret
movaps 0xd25(%rip),%xmm0
nopl   0x0(%rax,%rax,1)
movups %xmm0,-0x1e(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
cmp    $0x376,%rcx
jb     12f0 <mkline+0x1f0>
add    $0x8,%rcx
nopl   0x0(%rax)
mov    %rax,-0x1e(%rdi)
cmp    $0x446,%rcx
jae    147b <mkline+0x37b>
mov    %rax,-0x16(%rdi)
add    $0x8,%rcx
add    $0x10,%rdi
jmp    1310 <mkline+0x210>
movaps 0xd0a(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
movups %xmm0,-0x1e(%rdi)
add    $0x10,%rdi
add    $0x8,%rax
cmp    $0x376,%rax
jb     1340 <mkline+0x240>
add    $0x8,%rax
movabs $0x1c200e701c20121,%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %rcx,-0x1e(%rdi)
cmp    $0x446,%rax
jae    14af <mkline+0x3af>
mov    %rcx,-0x16(%rdi)
add    $0x8,%rax
add    $0x10,%rdi
jmp    1370 <mkline+0x270>
add    $0x44e,%rdi
mov    $0x214,%ecx
movaps 0xcbf(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movups %xmm0,-0x1e(%rdi)
add    $0x8,%rcx
add    $0x10,%rdi
cmp    $0x312,%rcx
jb     13b0 <mkline+0x2b0>
movaps 0xca4(%rip),%xmm0
nopl   0x0(%rax)
movups %xmm0,-0x1e(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
cmp    $0x413,%rcx
jb     13d0 <mkline+0x2d0>
movaps 0xc34(%rip),%xmm0
nopl   0x0(%rax)
movups %xmm0,-0x1e(%rdi)
add    $0x8,%rcx
add    $0x10,%rdi
cmp    $0x514,%rcx
jb     13f0 <mkline+0x2f0>
movabs $0x1d0200001d0200,%rdx
nop
lea    0x4(%rcx),%rsi
mov    %rdx,-0x1e(%rdi)
cmp    $0x558,%rsi
jae    1430 <mkline+0x330>
mov    %rdx,-0x16(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
jmp    1410 <mkline+0x310>
nop
movups %xmm0,-0x16(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
cmp    $0x59a,%rcx
jb     1430 <mkline+0x330>
add    $0x8,%rcx
movabs $0x63020000630200,%rdx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %rdx,-0x16(%rdi)
cmp    $0x5e2,%rcx
jae    14e3 <mkline+0x3e3>
mov    %rdx,-0xe(%rdi)
add    $0x8,%rcx
add    $0x10,%rdi
jmp    1460 <mkline+0x360>
movabs $0x20d00b0020d0271,%rax
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x4(%rcx),%rdx
mov    %rax,-0x16(%rdi)
cmp    $0x514,%rdx
jae    150f <mkline+0x40f>
mov    %rax,-0xe(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
jmp    1490 <mkline+0x390>
movabs $0x14f0319014f02df,%rcx
03 4f 01
nopl   0x0(%rax)
lea    0x4(%rax),%rdx
mov    %rcx,-0x16(%rdi)
cmp    $0x514,%rdx
jae    156f <mkline+0x46f>
mov    %rcx,-0xe(%rdi)
add    $0x10,%rdi
add    $0x8,%rax
jmp    14c0 <mkline+0x3c0>
add    $0x4,%rcx
nopw   0x0(%rax,%rax,1)
mov    %rax,-0xe(%rdi)
cmp    $0x6af,%rcx
ja     12e1 <mkline+0x1e1>
mov    %rax,-0x6(%rdi)
add    $0x8,%rcx
add    $0x10,%rdi
jmp    14f0 <mkline+0x3f0>
movaps 0xb0a(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
movups %xmm0,-0xe(%rdi)
add    $0x10,%rdi
add    $0x8,%rcx
cmp    $0x5de,%rcx
jb     1520 <mkline+0x420>
add    $0x8,%rcx
movabs $0x2d1020002d10200,%rax
02 d1 02
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    %rax,-0xe(%rdi)
cmp    $0x6af,%rcx
ja     12e1 <mkline+0x1e1>
mov    %rax,-0x6(%rdi)
add    $0x8,%rcx
add    $0x10,%rdi
jmp    1550 <mkline+0x450>
movaps 0xada(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
movups %xmm0,-0xe(%rdi)
add    $0x10,%rdi
add    $0x8,%rax
cmp    $0x5de,%rax
jb     1580 <mkline+0x480>
add    $0x8,%rax
movabs $0x8b01c9008b0350,%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %rcx,-0xe(%rdi)
cmp    $0x6af,%rax
ja     12e1 <mkline+0x1e1>
mov    %rcx,-0x6(%rdi)
add    $0x8,%rax
add    $0x10,%rdi
jmp    15b0 <mkline+0x4b0>

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

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