void draw_symbol(x, y, ch) int x, y;
char ch;
{
  char icon[2][4], (*iconrow)[4] = icon;
  switch (ch) {
  case ' ':
    strcpy(*iconrow++, "   ");
    strcpy(*iconrow, "   ");
    break;
  case '#':
    strcpy(*iconrow++, "###");
    strcpy(*iconrow, "###");
    break;
  case '<':
    strcpy(*iconrow++, "<--");
    strcpy(*iconrow, "<--");
    break;
  case '>':
    strcpy(*iconrow++, "-->");
    strcpy(*iconrow, "-->");
    break;
  case 'O':
    strcpy(*iconrow++, "/^\\");
    strcpy(*iconrow, "\\_/");
    break;
  case ':':
    strcpy(*iconrow++, ". .");
    strcpy(*iconrow, " . ");
    break;
  case '/':
    strcpy(*iconrow++, " _/");
    strcpy(*iconrow, "/  ");
    break;
  case '\\':
    strcpy(*iconrow++, "\\_ ");
    strcpy(*iconrow, "  \\");
    break;
  case '*':
    strcpy(*iconrow++, "/$\\");
    strcpy(*iconrow, "\\$/");
    break;
  case '=':
    strcpy(*iconrow++, "=-=");
    strcpy(*iconrow, "-=-");
    break;
  case '@':
    strcpy(*iconrow++, " o ");
    strcpy(*iconrow, "<|>");
    break;
  case '~':
    strcpy(*iconrow++, "\\|/");
    strcpy(*iconrow, "/|\\");
    break;
  case 't':
  case 'T':
    strcpy(*iconrow++, "(*)");
    strcpy(*iconrow, "(*)");
    break;
  case 'X':
    strcpy(*iconrow++, "Way");
    strcpy(*iconrow, "Out");
    break;
  case '!':
    strcpy(*iconrow++, " I ");
    strcpy(*iconrow, " o ");
    break;
  case 'M':
    strcpy(*iconrow++, "}o{");
    strcpy(*iconrow, "/^\\");
    break;
  case 'S':
    strcpy(*iconrow++, "-o-");
    strcpy(*iconrow, "/*\\");
    break;
  case '^':
    strcpy(*iconrow++, "/~\\");
    strcpy(*iconrow, "\\_X");
    break;
  case 'C':
    strcpy(*iconrow++, "   ");
    strcpy(*iconrow, "<O>");
    break;
  case '+':
    strcpy(*iconrow++, "TTT");
    strcpy(*iconrow, "III");
    break;
  case '_':
    strcpy(*iconrow++, "_|_");
    strcpy(*iconrow, "_|_");
    break;
  case 'B':
    strcpy(*iconrow++, "/\\*");
    strcpy(*iconrow, "\\/ ");
    break;
  case '%':
    strcpy(*iconrow++, "Ba\\");
    strcpy(*iconrow, "\\ng");
    break;
  default:
    strcpy(*iconrow++, "OoO");
    strcpy(*iconrow, "oOo");
    break;
  };
  move(y + 1, x + 1);
  iconrow--;
  addstr(*iconrow++);
  move(y + 2, x + 1);
  addstr(*iconrow);
}


x86 assembly (clang, -O0):
<draw_symbol>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %dl,%al
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %al,-0x9(%rbp)
lea    -0x11(%rbp),%rax
mov    %rax,-0x20(%rbp)
movsbl -0x9(%rbp),%eax
add    $0xffffffe0,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x5e,%eax
ja     15c5 <draw_symbol+0x495>
mov    -0x28(%rbp),%rax
lea    0xe94(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xff1(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xfe1(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xfc5(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xfb5(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xf99(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xf89(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xf6d(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xf5d(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xf41(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xf35(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xf19(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xf0d(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xef1(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xee5(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xec9(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xebd(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xea1(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xe95(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xe79(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xe6d(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xe51(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xe45(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xe29(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xe1d(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xe01(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xdf1(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xdd5(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xdc9(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xdad(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xd81(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xd81(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xd21(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xd55(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xd49(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xd2d(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xd21(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xc91(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xcf5(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xcd9(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xccd(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xcb1(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xca1(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xc85(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xc79(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xc5d(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xc51(%rip),%rsi
call   1030 <strcpy@plt>
jmp    15f0 <draw_symbol+0x4c0>
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
lea    0xc35(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x20(%rbp),%rdi
lea    0xc29(%rip),%rsi
call   1030 <strcpy@plt>
mov    -0x8(%rbp),%edi
add    $0x1,%edi
mov    -0x4(%rbp),%esi
add    $0x1,%esi
mov    $0x0,%al
call   1050 <move@plt>
mov    -0x20(%rbp),%rax
add    $0xfffffffffffffffc,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rdi
mov    %rdi,%rax
add    $0x4,%rax
mov    %rax,-0x20(%rbp)
mov    $0x0,%al
call   1040 <addstr@plt>
mov    -0x8(%rbp),%edi
add    $0x2,%edi
mov    -0x4(%rbp),%esi
add    $0x1,%esi
mov    $0x0,%al
call   1050 <move@plt>
mov    -0x20(%rbp),%rdi
mov    $0x0,%al
call   1040 <addstr@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<draw_symbol>:
push   %r14
push   %rbx
push   %rax
mov    %esi,%r14d
mov    %edi,%ebx
movsbl %dl,%eax
add    $0xffffffe0,%eax
cmp    $0x5e,%eax
ja     1186 <draw_symbol+0x66>
lea    0xec5(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x4(%rsp),%rax
movl   $0x292a28,(%rsp)
mov    $0x292a28,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x202020,(%rsp)
mov    $0x202020,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x204920,(%rsp)
mov    $0x206f20,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x4f6f4f,(%rsp)
mov    $0x6f4f6f,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x232323,(%rsp)
mov    $0x232323,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x5c6142,(%rsp)
mov    $0x676e5c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x5c242f,(%rsp)
mov    $0x2f245c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x545454,(%rsp)
mov    $0x494949,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x2f5f20,(%rsp)
mov    $0x20202f,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x2e202e,(%rsp)
mov    $0x202e20,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x2d2d3c,(%rsp)
mov    $0x2d2d3c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x3d2d3d,(%rsp)
mov    $0x2d3d2d,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x3e2d2d,(%rsp)
mov    $0x3e2d2d,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x206f20,(%rsp)
mov    $0x3e7c3c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x2a5c2f,(%rsp)
mov    $0x202f5c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x202020,(%rsp)
mov    $0x3e4f3c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x7b6f7d,(%rsp)
mov    $0x5c5e2f,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x5c5e2f,(%rsp)
mov    $0x2f5f5c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x2d6f2d,(%rsp)
mov    $0x5c2a2f,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x796157,(%rsp)
mov    $0x74754f,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x205f5c,(%rsp)
mov    $0x5c2020,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x5c7e2f,(%rsp)
mov    $0x585f5c,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x5f7c5f,(%rsp)
mov    $0x5f7c5f,%ecx
jmp    133d <draw_symbol+0x21d>
lea    0x4(%rsp),%rax
movl   $0x2f7c5c,(%rsp)
mov    $0x5c7c2f,%ecx
mov    %ecx,(%rax)
lea    0x1(%r14),%edi
add    $0x1,%ebx
mov    %ebx,%esi
xor    %eax,%eax
call   1040 <move@plt>
mov    %rsp,%rdi
xor    %eax,%eax
call   1030 <addstr@plt>
add    $0x2,%r14d
mov    %r14d,%edi
mov    %ebx,%esi
xor    %eax,%eax
call   1040 <move@plt>
lea    0x4(%rsp),%rdi
xor    %eax,%eax
call   1030 <addstr@plt>
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@.str = [4 x i8] c" \00"
@.str.1 = [4 x i8] c"###\00"
@.str.2 = [4 x i8] c"<--\00"
@.str.3 = [4 x i8] c"-->\00"
@.str.4 = [4 x i8] c"/^\\\00"
@.str.5 = [4 x i8] c"\\_/\00"
@.str.6 = [4 x i8] c". .\00"
@.str.7 = [4 x i8] c" . \00"
@.str.8 = [4 x i8] c" _/\00"
@.str.9 = [4 x i8] c"/ \00"
@.str.10 = [4 x i8] c"\\_ \00"
@.str.11 = [4 x i8] c" \\\00"
@.str.12 = [4 x i8] c"/$\\\00"
@.str.13 = [4 x i8] c"\\$/\00"
@.str.14 = [4 x i8] c"=-=\00"
@.str.15 = [4 x i8] c"-=-\00"
@.str.16 = [4 x i8] c" o \00"
@.str.17 = [4 x i8] c"<|>\00"
@.str.18 = [4 x i8] c"\\|/\00"
@.str.19 = [4 x i8] c"/|\\\00"
@.str.20 = [4 x i8] c"(*)\00"
@.str.21 = [4 x i8] c"Way\00"
@.str.22 = [4 x i8] c"Out\00"
@.str.23 = [4 x i8] c" I \00"
@.str.24 = [4 x i8] c"}o{\00"
@.str.25 = [4 x i8] c"-o-\00"
@.str.26 = [4 x i8] c"/*\\\00"
@.str.27 = [4 x i8] c"/~\\\00"
@.str.28 = [4 x i8] c"\\_X\00"
@.str.29 = [4 x i8] c"<O>\00"
@.str.30 = [4 x i8] c"TTT\00"
@.str.31 = [4 x i8] c"III\00"
@.str.32 = [4 x i8] c"_|_\00"
@.str.33 = [4 x i8] c"/\\*\00"
@.str.34 = [4 x i8] c"\\/ \00"
@.str.35 = [4 x i8] c"Ba\\\00"
@.str.36 = [4 x i8] c"\\ng\00"
@.str.37 = [4 x i8] c"OoO\00"
@.str.38 = [4 x i8] c"oOo\00"
define void @draw_symbol(i32 %0, i32 %1, i32 %2) {
%4 = alloca i32
%5 = alloca i32
%6 = alloca i8
%7 = alloca [2 x [4 x i8]]
%8 = alloca [4 x i8]*
%9 = trunc i32 %2 to i8
store i32 %0, i32* %4
store i32 %1, i32* %5
store i8 %9, i8* %6
%10 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %7, i64 0, i64 0
store [4 x i8]* %10, [4 x i8]** %8
%11 = load i8, i8* %6
%12 = sext i8 %11 to i32
switch i32 %12, label %197 [
i32 32, label %13
i32 35, label %21
i32 60, label %29
i32 62, label %37
i32 79, label %45
i32 58, label %53
i32 47, label %61
i32 92, label %69
i32 42, label %77
i32 61, label %85
i32 64, label %93
i32 126, label %101
i32 116, label %109
i32 84, label %109
i32 88, label %117
i32 33, label %125
i32 77, label %133
i32 83, label %141
i32 94, label %149
i32 67, label %157
i32 43, label %165
i32 95, label %173
i32 66, label %181
i32 37, label %189
]
13: ; preds = %3
%14 = load [4 x i8]*, [4 x i8]** %8
%15 = getelementptr inbounds [4 x i8], [4 x i8]* %14, i32 1
store [4 x i8]* %15, [4 x i8]** %8
%16 = getelementptr inbounds [4 x i8], [4 x i8]* %14, i64 0, i64 0
%17 = call i8* @strcpy(i8* %16, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%18 = load [4 x i8]*, [4 x i8]** %8
%19 = getelementptr inbounds [4 x i8], [4 x i8]* %18, i64 0, i64 0
%20 = call i8* @strcpy(i8* %19, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %205
21: ; preds = %3
%22 = load [4 x i8]*, [4 x i8]** %8
%23 = getelementptr inbounds [4 x i8], [4 x i8]* %22, i32 1
store [4 x i8]* %23, [4 x i8]** %8
%24 = getelementptr inbounds [4 x i8], [4 x i8]* %22, i64 0, i64 0
%25 = call i8* @strcpy(i8* %24, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%26 = load [4 x i8]*, [4 x i8]** %8
%27 = getelementptr inbounds [4 x i8], [4 x i8]* %26, i64 0, i64 0
%28 = call i8* @strcpy(i8* %27, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
br label %205
29: ; preds = %3
%30 = load [4 x i8]*, [4 x i8]** %8
%31 = getelementptr inbounds [4 x i8], [4 x i8]* %30, i32 1
store [4 x i8]* %31, [4 x i8]** %8
%32 = getelementptr inbounds [4 x i8], [4 x i8]* %30, i64 0, i64 0
%33 = call i8* @strcpy(i8* %32, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%34 = load [4 x i8]*, [4 x i8]** %8
%35 = getelementptr inbounds [4 x i8], [4 x i8]* %34, i64 0, i64 0
%36 = call i8* @strcpy(i8* %35, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
br label %205
37: ; preds = %3
%38 = load [4 x i8]*, [4 x i8]** %8
%39 = getelementptr inbounds [4 x i8], [4 x i8]* %38, i32 1
store [4 x i8]* %39, [4 x i8]** %8
%40 = getelementptr inbounds [4 x i8], [4 x i8]* %38, i64 0, i64 0
%41 = call i8* @strcpy(i8* %40, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
%42 = load [4 x i8]*, [4 x i8]** %8
%43 = getelementptr inbounds [4 x i8], [4 x i8]* %42, i64 0, i64 0
%44 = call i8* @strcpy(i8* %43, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0))
br label %205
45: ; preds = %3
%46 = load [4 x i8]*, [4 x i8]** %8
%47 = getelementptr inbounds [4 x i8], [4 x i8]* %46, i32 1
store [4 x i8]* %47, [4 x i8]** %8
%48 = getelementptr inbounds [4 x i8], [4 x i8]* %46, i64 0, i64 0
%49 = call i8* @strcpy(i8* %48, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
%50 = load [4 x i8]*, [4 x i8]** %8
%51 = getelementptr inbounds [4 x i8], [4 x i8]* %50, i64 0, i64 0
%52 = call i8* @strcpy(i8* %51, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0))
br label %205
53: ; preds = %3
%54 = load [4 x i8]*, [4 x i8]** %8
%55 = getelementptr inbounds [4 x i8], [4 x i8]* %54, i32 1
store [4 x i8]* %55, [4 x i8]** %8
%56 = getelementptr inbounds [4 x i8], [4 x i8]* %54, i64 0, i64 0
%57 = call i8* @strcpy(i8* %56, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%58 = load [4 x i8]*, [4 x i8]** %8
%59 = getelementptr inbounds [4 x i8], [4 x i8]* %58, i64 0, i64 0
%60 = call i8* @strcpy(i8* %59, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
br label %205
61: ; preds = %3
%62 = load [4 x i8]*, [4 x i8]** %8
%63 = getelementptr inbounds [4 x i8], [4 x i8]* %62, i32 1
store [4 x i8]* %63, [4 x i8]** %8
%64 = getelementptr inbounds [4 x i8], [4 x i8]* %62, i64 0, i64 0
%65 = call i8* @strcpy(i8* %64, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%66 = load [4 x i8]*, [4 x i8]** %8
%67 = getelementptr inbounds [4 x i8], [4 x i8]* %66, i64 0, i64 0
%68 = call i8* @strcpy(i8* %67, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0))
br label %205
69: ; preds = %3
%70 = load [4 x i8]*, [4 x i8]** %8
%71 = getelementptr inbounds [4 x i8], [4 x i8]* %70, i32 1
store [4 x i8]* %71, [4 x i8]** %8
%72 = getelementptr inbounds [4 x i8], [4 x i8]* %70, i64 0, i64 0
%73 = call i8* @strcpy(i8* %72, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0))
%74 = load [4 x i8]*, [4 x i8]** %8
%75 = getelementptr inbounds [4 x i8], [4 x i8]* %74, i64 0, i64 0
%76 = call i8* @strcpy(i8* %75, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
br label %205
77: ; preds = %3
%78 = load [4 x i8]*, [4 x i8]** %8
%79 = getelementptr inbounds [4 x i8], [4 x i8]* %78, i32 1
store [4 x i8]* %79, [4 x i8]** %8
%80 = getelementptr inbounds [4 x i8], [4 x i8]* %78, i64 0, i64 0
%81 = call i8* @strcpy(i8* %80, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%82 = load [4 x i8]*, [4 x i8]** %8
%83 = getelementptr inbounds [4 x i8], [4 x i8]* %82, i64 0, i64 0
%84 = call i8* @strcpy(i8* %83, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
br label %205
85: ; preds = %3
%86 = load [4 x i8]*, [4 x i8]** %8
%87 = getelementptr inbounds [4 x i8], [4 x i8]* %86, i32 1
store [4 x i8]* %87, [4 x i8]** %8
%88 = getelementptr inbounds [4 x i8], [4 x i8]* %86, i64 0, i64 0
%89 = call i8* @strcpy(i8* %88, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.14, i64 0, i64 0))
%90 = load [4 x i8]*, [4 x i8]** %8
%91 = getelementptr inbounds [4 x i8], [4 x i8]* %90, i64 0, i64 0
%92 = call i8* @strcpy(i8* %91, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
br label %205
93: ; preds = %3
%94 = load [4 x i8]*, [4 x i8]** %8
%95 = getelementptr inbounds [4 x i8], [4 x i8]* %94, i32 1
store [4 x i8]* %95, [4 x i8]** %8
%96 = getelementptr inbounds [4 x i8], [4 x i8]* %94, i64 0, i64 0
%97 = call i8* @strcpy(i8* %96, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%98 = load [4 x i8]*, [4 x i8]** %8
%99 = getelementptr inbounds [4 x i8], [4 x i8]* %98, i64 0, i64 0
%100 = call i8* @strcpy(i8* %99, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
br label %205
101: ; preds = %3
%102 = load [4 x i8]*, [4 x i8]** %8
%103 = getelementptr inbounds [4 x i8], [4 x i8]* %102, i32 1
store [4 x i8]* %103, [4 x i8]** %8
%104 = getelementptr inbounds [4 x i8], [4 x i8]* %102, i64 0, i64 0
%105 = call i8* @strcpy(i8* %104, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%106 = load [4 x i8]*, [4 x i8]** %8
%107 = getelementptr inbounds [4 x i8], [4 x i8]* %106, i64 0, i64 0
%108 = call i8* @strcpy(i8* %107, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
br label %205
109: ; preds = %3, %3
%110 = load [4 x i8]*, [4 x i8]** %8
%111 = getelementptr inbounds [4 x i8], [4 x i8]* %110, i32 1
store [4 x i8]* %111, [4 x i8]** %8
%112 = getelementptr inbounds [4 x i8], [4 x i8]* %110, i64 0, i64 0
%113 = call i8* @strcpy(i8* %112, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%114 = load [4 x i8]*, [4 x i8]** %8
%115 = getelementptr inbounds [4 x i8], [4 x i8]* %114, i64 0, i64 0
%116 = call i8* @strcpy(i8* %115, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
br label %205
117: ; preds = %3
%118 = load [4 x i8]*, [4 x i8]** %8
%119 = getelementptr inbounds [4 x i8], [4 x i8]* %118, i32 1
store [4 x i8]* %119, [4 x i8]** %8
%120 = getelementptr inbounds [4 x i8], [4 x i8]* %118, i64 0, i64 0
%121 = call i8* @strcpy(i8* %120, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0))
%122 = load [4 x i8]*, [4 x i8]** %8
%123 = getelementptr inbounds [4 x i8], [4 x i8]* %122, i64 0, i64 0
%124 = call i8* @strcpy(i8* %123, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
br label %205
125: ; preds = %3
%126 = load [4 x i8]*, [4 x i8]** %8
%127 = getelementptr inbounds [4 x i8], [4 x i8]* %126, i32 1
store [4 x i8]* %127, [4 x i8]** %8
%128 = getelementptr inbounds [4 x i8], [4 x i8]* %126, i64 0, i64 0
%129 = call i8* @strcpy(i8* %128, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%130 = load [4 x i8]*, [4 x i8]** %8
%131 = getelementptr inbounds [4 x i8], [4 x i8]* %130, i64 0, i64 0
%132 = call i8* @strcpy(i8* %131, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
br label %205
133: ; preds = %3
%134 = load [4 x i8]*, [4 x i8]** %8
%135 = getelementptr inbounds [4 x i8], [4 x i8]* %134, i32 1
store [4 x i8]* %135, [4 x i8]** %8
%136 = getelementptr inbounds [4 x i8], [4 x i8]* %134, i64 0, i64 0
%137 = call i8* @strcpy(i8* %136, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%138 = load [4 x i8]*, [4 x i8]** %8
%139 = getelementptr inbounds [4 x i8], [4 x i8]* %138, i64 0, i64 0
%140 = call i8* @strcpy(i8* %139, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0))
br label %205
141: ; preds = %3
%142 = load [4 x i8]*, [4 x i8]** %8
%143 = getelementptr inbounds [4 x i8], [4 x i8]* %142, i32 1
store [4 x i8]* %143, [4 x i8]** %8
%144 = getelementptr inbounds [4 x i8], [4 x i8]* %142, i64 0, i64 0
%145 = call i8* @strcpy(i8* %144, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%146 = load [4 x i8]*, [4 x i8]** %8
%147 = getelementptr inbounds [4 x i8], [4 x i8]* %146, i64 0, i64 0
%148 = call i8* @strcpy(i8* %147, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0))
br label %205
149: ; preds = %3
%150 = load [4 x i8]*, [4 x i8]** %8
%151 = getelementptr inbounds [4 x i8], [4 x i8]* %150, i32 1
store [4 x i8]* %151, [4 x i8]** %8
%152 = getelementptr inbounds [4 x i8], [4 x i8]* %150, i64 0, i64 0
%153 = call i8* @strcpy(i8* %152, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0))
%154 = load [4 x i8]*, [4 x i8]** %8
%155 = getelementptr inbounds [4 x i8], [4 x i8]* %154, i64 0, i64 0
%156 = call i8* @strcpy(i8* %155, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
br label %205
157: ; preds = %3
%158 = load [4 x i8]*, [4 x i8]** %8
%159 = getelementptr inbounds [4 x i8], [4 x i8]* %158, i32 1
store [4 x i8]* %159, [4 x i8]** %8
%160 = getelementptr inbounds [4 x i8], [4 x i8]* %158, i64 0, i64 0
%161 = call i8* @strcpy(i8* %160, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
%162 = load [4 x i8]*, [4 x i8]** %8
%163 = getelementptr inbounds [4 x i8], [4 x i8]* %162, i64 0, i64 0
%164 = call i8* @strcpy(i8* %163, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
br label %205
165: ; preds = %3
%166 = load [4 x i8]*, [4 x i8]** %8
%167 = getelementptr inbounds [4 x i8], [4 x i8]* %166, i32 1
store [4 x i8]* %167, [4 x i8]** %8
%168 = getelementptr inbounds [4 x i8], [4 x i8]* %166, i64 0, i64 0
%169 = call i8* @strcpy(i8* %168, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%170 = load [4 x i8]*, [4 x i8]** %8
%171 = getelementptr inbounds [4 x i8], [4 x i8]* %170, i64 0, i64 0
%172 = call i8* @strcpy(i8* %171, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
br label %205
173: ; preds = %3
%174 = load [4 x i8]*, [4 x i8]** %8
%175 = getelementptr inbounds [4 x i8], [4 x i8]* %174, i32 1
store [4 x i8]* %175, [4 x i8]** %8
%176 = getelementptr inbounds [4 x i8], [4 x i8]* %174, i64 0, i64 0
%177 = call i8* @strcpy(i8* %176, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%178 = load [4 x i8]*, [4 x i8]** %8
%179 = getelementptr inbounds [4 x i8], [4 x i8]* %178, i64 0, i64 0
%180 = call i8* @strcpy(i8* %179, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
br label %205
181: ; preds = %3
%182 = load [4 x i8]*, [4 x i8]** %8
%183 = getelementptr inbounds [4 x i8], [4 x i8]* %182, i32 1
store [4 x i8]* %183, [4 x i8]** %8
%184 = getelementptr inbounds [4 x i8], [4 x i8]* %182, i64 0, i64 0
%185 = call i8* @strcpy(i8* %184, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%186 = load [4 x i8]*, [4 x i8]** %8
%187 = getelementptr inbounds [4 x i8], [4 x i8]* %186, i64 0, i64 0
%188 = call i8* @strcpy(i8* %187, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
br label %205
189: ; preds = %3
%190 = load [4 x i8]*, [4 x i8]** %8
%191 = getelementptr inbounds [4 x i8], [4 x i8]* %190, i32 1
store [4 x i8]* %191, [4 x i8]** %8
%192 = getelementptr inbounds [4 x i8], [4 x i8]* %190, i64 0, i64 0
%193 = call i8* @strcpy(i8* %192, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0))
%194 = load [4 x i8]*, [4 x i8]** %8
%195 = getelementptr inbounds [4 x i8], [4 x i8]* %194, i64 0, i64 0
%196 = call i8* @strcpy(i8* %195, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
br label %205
197: ; preds = %3
%198 = load [4 x i8]*, [4 x i8]** %8
%199 = getelementptr inbounds [4 x i8], [4 x i8]* %198, i32 1
store [4 x i8]* %199, [4 x i8]** %8
%200 = getelementptr inbounds [4 x i8], [4 x i8]* %198, i64 0, i64 0
%201 = call i8* @strcpy(i8* %200, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%202 = load [4 x i8]*, [4 x i8]** %8
%203 = getelementptr inbounds [4 x i8], [4 x i8]* %202, i64 0, i64 0
%204 = call i8* @strcpy(i8* %203, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
br label %205
205: ; preds = %197, %189, %181, %173, %165, %157, %149, %141, %133, %125, %117, %109, %101, %93, %85, %77, %69, %61, %53, %45, %37, %29, %21, %13
%206 = load i32, i32* %5
%207 = add nsw i32 %206, 1
%208 = load i32, i32* %4
%209 = add nsw i32 %208, 1
%210 = call i32 (i32, i32, ...) bitcast (i32 (...)* @move to i32 (i32, i32, ...)*)(i32 %207, i32 %209)
%211 = load [4 x i8]*, [4 x i8]** %8
%212 = getelementptr inbounds [4 x i8], [4 x i8]* %211, i32 -1
store [4 x i8]* %212, [4 x i8]** %8
%213 = load [4 x i8]*, [4 x i8]** %8
%214 = getelementptr inbounds [4 x i8], [4 x i8]* %213, i32 1
store [4 x i8]* %214, [4 x i8]** %8
%215 = getelementptr inbounds [4 x i8], [4 x i8]* %213, i64 0, i64 0
%216 = call i32 (i8*, ...) bitcast (i32 (...)* @addstr to i32 (i8*, ...)*)(i8* %215)
%217 = load i32, i32* %5
%218 = add nsw i32 %217, 2
%219 = load i32, i32* %4
%220 = add nsw i32 %219, 1
%221 = call i32 (i32, i32, ...) bitcast (i32 (...)* @move to i32 (i32, i32, ...)*)(i32 %218, i32 %220)
%222 = load [4 x i8]*, [4 x i8]** %8
%223 = getelementptr inbounds [4 x i8], [4 x i8]* %222, i64 0, i64 0
%224 = call i32 (i8*, ...) bitcast (i32 (...)* @addstr to i32 (i8*, ...)*)(i8* %223)
ret void
}

LLVM IR (-O2):
define void @draw_symbol(i32 %0, i32 %1, i32 %2) {
%4 = alloca [2 x [4 x i8]]
%5 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 0, i64 0
%6 = shl i32 %2, 24
%7 = ashr exact i32 %6, 24
switch i32 %7, label %77 [
i32 32, label %8
i32 35, label %11
i32 60, label %14
i32 62, label %17
i32 79, label %20
i32 58, label %23
i32 47, label %26
i32 92, label %29
i32 42, label %32
i32 61, label %35
i32 64, label %38
i32 126, label %41
i32 116, label %44
i32 84, label %44
i32 88, label %47
i32 33, label %50
i32 77, label %53
i32 83, label %56
i32 94, label %59
i32 67, label %62
i32 43, label %65
i32 95, label %68
i32 66, label %71
i32 37, label %74
]
8: ; preds = %3
%9 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%10 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2105376, i32* %10
br label %80
11: ; preds = %3
%12 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%13 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2302755, i32* %13
br label %80
14: ; preds = %3
%15 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%16 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2960700, i32* %16
br label %80
17: ; preds = %3
%18 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%19 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 4074797, i32* %19
br label %80
20: ; preds = %3
%21 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%22 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 6053423, i32* %22
br label %80
23: ; preds = %3
%24 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%25 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 3022894, i32* %25
br label %80
26: ; preds = %3
%27 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%28 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 3104544, i32* %28
br label %80
29: ; preds = %3
%30 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%31 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2121564, i32* %31
br label %80
32: ; preds = %3
%33 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%34 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 6038575, i32* %34
br label %80
35: ; preds = %3
%36 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%37 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 4009277, i32* %37
br label %80
38: ; preds = %3
%39 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%40 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2125600, i32* %40
br label %80
41: ; preds = %3
%42 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%43 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 3112028, i32* %43
br label %80
44: ; preds = %3, %3
%45 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%46 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2697768, i32* %46
br label %80
47: ; preds = %3
%48 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%49 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 7954775, i32* %49
br label %80
50: ; preds = %3
%51 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%52 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2115872, i32* %52
br label %80
53: ; preds = %3
%54 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%55 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 8089469, i32* %55
br label %80
56: ; preds = %3
%57 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%58 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2977581, i32* %58
br label %80
59: ; preds = %3
%60 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%61 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 6061615, i32* %61
br label %80
62: ; preds = %3
%63 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%64 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2105376, i32* %64
br label %80
65: ; preds = %3
%66 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%67 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 5526612, i32* %67
br label %80
68: ; preds = %3
%69 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%70 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 6257759, i32* %70
br label %80
71: ; preds = %3
%72 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%73 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 2776111, i32* %73
br label %80
74: ; preds = %3
%75 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%76 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 6054210, i32* %76
br label %80
77: ; preds = %3
%78 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1
%79 = bitcast [2 x [4 x i8]]* %4 to i32*
store i32 5205839, i32* %79
br label %80
80: ; preds = %77, %74, %71, %68, %65, %62, %59, %56, %53, %50, %47, %44, %41, %38, %35, %32, %29, %26, %23, %20, %17, %14, %11, %8
%81 = phi [4 x i8]* [ %78, %77 ], [ %75, %74 ], [ %72, %71 ], [ %69, %68 ], [ %66, %65 ], [ %63, %62 ], [ %60, %59 ], [ %57, %56 ], [ %54, %53 ], [ %51, %50 ], [ %48, %47 ], [ %45, %44 ], [ %42, %41 ], [ %39, %38 ], [ %36, %35 ], [ %33, %32 ], [ %30, %29 ], [ %27, %26 ], [ %24, %23 ], [ %21, %20 ], [ %18, %17 ], [ %15, %14 ], [ %12, %11 ], [ %9, %8 ]
%82 = phi i32 [ 7294831, %77 ], [ 6778460, %74 ], [ 2109276, %71 ], [ 6257759, %68 ], [ 4802889, %65 ], [ 4083516, %62 ], [ 5791580, %59 ], [ 6040111, %56 ], [ 6053423, %53 ], [ 2125600, %50 ], [ 7632207, %47 ], [ 2697768, %44 ], [ 6061103, %41 ], [ 4095036, %38 ], [ 2964781, %35 ], [ 3089500, %32 ], [ 6037536, %29 ], [ 2105391, %26 ], [ 2108960, %23 ], [ 3104604, %20 ], [ 4074797, %17 ], [ 2960700, %14 ], [ 2302755, %11 ], [ 2105376, %8 ]
%83 = bitcast [4 x i8]* %81 to i32*
store i32 %82, i32* %83
%84 = add nsw i32 %1, 1
%85 = add nsw i32 %0, 1
%86 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @move to i32 (i32, i32, ...)*)(i32 %84, i32 %85)
%87 = call i32 (i8*, ...) bitcast (i32 (...)* @addstr to i32 (i8*, ...)*)(i8* %5)
%88 = add nsw i32 %1, 2
%89 = call i32 (i32, i32, ...) bitcast (i32 (...)* @move to i32 (i32, i32, ...)*)(i32 %88, i32 %85)
%90 = getelementptr inbounds [2 x [4 x i8]], [2 x [4 x i8]]* %4, i64 0, i64 1, i64 0
%91 = call i32 (i8*, ...) bitcast (i32 (...)* @addstr to i32 (i8*, ...)*)(i8* %90)
ret void
}