int main() {
  char buffer[80];
  char *filename1, *filename2, *filename3, *filename4, *processToKill;
  char fileContentBuffer[13312];
  char prompt[8], type[6], execute[9], exit[6], delete[8], copy[6], dir[4],
      create[8], errorMsg[15], newline[3], clear[4], kill[6], changeBG[5],
      changeFG[5], execforeground[16], help[6];
  unsigned int i;
  int numSectors;
  prompt[0] = 'S';
  prompt[1] = 'H';
  prompt[2] = 'E';
  prompt[3] = 'L';
  prompt[4] = 'L';
  prompt[5] = '>';
  prompt[6] = ' ';
  prompt[7] = '\0';
  type[0] = 't';
  type[1] = 'y';
  type[2] = 'p';
  type[3] = 'e';
  type[4] = ' ';
  type[5] = '\0';
  help[0] = 'h';
  help[1] = 'e';
  help[2] = 'l';
  help[3] = 'p';
  help[4] = '\r';
  help[5] = '\0';
  execute[0] = 'e';
  execute[1] = 'x';
  execute[2] = 'e';
  execute[3] = 'c';
  execute[4] = 'u';
  execute[5] = 't';
  execute[6] = 'e';
  execute[7] = ' ';
  execute[8] = '\0';
  exit[0] = 'e';
  exit[1] = 'x';
  exit[2] = 'i';
  exit[3] = 't';
  exit[4] = '\r';
  exit[5] = '\0';
  delete[0] = 'd';
  delete[1] = 'e';
  delete[2] = 'l';
  delete[3] = 'e';
  delete[4] = 't';
  delete[5] = 'e';
  delete[6] = ' ';
  delete[7] = '\0';
  copy[0] = 'c';
  copy[1] = 'o';
  copy[2] = 'p';
  copy[3] = 'y';
  copy[4] = ' ';
  copy[5] = '\0';
  dir[0] = 'd';
  dir[1] = 'i';
  dir[2] = 'r';
  dir[3] = '\r';
  create[0] = 'c';
  create[1] = 'r';
  create[2] = 'e';
  create[3] = 'a';
  create[4] = 't';
  create[5] = 'e';
  create[6] = ' ';
  create[7] = '\0';
  errorMsg[0] = 'B';
  errorMsg[1] = 'a';
  errorMsg[2] = 'd';
  errorMsg[3] = ' ';
  errorMsg[4] = 'C';
  errorMsg[5] = 'o';
  errorMsg[6] = 'm';
  errorMsg[7] = 'm';
  errorMsg[8] = 'a';
  errorMsg[9] = 'n';
  errorMsg[10] = 'd';
  errorMsg[11] = '!';
  errorMsg[12] = '\r';
  errorMsg[13] = '\n';
  errorMsg[14] = '\0';
  newline[0] = '\r';
  newline[1] = '\n';
  newline[2] = '\0';
  clear[0] = 'c';
  clear[1] = 'l';
  clear[2] = 's';
  clear[3] = '\r';
  kill[0] = 'k';
  kill[1] = 'i';
  kill[2] = 'l';
  kill[3] = 'l';
  kill[4] = ' ';
  kill[5] = '\0';
  changeBG[0] = 'c';
  changeBG[1] = 'b';
  changeBG[2] = 'g';
  changeBG[3] = ' ';
  changeBG[4] = '\0';
  changeFG[0] = 'c';
  changeFG[1] = 'f';
  changeFG[2] = 'g';
  changeFG[3] = ' ';
  changeFG[4] = '\0';
  execforeground[0] = 'e';
  execforeground[1] = 'x';
  execforeground[2] = 'e';
  execforeground[3] = 'c';
  execforeground[4] = 'f';
  execforeground[5] = 'o';
  execforeground[6] = 'r';
  execforeground[7] = 'e';
  execforeground[8] = 'g';
  execforeground[9] = 'r';
  execforeground[10] = 'o';
  execforeground[11] = 'u';
  execforeground[12] = 'n';
  execforeground[13] = 'd';
  execforeground[14] = ' ';
  execforeground[15] = '\0';
  enableInterrupts();
  while (1) {
    buffer[0] = '\0';
    filename1 = 0;
    fileContentBuffer[0] = '\0';
    interrupt(0x21, 0, prompt, 0, 0);
    interrupt(0x21, 1, buffer, 0, 0);
    if (strncmp(buffer, type, 5)) {
      filename1 = buffer + 5;
      cleanFilename(filename1);
      interrupt(0x21, 3, filename1, fileContentBuffer, 0);
      interrupt(0x21, 0, fileContentBuffer, 0, 0);
    } else if (strncmp(buffer, execute, 8)) {
      filename1 = buffer + 8;
      cleanFilename(filename1);
      interrupt(0x21, 4, filename1, 0, 0);
    } else if (strncmp(buffer, exit, 5)) {
      interrupt(0x21, 5, 0, 0, 0);
    } else if (strncmp(buffer, delete, 7)) {
      filename1 = buffer + 7;
      cleanFilename(filename1);
      interrupt(0x21, 7, filename1, 0, 0);
    } else if (strncmp(buffer, copy, 5)) {
      filename1 = buffer + 5;
      filename2 = filename1 + indexOf(filename1, ' ') + 1;
      filename1[indexOf(filename1, ' ')] = '\0';
      cleanFilename(filename1);
      cleanFilename(filename2);
      interrupt(0x21, 3, filename1, fileContentBuffer, 0);
      interrupt(0x21, 99, filename1, &numSectors, 0);
      interrupt(0x21, 8, filename2, fileContentBuffer, numSectors);
    } else if (strncmp(buffer, dir, 4)) {
      interrupt(0x21, 9, 0, 0, 0);
    } else if (strncmp(buffer, changeBG, 4)) {
      interrupt(0x21, 13, buffer[4], 0, 0);
    } else if (strncmp(buffer, changeFG, 4)) {
      interrupt(0x21, 12, buffer[4], buffer[6], 0);
    } else if (strncmp(buffer, clear, 4)) {
      interrupt(0x21, 10, 0, 0, 0);
    } else if (strncmp(buffer, create, 7)) {
      filename1 = buffer + 7;
      cleanFilename(filename1);
      i = 0;
      while (1) {
        interrupt(0x21, 1, fileContentBuffer + i, 0, 0);
        if (strncmp(fileContentBuffer + i, newline, 3)) {
          fileContentBuffer[i] = '\0';
          break;
        } else {
          i += strlen(fileContentBuffer + i);
        }
      }
      interrupt(0x21, 8, filename1, fileContentBuffer,
                strlen(fileContentBuffer) / 512 + 1);
    } else if (strncmp(buffer, kill, 5)) {
      interrupt(0x21, 11, ((int)buffer[5] - 0x30), 0, 0);
    } else if (strncmp(buffer, execforeground, 15)) {
      filename1 = buffer + 15;
      cleanFilename(filename1);
      interrupt(0x21, 14, filename1, 0, 0);
    } else if (strncmp(buffer, help, 5)) {
      interrupt(0x21, 15, 0, 0, 0);
    } else {
      interrupt(0x21, 0, errorMsg, 0, 0);
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x3530,%rsp
movl   $0x0,-0x4(%rbp)
movb   $0x53,-0x3498(%rbp)
movb   $0x48,-0x3497(%rbp)
movb   $0x45,-0x3496(%rbp)
movb   $0x4c,-0x3495(%rbp)
movb   $0x4c,-0x3494(%rbp)
movb   $0x3e,-0x3493(%rbp)
movb   $0x20,-0x3492(%rbp)
movb   $0x0,-0x3491(%rbp)
movb   $0x74,-0x349e(%rbp)
movb   $0x79,-0x349d(%rbp)
movb   $0x70,-0x349c(%rbp)
movb   $0x65,-0x349b(%rbp)
movb   $0x20,-0x349a(%rbp)
movb   $0x0,-0x3499(%rbp)
movb   $0x68,-0x3506(%rbp)
movb   $0x65,-0x3505(%rbp)
movb   $0x6c,-0x3504(%rbp)
movb   $0x70,-0x3503(%rbp)
movb   $0xd,-0x3502(%rbp)
movb   $0x0,-0x3501(%rbp)
movb   $0x65,-0x34a7(%rbp)
movb   $0x78,-0x34a6(%rbp)
movb   $0x65,-0x34a5(%rbp)
movb   $0x63,-0x34a4(%rbp)
movb   $0x75,-0x34a3(%rbp)
movb   $0x74,-0x34a2(%rbp)
movb   $0x65,-0x34a1(%rbp)
movb   $0x20,-0x34a0(%rbp)
movb   $0x0,-0x349f(%rbp)
movb   $0x65,-0x34ad(%rbp)
movb   $0x78,-0x34ac(%rbp)
movb   $0x69,-0x34ab(%rbp)
movb   $0x74,-0x34aa(%rbp)
movb   $0xd,-0x34a9(%rbp)
movb   $0x0,-0x34a8(%rbp)
movb   $0x64,-0x34b5(%rbp)
movb   $0x65,-0x34b4(%rbp)
movb   $0x6c,-0x34b3(%rbp)
movb   $0x65,-0x34b2(%rbp)
movb   $0x74,-0x34b1(%rbp)
movb   $0x65,-0x34b0(%rbp)
movb   $0x20,-0x34af(%rbp)
movb   $0x0,-0x34ae(%rbp)
movb   $0x63,-0x34bb(%rbp)
movb   $0x6f,-0x34ba(%rbp)
movb   $0x70,-0x34b9(%rbp)
movb   $0x79,-0x34b8(%rbp)
movb   $0x20,-0x34b7(%rbp)
movb   $0x0,-0x34b6(%rbp)
movb   $0x64,-0x34bf(%rbp)
movb   $0x69,-0x34be(%rbp)
movb   $0x72,-0x34bd(%rbp)
movb   $0xd,-0x34bc(%rbp)
movb   $0x63,-0x34c7(%rbp)
movb   $0x72,-0x34c6(%rbp)
movb   $0x65,-0x34c5(%rbp)
movb   $0x61,-0x34c4(%rbp)
movb   $0x74,-0x34c3(%rbp)
movb   $0x65,-0x34c2(%rbp)
movb   $0x20,-0x34c1(%rbp)
movb   $0x0,-0x34c0(%rbp)
movb   $0x42,-0x34d6(%rbp)
movb   $0x61,-0x34d5(%rbp)
movb   $0x64,-0x34d4(%rbp)
movb   $0x20,-0x34d3(%rbp)
movb   $0x43,-0x34d2(%rbp)
movb   $0x6f,-0x34d1(%rbp)
movb   $0x6d,-0x34d0(%rbp)
movb   $0x6d,-0x34cf(%rbp)
movb   $0x61,-0x34ce(%rbp)
movb   $0x6e,-0x34cd(%rbp)
movb   $0x64,-0x34cc(%rbp)
movb   $0x21,-0x34cb(%rbp)
movb   $0xd,-0x34ca(%rbp)
movb   $0xa,-0x34c9(%rbp)
movb   $0x0,-0x34c8(%rbp)
movb   $0xd,-0x34d9(%rbp)
movb   $0xa,-0x34d8(%rbp)
movb   $0x0,-0x34d7(%rbp)
movb   $0x63,-0x34dd(%rbp)
movb   $0x6c,-0x34dc(%rbp)
movb   $0x73,-0x34db(%rbp)
movb   $0xd,-0x34da(%rbp)
movb   $0x6b,-0x34e3(%rbp)
movb   $0x69,-0x34e2(%rbp)
movb   $0x6c,-0x34e1(%rbp)
movb   $0x6c,-0x34e0(%rbp)
movb   $0x20,-0x34df(%rbp)
movb   $0x0,-0x34de(%rbp)
movb   $0x63,-0x34e8(%rbp)
movb   $0x62,-0x34e7(%rbp)
movb   $0x67,-0x34e6(%rbp)
movb   $0x20,-0x34e5(%rbp)
movb   $0x0,-0x34e4(%rbp)
movb   $0x63,-0x34ed(%rbp)
movb   $0x66,-0x34ec(%rbp)
movb   $0x67,-0x34eb(%rbp)
movb   $0x20,-0x34ea(%rbp)
movb   $0x0,-0x34e9(%rbp)
movb   $0x65,-0x3500(%rbp)
movb   $0x78,-0x34ff(%rbp)
movb   $0x65,-0x34fe(%rbp)
movb   $0x63,-0x34fd(%rbp)
movb   $0x66,-0x34fc(%rbp)
movb   $0x6f,-0x34fb(%rbp)
movb   $0x72,-0x34fa(%rbp)
movb   $0x65,-0x34f9(%rbp)
movb   $0x67,-0x34f8(%rbp)
movb   $0x72,-0x34f7(%rbp)
movb   $0x6f,-0x34f6(%rbp)
movb   $0x75,-0x34f5(%rbp)
movb   $0x6e,-0x34f4(%rbp)
movb   $0x64,-0x34f3(%rbp)
movb   $0x20,-0x34f2(%rbp)
movb   $0x0,-0x34f1(%rbp)
mov    $0x0,%al
call   1070 <enableInterrupts@plt>
movb   $0x0,-0x60(%rbp)
movq   $0x0,-0x68(%rbp)
movb   $0x0,-0x3490(%rbp)
lea    -0x3498(%rbp),%rdx
mov    $0x21,%edi
xor    %r8d,%r8d
mov    %r8d,%esi
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
lea    -0x60(%rbp),%rdx
mov    $0x21,%edi
mov    $0x1,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
lea    -0x60(%rbp),%rdi
lea    -0x349e(%rbp),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     155d <main+0x3fd>
lea    -0x60(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
mov    -0x68(%rbp),%rdx
lea    -0x3490(%rbp),%rcx
mov    $0x21,%edi
mov    $0x3,%esi
xor    %r8d,%r8d
mov    $0x0,%al
call   1060 <interrupt@plt>
lea    -0x3490(%rbp),%rdx
mov    $0x21,%edi
xor    %r8d,%r8d
mov    %r8d,%esi
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a8c <main+0x92c>
lea    -0x60(%rbp),%rdi
lea    -0x34a7(%rbp),%rsi
mov    $0x8,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     15b2 <main+0x452>
lea    -0x60(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
mov    -0x68(%rbp),%rdx
mov    $0x21,%edi
mov    $0x4,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a87 <main+0x927>
lea    -0x60(%rbp),%rdi
lea    -0x34ad(%rbp),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     15ef <main+0x48f>
mov    $0x21,%edi
mov    $0x5,%esi
xor    %r8d,%r8d
mov    %r8d,%edx
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a82 <main+0x922>
lea    -0x60(%rbp),%rdi
lea    -0x34b5(%rbp),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     1644 <main+0x4e4>
lea    -0x60(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
mov    -0x68(%rbp),%rdx
mov    $0x21,%edi
mov    $0x7,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a7d <main+0x91d>
lea    -0x60(%rbp),%rdi
lea    -0x34bb(%rbp),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     1747 <main+0x5e7>
lea    -0x60(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
mov    %rax,-0x3520(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x20,%esi
mov    $0x0,%al
call   1080 <indexOf@plt>
mov    %eax,%ecx
mov    -0x3520(%rbp),%rax
movslq %ecx,%rcx
add    %rcx,%rax
add    $0x1,%rax
mov    %rax,-0x70(%rbp)
mov    -0x68(%rbp),%rax
mov    %rax,-0x3518(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x20,%esi
mov    $0x0,%al
call   1080 <indexOf@plt>
mov    %eax,%ecx
mov    -0x3518(%rbp),%rax
movslq %ecx,%rcx
movb   $0x0,(%rax,%rcx,1)
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
mov    -0x70(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
mov    -0x68(%rbp),%rdx
lea    -0x3490(%rbp),%rcx
mov    $0x21,%edi
mov    $0x3,%esi
xor    %r8d,%r8d
mov    $0x0,%al
call   1060 <interrupt@plt>
mov    -0x68(%rbp),%rdx
mov    $0x21,%edi
mov    $0x63,%esi
lea    -0x3510(%rbp),%rcx
xor    %r8d,%r8d
mov    $0x0,%al
call   1060 <interrupt@plt>
mov    -0x70(%rbp),%rdx
lea    -0x3490(%rbp),%rcx
mov    -0x3510(%rbp),%r8d
mov    $0x21,%edi
mov    $0x8,%esi
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a78 <main+0x918>
lea    -0x60(%rbp),%rdi
lea    -0x34bf(%rbp),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     1784 <main+0x624>
mov    $0x21,%edi
mov    $0x9,%esi
xor    %r8d,%r8d
mov    %r8d,%edx
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a73 <main+0x913>
lea    -0x60(%rbp),%rdi
lea    -0x34e8(%rbp),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     17c2 <main+0x662>
movsbl -0x5c(%rbp),%edx
mov    $0x21,%edi
mov    $0xd,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a6e <main+0x90e>
lea    -0x60(%rbp),%rdi
lea    -0x34ed(%rbp),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     1801 <main+0x6a1>
movsbl -0x5c(%rbp),%edx
movsbl -0x5a(%rbp),%ecx
mov    $0x21,%edi
mov    $0xc,%esi
xor    %r8d,%r8d
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a69 <main+0x909>
lea    -0x60(%rbp),%rdi
lea    -0x34dd(%rbp),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     183e <main+0x6de>
mov    $0x21,%edi
mov    $0xa,%esi
xor    %r8d,%r8d
mov    %r8d,%edx
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a64 <main+0x904>
lea    -0x60(%rbp),%rdi
lea    -0x34c7(%rbp),%rsi
mov    $0x7,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     1961 <main+0x801>
lea    -0x60(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
movl   $0x0,-0x350c(%rbp)
lea    -0x3490(%rbp),%rdx
mov    -0x350c(%rbp),%eax
add    %rax,%rdx
mov    $0x21,%edi
mov    $0x1,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
lea    -0x3490(%rbp),%rdi
mov    -0x350c(%rbp),%eax
add    %rax,%rdi
lea    -0x34d9(%rbp),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     18e1 <main+0x781>
mov    -0x350c(%rbp),%eax
movb   $0x0,-0x3490(%rbp,%rax,1)
jmp    190d <main+0x7ad>
lea    -0x3490(%rbp),%rdi
mov    -0x350c(%rbp),%eax
add    %rax,%rdi
call   1050 <strlen@plt>
mov    %rax,%rcx
mov    -0x350c(%rbp),%eax
add    %rcx,%rax
mov    %eax,-0x350c(%rbp)
jmp    187d <main+0x71d>
mov    -0x68(%rbp),%rax
mov    %rax,-0x3530(%rbp)
lea    -0x3490(%rbp),%rax
mov    %rax,-0x3528(%rbp)
lea    -0x3490(%rbp),%rdi
call   1050 <strlen@plt>
mov    -0x3530(%rbp),%rdx
mov    -0x3528(%rbp),%rcx
mov    %rax,%r8
shr    $0x9,%r8
add    $0x1,%r8
mov    $0x21,%edi
mov    $0x8,%esi
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a5f <main+0x8ff>
lea    -0x60(%rbp),%rdi
lea    -0x34e3(%rbp),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     19a2 <main+0x842>
movsbl -0x5b(%rbp),%edx
sub    $0x30,%edx
mov    $0x21,%edi
mov    $0xb,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a5a <main+0x8fa>
lea    -0x60(%rbp),%rdi
lea    -0x3500(%rbp),%rsi
mov    $0xf,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     19f7 <main+0x897>
lea    -0x60(%rbp),%rax
add    $0xf,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rdi
mov    $0x0,%al
call   1030 <cleanFilename@plt>
mov    -0x68(%rbp),%rdx
mov    $0x21,%edi
mov    $0xe,%esi
xor    %r8d,%r8d
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a55 <main+0x8f5>
lea    -0x60(%rbp),%rdi
lea    -0x3506(%rbp),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%eax
je     1a34 <main+0x8d4>
mov    $0x21,%edi
mov    $0xf,%esi
xor    %r8d,%r8d
mov    %r8d,%edx
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a50 <main+0x8f0>
lea    -0x34d6(%rbp),%rdx
mov    $0x21,%edi
xor    %r8d,%r8d
mov    %r8d,%esi
mov    %r8d,%ecx
mov    $0x0,%al
call   1060 <interrupt@plt>
jmp    1a55 <main+0x8f5>
jmp    1a5a <main+0x8fa>
jmp    1a5f <main+0x8ff>
jmp    1a64 <main+0x904>
jmp    1a69 <main+0x909>
jmp    1a6e <main+0x90e>
jmp    1a73 <main+0x913>
jmp    1a78 <main+0x918>
jmp    1a7d <main+0x91d>
jmp    1a82 <main+0x922>
jmp    1a87 <main+0x927>
jmp    1a8c <main+0x92c>
jmp    149e <main+0x33e>

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x34e8,%rsp
movabs $0x203e4c4c454853,%rax
mov    %rax,0x78(%rsp)
movl   $0x65707974,0x42(%rsp)
65
movw   $0x20,0x46(%rsp)
movl   $0x706c6568,0x22(%rsp)
70
movw   $0xd,0x26(%rsp)
movabs $0x2065747563657865,%rax
74 65 20
mov    %rax,0x5f(%rsp)
movb   $0x0,0x67(%rsp)
movl   $0x74697865,0x3c(%rsp)
74
movw   $0xd,0x40(%rsp)
movabs $0x206574656c6564,%rax
mov    %rax,0x70(%rsp)
movl   $0x79706f63,0x36(%rsp)
79
movw   $0x20,0x3a(%rsp)
movl   $0xd726964,0x32(%rsp)
0d
movabs $0x20657461657263,%rax
mov    %rax,0x68(%rsp)
movabs $0x6d6d6f4320646142,%rax
6f 6d 6d
mov    %rax,0x50(%rsp)
movl   $0x21646e61,0x58(%rsp)
21
movw   $0xa0d,0x5c(%rsp)
movb   $0x0,0x5e(%rsp)
movw   $0xa0d,0xf(%rsp)
movb   $0x0,0x11(%rsp)
movl   $0xd736c63,0x2e(%rsp)
0d
movl   $0x6c6c696b,0x28(%rsp)
6c
movw   $0x20,0x2c(%rsp)
movl   $0x20676263,0x17(%rsp)
20
movb   $0x0,0x1b(%rsp)
movl   $0x20676663,0x12(%rsp)
20
movb   $0x0,0x16(%rsp)
movaps 0xda3(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
xor    %eax,%eax
call   1070 <enableInterrupts@plt>
lea    0x85(%rsp),%r12
lea    0x78(%rsp),%rbx
lea    0x80(%rsp),%rbp
lea    0x42(%rsp),%r13
lea    0xe0(%rsp),%r15
jmp    12ca <main+0x16a>
mov    %r12,%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    $0x21,%edi
mov    $0x3,%esi
mov    %r12,%rdx
mov    %r15,%rcx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    $0x21,%edi
xor    %esi,%esi
mov    %r15,%rdx
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
movb   $0x0,0x80(%rsp)
movb   $0x0,0xe0(%rsp)
mov    $0x21,%edi
xor    %esi,%esi
mov    %rbx,%rdx
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    $0x21,%edi
mov    $0x1,%esi
mov    %rbp,%rdx
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    $0x5,%edx
mov    %rbp,%rdi
mov    %r13,%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
jne    1290 <main+0x130>
mov    $0x8,%edx
mov    %rbp,%rdi
lea    0x5f(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     135b <main+0x1fb>
lea    0x88(%rsp),%r14
mov    %r14,%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    $0x21,%edi
mov    $0x4,%esi
mov    %r14,%rdx
jmp    12be <main+0x15e>
mov    $0x5,%edx
mov    %rbp,%rdi
lea    0x3c(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     138e <main+0x22e>
mov    $0x21,%edi
mov    $0x5,%esi
xor    %edx,%edx
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
jmp    12ca <main+0x16a>
mov    $0x7,%edx
mov    %rbp,%rdi
lea    0x70(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     13ce <main+0x26e>
mov    %r13,%r14
lea    0x87(%rsp),%r13
mov    %r13,%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    $0x21,%edi
mov    $0x7,%esi
mov    %r13,%rdx
mov    %r14,%r13
jmp    12be <main+0x15e>
mov    $0x5,%edx
mov    %rbp,%rdi
lea    0x36(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     1489 <main+0x329>
mov    %r12,%rdi
mov    $0x20,%esi
xor    %eax,%eax
call   1080 <indexOf@plt>
movslq %eax,%r14
lea    0x86(%rsp),%rax
add    %rax,%r14
mov    %r12,%rdi
mov    $0x20,%esi
xor    %eax,%eax
call   1080 <indexOf@plt>
cltq
movb   $0x0,0x85(%rsp,%rax,1)
mov    %r12,%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    %r14,%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    $0x21,%edi
mov    $0x3,%esi
mov    %r12,%rdx
mov    %r15,%rcx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    $0x21,%edi
mov    $0x63,%esi
mov    %r12,%rdx
lea    0x1c(%rsp),%rcx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    0x1c(%rsp),%r8d
mov    $0x21,%edi
mov    $0x8,%esi
mov    %r14,%rdx
mov    %r15,%rcx
xor    %eax,%eax
call   1060 <interrupt@plt>
jmp    12ca <main+0x16a>
mov    $0x4,%edx
mov    %rbp,%rdi
lea    0x32(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     14ae <main+0x34e>
mov    $0x21,%edi
mov    $0x9,%esi
jmp    137b <main+0x21b>
mov    $0x4,%edx
mov    %rbp,%rdi
lea    0x17(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     14db <main+0x37b>
movsbl 0x84(%rsp),%edx
mov    $0x21,%edi
mov    $0xd,%esi
jmp    137d <main+0x21d>
mov    $0x4,%edx
mov    %rbp,%rdi
lea    0x12(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     1510 <main+0x3b0>
movsbl 0x84(%rsp),%edx
movsbl 0x86(%rsp),%ecx
mov    $0x21,%edi
mov    $0xc,%esi
jmp    137f <main+0x21f>
mov    $0x4,%edx
mov    %rbp,%rdi
lea    0x2e(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     1535 <main+0x3d5>
mov    $0x21,%edi
mov    $0xa,%esi
jmp    137b <main+0x21b>
mov    $0x7,%edx
mov    %rbp,%rdi
lea    0x68(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     161f <main+0x4bf>
lea    0x87(%rsp),%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    $0x21,%edi
mov    $0x1,%esi
mov    %r15,%rdx
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    $0x3,%edx
mov    %r15,%rdi
lea    0xf(%rsp),%rsi
call   1040 <strncmp@plt>
mov    %r15,%rdi
test   %eax,%eax
jne    15eb <main+0x48b>
mov    %r15,%rdi
xor    %r14d,%r14d
cs nopw 0x0(%rax,%rax,1)
call   1050 <strlen@plt>
add    %eax,%r14d
lea    (%rsp,%r14,1),%rdx
add    $0xe0,%rdx
mov    %rdx,0x48(%rsp)
mov    $0x21,%edi
mov    $0x1,%esi
xor    %ecx,%ecx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <interrupt@plt>
mov    $0x3,%edx
mov    0x48(%rsp),%rdi
lea    0xf(%rsp),%rsi
call   1040 <strncmp@plt>
mov    0x48(%rsp),%rdi
test   %eax,%eax
je     15a0 <main+0x440>
movb   $0x0,(%rdi)
mov    %r15,%rdi
call   1050 <strlen@plt>
shr    $0x9,%rax
lea    0x1(%rax),%r8
mov    $0x21,%edi
mov    $0x8,%esi
lea    0x87(%rsp),%rdx
mov    %r15,%rcx
xor    %eax,%eax
call   1060 <interrupt@plt>
jmp    12ca <main+0x16a>
mov    $0x5,%edx
mov    %rbp,%rdi
lea    0x28(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     164f <main+0x4ef>
movsbl 0x85(%rsp),%edx
add    $0xffffffd0,%edx
mov    $0x21,%edi
mov    $0xb,%esi
jmp    137d <main+0x21d>
mov    $0xf,%edx
mov    %rbp,%rdi
lea    0xd0(%rsp),%rsi
call   1040 <strncmp@plt>
test   %eax,%eax
je     168c <main+0x52c>
mov    %r13,%r14
lea    0x8f(%rsp),%r13
mov    %r13,%rdi
xor    %eax,%eax
call   1030 <cleanFilename@plt>
mov    $0x21,%edi
mov    $0xe,%esi
jmp    13c3 <main+0x263>
mov    $0x5,%edx
mov    %rbp,%rdi
lea    0x22(%rsp),%rsi
call   1040 <strncmp@plt>
mov    $0x21,%edi
test   %eax,%eax
je     16b1 <main+0x551>
mov    $0xf,%esi
jmp    137b <main+0x21b>
xor    %esi,%esi
lea    0x50(%rsp),%rdx
jmp    12be <main+0x15e>

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
%2 = alloca [80 x i8]
%3 = alloca i8*
%4 = alloca i8*
%5 = alloca i8*
%6 = alloca i8*
%7 = alloca i8*
%8 = alloca [13312 x i8]
%9 = alloca [8 x i8]
%10 = alloca [6 x i8]
%11 = alloca [9 x i8]
%12 = alloca [6 x i8]
%13 = alloca [8 x i8]
%14 = alloca [6 x i8]
%15 = alloca [4 x i8]
%16 = alloca [8 x i8]
%17 = alloca [15 x i8]
%18 = alloca [3 x i8]
%19 = alloca [4 x i8]
%20 = alloca [6 x i8]
%21 = alloca [5 x i8]
%22 = alloca [5 x i8]
%23 = alloca [16 x i8]
%24 = alloca [6 x i8]
%25 = alloca i32
%26 = alloca i32
store i32 0, i32* %1
%27 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 0
store i8 83, i8* %27
%28 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 1
store i8 72, i8* %28
%29 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 2
store i8 69, i8* %29
%30 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 3
store i8 76, i8* %30
%31 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 4
store i8 76, i8* %31
%32 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 5
store i8 62, i8* %32
%33 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 6
store i8 32, i8* %33
%34 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 7
store i8 0, i8* %34
%35 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 0
store i8 116, i8* %35
%36 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 1
store i8 121, i8* %36
%37 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 2
store i8 112, i8* %37
%38 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 3
store i8 101, i8* %38
%39 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 4
store i8 32, i8* %39
%40 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 5
store i8 0, i8* %40
%41 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 0
store i8 104, i8* %41
%42 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 1
store i8 101, i8* %42
%43 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 2
store i8 108, i8* %43
%44 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 3
store i8 112, i8* %44
%45 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 4
store i8 13, i8* %45
%46 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 5
store i8 0, i8* %46
%47 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 0
store i8 101, i8* %47
%48 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 1
store i8 120, i8* %48
%49 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 2
store i8 101, i8* %49
%50 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 3
store i8 99, i8* %50
%51 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 4
store i8 117, i8* %51
%52 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 5
store i8 116, i8* %52
%53 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 6
store i8 101, i8* %53
%54 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 7
store i8 32, i8* %54
%55 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 8
store i8 0, i8* %55
%56 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 0
store i8 101, i8* %56
%57 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 1
store i8 120, i8* %57
%58 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 2
store i8 105, i8* %58
%59 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 3
store i8 116, i8* %59
%60 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 4
store i8 13, i8* %60
%61 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 5
store i8 0, i8* %61
%62 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 0
store i8 100, i8* %62
%63 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 1
store i8 101, i8* %63
%64 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 2
store i8 108, i8* %64
%65 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 3
store i8 101, i8* %65
%66 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 4
store i8 116, i8* %66
%67 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 5
store i8 101, i8* %67
%68 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 6
store i8 32, i8* %68
%69 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 7
store i8 0, i8* %69
%70 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 0
store i8 99, i8* %70
%71 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 1
store i8 111, i8* %71
%72 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 2
store i8 112, i8* %72
%73 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 3
store i8 121, i8* %73
%74 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 4
store i8 32, i8* %74
%75 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 5
store i8 0, i8* %75
%76 = getelementptr inbounds [4 x i8], [4 x i8]* %15, i64 0, i64 0
store i8 100, i8* %76
%77 = getelementptr inbounds [4 x i8], [4 x i8]* %15, i64 0, i64 1
store i8 105, i8* %77
%78 = getelementptr inbounds [4 x i8], [4 x i8]* %15, i64 0, i64 2
store i8 114, i8* %78
%79 = getelementptr inbounds [4 x i8], [4 x i8]* %15, i64 0, i64 3
store i8 13, i8* %79
%80 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 0
store i8 99, i8* %80
%81 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 1
store i8 114, i8* %81
%82 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 2
store i8 101, i8* %82
%83 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 3
store i8 97, i8* %83
%84 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 4
store i8 116, i8* %84
%85 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 5
store i8 101, i8* %85
%86 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 6
store i8 32, i8* %86
%87 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 7
store i8 0, i8* %87
%88 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 0
store i8 66, i8* %88
%89 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 1
store i8 97, i8* %89
%90 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 2
store i8 100, i8* %90
%91 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 3
store i8 32, i8* %91
%92 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 4
store i8 67, i8* %92
%93 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 5
store i8 111, i8* %93
%94 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 6
store i8 109, i8* %94
%95 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 7
store i8 109, i8* %95
%96 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 8
store i8 97, i8* %96
%97 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 9
store i8 110, i8* %97
%98 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 10
store i8 100, i8* %98
%99 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 11
store i8 33, i8* %99
%100 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 12
store i8 13, i8* %100
%101 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 13
store i8 10, i8* %101
%102 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 14
store i8 0, i8* %102
%103 = getelementptr inbounds [3 x i8], [3 x i8]* %18, i64 0, i64 0
store i8 13, i8* %103
%104 = getelementptr inbounds [3 x i8], [3 x i8]* %18, i64 0, i64 1
store i8 10, i8* %104
%105 = getelementptr inbounds [3 x i8], [3 x i8]* %18, i64 0, i64 2
store i8 0, i8* %105
%106 = getelementptr inbounds [4 x i8], [4 x i8]* %19, i64 0, i64 0
store i8 99, i8* %106
%107 = getelementptr inbounds [4 x i8], [4 x i8]* %19, i64 0, i64 1
store i8 108, i8* %107
%108 = getelementptr inbounds [4 x i8], [4 x i8]* %19, i64 0, i64 2
store i8 115, i8* %108
%109 = getelementptr inbounds [4 x i8], [4 x i8]* %19, i64 0, i64 3
store i8 13, i8* %109
%110 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 0
store i8 107, i8* %110
%111 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 1
store i8 105, i8* %111
%112 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 2
store i8 108, i8* %112
%113 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 3
store i8 108, i8* %113
%114 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 4
store i8 32, i8* %114
%115 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 5
store i8 0, i8* %115
%116 = getelementptr inbounds [5 x i8], [5 x i8]* %21, i64 0, i64 0
store i8 99, i8* %116
%117 = getelementptr inbounds [5 x i8], [5 x i8]* %21, i64 0, i64 1
store i8 98, i8* %117
%118 = getelementptr inbounds [5 x i8], [5 x i8]* %21, i64 0, i64 2
store i8 103, i8* %118
%119 = getelementptr inbounds [5 x i8], [5 x i8]* %21, i64 0, i64 3
store i8 32, i8* %119
%120 = getelementptr inbounds [5 x i8], [5 x i8]* %21, i64 0, i64 4
store i8 0, i8* %120
%121 = getelementptr inbounds [5 x i8], [5 x i8]* %22, i64 0, i64 0
store i8 99, i8* %121
%122 = getelementptr inbounds [5 x i8], [5 x i8]* %22, i64 0, i64 1
store i8 102, i8* %122
%123 = getelementptr inbounds [5 x i8], [5 x i8]* %22, i64 0, i64 2
store i8 103, i8* %123
%124 = getelementptr inbounds [5 x i8], [5 x i8]* %22, i64 0, i64 3
store i8 32, i8* %124
%125 = getelementptr inbounds [5 x i8], [5 x i8]* %22, i64 0, i64 4
store i8 0, i8* %125
%126 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 0
store i8 101, i8* %126
%127 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 1
store i8 120, i8* %127
%128 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 2
store i8 101, i8* %128
%129 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 3
store i8 99, i8* %129
%130 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 4
store i8 102, i8* %130
%131 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 5
store i8 111, i8* %131
%132 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 6
store i8 114, i8* %132
%133 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 7
store i8 101, i8* %133
%134 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 8
store i8 103, i8* %134
%135 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 9
store i8 114, i8* %135
%136 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 10
store i8 111, i8* %136
%137 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 11
store i8 117, i8* %137
%138 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 12
store i8 110, i8* %138
%139 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 13
store i8 100, i8* %139
%140 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 14
store i8 32, i8* %140
%141 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 15
store i8 0, i8* %141
%142 = call i32 (...) @enableInterrupts()
br label %143
143: ; preds = %0, %355
%144 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
store i8 0, i8* %144
store i8* null, i8** %3
%145 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
store i8 0, i8* %145
%146 = getelementptr inbounds [8 x i8], [8 x i8]* %9, i64 0, i64 0
%147 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 0, i8* %146, i32 0, i32 0)
%148 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%149 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 1, i8* %148, i32 0, i32 0)
%150 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%151 = getelementptr inbounds [6 x i8], [6 x i8]* %10, i64 0, i64 0
%152 = call i32 @strncmp(i8* %150, i8* %151, i64 5)
%153 = icmp ne i32 %152, 0
br i1 %153, label %154, label %164
154: ; preds = %143
%155 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%156 = getelementptr inbounds i8, i8* %155, i64 5
store i8* %156, i8** %3
%157 = load i8*, i8** %3
%158 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %157)
%159 = load i8*, i8** %3
%160 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%161 = call i32 (i32, i32, i8*, i8*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i32, ...)*)(i32 33, i32 3, i8* %159, i8* %160, i32 0)
%162 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%163 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 0, i8* %162, i32 0, i32 0)
br label %355
164: ; preds = %143
%165 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%166 = getelementptr inbounds [9 x i8], [9 x i8]* %11, i64 0, i64 0
%167 = call i32 @strncmp(i8* %165, i8* %166, i64 8)
%168 = icmp ne i32 %167, 0
br i1 %168, label %169, label %176
169: ; preds = %164
%170 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%171 = getelementptr inbounds i8, i8* %170, i64 8
store i8* %171, i8** %3
%172 = load i8*, i8** %3
%173 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %172)
%174 = load i8*, i8** %3
%175 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 4, i8* %174, i32 0, i32 0)
br label %354
176: ; preds = %164
%177 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%178 = getelementptr inbounds [6 x i8], [6 x i8]* %12, i64 0, i64 0
%179 = call i32 @strncmp(i8* %177, i8* %178, i64 5)
%180 = icmp ne i32 %179, 0
br i1 %180, label %181, label %183
181: ; preds = %176
%182 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 5, i32 0, i32 0, i32 0)
br label %353
183: ; preds = %176
%184 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%185 = getelementptr inbounds [8 x i8], [8 x i8]* %13, i64 0, i64 0
%186 = call i32 @strncmp(i8* %184, i8* %185, i64 7)
%187 = icmp ne i32 %186, 0
br i1 %187, label %188, label %195
188: ; preds = %183
%189 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%190 = getelementptr inbounds i8, i8* %189, i64 7
store i8* %190, i8** %3
%191 = load i8*, i8** %3
%192 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %191)
%193 = load i8*, i8** %3
%194 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 7, i8* %193, i32 0, i32 0)
br label %352
195: ; preds = %183
%196 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%197 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 0
%198 = call i32 @strncmp(i8* %196, i8* %197, i64 5)
%199 = icmp ne i32 %198, 0
br i1 %199, label %200, label %227
200: ; preds = %195
%201 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%202 = getelementptr inbounds i8, i8* %201, i64 5
store i8* %202, i8** %3
%203 = load i8*, i8** %3
%204 = load i8*, i8** %3
%205 = call i32 (i8*, i32, ...) bitcast (i32 (...)* @indexOf to i32 (i8*, i32, ...)*)(i8* %204, i32 32)
%206 = sext i32 %205 to i64
%207 = getelementptr inbounds i8, i8* %203, i64 %206
%208 = getelementptr inbounds i8, i8* %207, i64 1
store i8* %208, i8** %4
%209 = load i8*, i8** %3
%210 = load i8*, i8** %3
%211 = call i32 (i8*, i32, ...) bitcast (i32 (...)* @indexOf to i32 (i8*, i32, ...)*)(i8* %210, i32 32)
%212 = sext i32 %211 to i64
%213 = getelementptr inbounds i8, i8* %209, i64 %212
store i8 0, i8* %213
%214 = load i8*, i8** %3
%215 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %214)
%216 = load i8*, i8** %4
%217 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %216)
%218 = load i8*, i8** %3
%219 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%220 = call i32 (i32, i32, i8*, i8*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i32, ...)*)(i32 33, i32 3, i8* %218, i8* %219, i32 0)
%221 = load i8*, i8** %3
%222 = call i32 (i32, i32, i8*, i32*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32*, i32, ...)*)(i32 33, i32 99, i8* %221, i32* %26, i32 0)
%223 = load i8*, i8** %4
%224 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%225 = load i32, i32* %26
%226 = call i32 (i32, i32, i8*, i8*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i32, ...)*)(i32 33, i32 8, i8* %223, i8* %224, i32 %225)
br label %351
227: ; preds = %195
%228 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%229 = getelementptr inbounds [4 x i8], [4 x i8]* %15, i64 0, i64 0
%230 = call i32 @strncmp(i8* %228, i8* %229, i64 4)
%231 = icmp ne i32 %230, 0
br i1 %231, label %232, label %234
232: ; preds = %227
%233 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 9, i32 0, i32 0, i32 0)
br label %350
234: ; preds = %227
%235 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%236 = getelementptr inbounds [5 x i8], [5 x i8]* %21, i64 0, i64 0
%237 = call i32 @strncmp(i8* %235, i8* %236, i64 4)
%238 = icmp ne i32 %237, 0
br i1 %238, label %239, label %244
239: ; preds = %234
%240 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 4
%241 = load i8, i8* %240
%242 = sext i8 %241 to i32
%243 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 13, i32 %242, i32 0, i32 0)
br label %349
244: ; preds = %234
%245 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%246 = getelementptr inbounds [5 x i8], [5 x i8]* %22, i64 0, i64 0
%247 = call i32 @strncmp(i8* %245, i8* %246, i64 4)
%248 = icmp ne i32 %247, 0
br i1 %248, label %249, label %257
249: ; preds = %244
%250 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 4
%251 = load i8, i8* %250
%252 = sext i8 %251 to i32
%253 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 6
%254 = load i8, i8* %253
%255 = sext i8 %254 to i32
%256 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 12, i32 %252, i32 %255, i32 0)
br label %348
257: ; preds = %244
%258 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%259 = getelementptr inbounds [4 x i8], [4 x i8]* %19, i64 0, i64 0
%260 = call i32 @strncmp(i8* %258, i8* %259, i64 4)
%261 = icmp ne i32 %260, 0
br i1 %261, label %262, label %264
262: ; preds = %257
%263 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 10, i32 0, i32 0, i32 0)
br label %347
264: ; preds = %257
%265 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%266 = getelementptr inbounds [8 x i8], [8 x i8]* %16, i64 0, i64 0
%267 = call i32 @strncmp(i8* %265, i8* %266, i64 7)
%268 = icmp ne i32 %267, 0
br i1 %268, label %269, label %310
269: ; preds = %264
%270 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%271 = getelementptr inbounds i8, i8* %270, i64 7
store i8* %271, i8** %3
%272 = load i8*, i8** %3
%273 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %272)
store i32 0, i32* %25
br label %274
274: ; preds = %269, %301
%275 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%276 = load i32, i32* %25
%277 = zext i32 %276 to i64
%278 = getelementptr inbounds i8, i8* %275, i64 %277
%279 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 1, i8* %278, i32 0, i32 0)
%280 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%281 = load i32, i32* %25
%282 = zext i32 %281 to i64
%283 = getelementptr inbounds i8, i8* %280, i64 %282
%284 = getelementptr inbounds [3 x i8], [3 x i8]* %18, i64 0, i64 0
%285 = call i32 @strncmp(i8* %283, i8* %284, i64 3)
%286 = icmp ne i32 %285, 0
br i1 %286, label %287, label %291
287: ; preds = %274
%288 = load i32, i32* %25
%289 = zext i32 %288 to i64
%290 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 %289
store i8 0, i8* %290
br label %302
291: ; preds = %274
%292 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%293 = load i32, i32* %25
%294 = zext i32 %293 to i64
%295 = getelementptr inbounds i8, i8* %292, i64 %294
%296 = call i64 @strlen(i8* %295)
%297 = load i32, i32* %25
%298 = zext i32 %297 to i64
%299 = add i64 %298, %296
%300 = trunc i64 %299 to i32
store i32 %300, i32* %25
br label %301
301: ; preds = %291
br label %274
302: ; preds = %287
%303 = load i8*, i8** %3
%304 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%305 = getelementptr inbounds [13312 x i8], [13312 x i8]* %8, i64 0, i64 0
%306 = call i64 @strlen(i8* %305)
%307 = udiv i64 %306, 512
%308 = add i64 %307, 1
%309 = call i32 (i32, i32, i8*, i8*, i64, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i64, ...)*)(i32 33, i32 8, i8* %303, i8* %304, i64 %308)
br label %346
310: ; preds = %264
%311 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%312 = getelementptr inbounds [6 x i8], [6 x i8]* %20, i64 0, i64 0
%313 = call i32 @strncmp(i8* %311, i8* %312, i64 5)
%314 = icmp ne i32 %313, 0
br i1 %314, label %315, label %321
315: ; preds = %310
%316 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 5
%317 = load i8, i8* %316
%318 = sext i8 %317 to i32
%319 = sub nsw i32 %318, 48
%320 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 11, i32 %319, i32 0, i32 0)
br label %345
321: ; preds = %310
%322 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%323 = getelementptr inbounds [16 x i8], [16 x i8]* %23, i64 0, i64 0
%324 = call i32 @strncmp(i8* %322, i8* %323, i64 15)
%325 = icmp ne i32 %324, 0
br i1 %325, label %326, label %333
326: ; preds = %321
%327 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%328 = getelementptr inbounds i8, i8* %327, i64 15
store i8* %328, i8** %3
%329 = load i8*, i8** %3
%330 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %329)
%331 = load i8*, i8** %3
%332 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 14, i8* %331, i32 0, i32 0)
br label %344
333: ; preds = %321
%334 = getelementptr inbounds [80 x i8], [80 x i8]* %2, i64 0, i64 0
%335 = getelementptr inbounds [6 x i8], [6 x i8]* %24, i64 0, i64 0
%336 = call i32 @strncmp(i8* %334, i8* %335, i64 5)
%337 = icmp ne i32 %336, 0
br i1 %337, label %338, label %340
338: ; preds = %333
%339 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 15, i32 0, i32 0, i32 0)
br label %343
340: ; preds = %333
%341 = getelementptr inbounds [15 x i8], [15 x i8]* %17, i64 0, i64 0
%342 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 0, i8* %341, i32 0, i32 0)
br label %343
343: ; preds = %340, %338
br label %344
344: ; preds = %343, %326
br label %345
345: ; preds = %344, %315
br label %346
346: ; preds = %345, %302
br label %347
347: ; preds = %346, %262
br label %348
348: ; preds = %347, %249
br label %349
349: ; preds = %348, %239
br label %350
350: ; preds = %349, %232
br label %351
351: ; preds = %350, %200
br label %352
352: ; preds = %351, %188
br label %353
353: ; preds = %352, %181
br label %354
354: ; preds = %353, %169
br label %355
355: ; preds = %354, %154
br label %143
}

LLVM IR (-O2):
define i32 @main() {
%1 = alloca [80 x i8]
%2 = alloca [13312 x i8]
%3 = alloca [8 x i8]
%4 = alloca [6 x i8]
%5 = alloca [9 x i8]
%6 = alloca [6 x i8]
%7 = alloca [8 x i8]
%8 = alloca [6 x i8]
%9 = alloca [4 x i8]
%10 = alloca [8 x i8]
%11 = alloca [15 x i8]
%12 = alloca [3 x i8]
%13 = alloca [4 x i8]
%14 = alloca [6 x i8]
%15 = alloca [5 x i8]
%16 = alloca [5 x i8]
%17 = alloca <16 x i8>
%18 = alloca [6 x i8]
%19 = alloca i32
%20 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 0
%21 = getelementptr inbounds [13312 x i8], [13312 x i8]* %2, i64 0, i64 0
%22 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 0
%23 = getelementptr inbounds [6 x i8], [6 x i8]* %4, i64 0, i64 0
%24 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 0
%25 = getelementptr inbounds [6 x i8], [6 x i8]* %6, i64 0, i64 0
%26 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 0
%27 = getelementptr inbounds [6 x i8], [6 x i8]* %8, i64 0, i64 0
%28 = getelementptr inbounds [4 x i8], [4 x i8]* %9, i64 0, i64 0
%29 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 0
%30 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 0
%31 = getelementptr inbounds [3 x i8], [3 x i8]* %12, i64 0, i64 0
%32 = getelementptr inbounds [4 x i8], [4 x i8]* %13, i64 0, i64 0
%33 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 0
%34 = getelementptr inbounds [5 x i8], [5 x i8]* %15, i64 0, i64 0
%35 = getelementptr inbounds [5 x i8], [5 x i8]* %16, i64 0, i64 0
%36 = getelementptr inbounds <16 x i8>, <16 x i8>* %17, i64 0, i64 0
%37 = getelementptr inbounds [6 x i8], [6 x i8]* %18, i64 0, i64 0
%38 = bitcast i32* %19 to i8*
store i8 83, i8* %22
%39 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 1
store i8 72, i8* %39
%40 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 2
store i8 69, i8* %40
%41 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 3
store i8 76, i8* %41
%42 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 4
store i8 76, i8* %42
%43 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 5
store i8 62, i8* %43
%44 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 6
store i8 32, i8* %44
%45 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 7
store i8 0, i8* %45
store i8 116, i8* %23
%46 = getelementptr inbounds [6 x i8], [6 x i8]* %4, i64 0, i64 1
store i8 121, i8* %46
%47 = getelementptr inbounds [6 x i8], [6 x i8]* %4, i64 0, i64 2
store i8 112, i8* %47
%48 = getelementptr inbounds [6 x i8], [6 x i8]* %4, i64 0, i64 3
store i8 101, i8* %48
%49 = getelementptr inbounds [6 x i8], [6 x i8]* %4, i64 0, i64 4
store i8 32, i8* %49
%50 = getelementptr inbounds [6 x i8], [6 x i8]* %4, i64 0, i64 5
store i8 0, i8* %50
store i8 104, i8* %37
%51 = getelementptr inbounds [6 x i8], [6 x i8]* %18, i64 0, i64 1
store i8 101, i8* %51
%52 = getelementptr inbounds [6 x i8], [6 x i8]* %18, i64 0, i64 2
store i8 108, i8* %52
%53 = getelementptr inbounds [6 x i8], [6 x i8]* %18, i64 0, i64 3
store i8 112, i8* %53
%54 = getelementptr inbounds [6 x i8], [6 x i8]* %18, i64 0, i64 4
store i8 13, i8* %54
%55 = getelementptr inbounds [6 x i8], [6 x i8]* %18, i64 0, i64 5
store i8 0, i8* %55
store i8 101, i8* %24
%56 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 1
store i8 120, i8* %56
%57 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 2
store i8 101, i8* %57
%58 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 3
store i8 99, i8* %58
%59 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 4
store i8 117, i8* %59
%60 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 5
store i8 116, i8* %60
%61 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 6
store i8 101, i8* %61
%62 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 7
store i8 32, i8* %62
%63 = getelementptr inbounds [9 x i8], [9 x i8]* %5, i64 0, i64 8
store i8 0, i8* %63
store i8 101, i8* %25
%64 = getelementptr inbounds [6 x i8], [6 x i8]* %6, i64 0, i64 1
store i8 120, i8* %64
%65 = getelementptr inbounds [6 x i8], [6 x i8]* %6, i64 0, i64 2
store i8 105, i8* %65
%66 = getelementptr inbounds [6 x i8], [6 x i8]* %6, i64 0, i64 3
store i8 116, i8* %66
%67 = getelementptr inbounds [6 x i8], [6 x i8]* %6, i64 0, i64 4
store i8 13, i8* %67
%68 = getelementptr inbounds [6 x i8], [6 x i8]* %6, i64 0, i64 5
store i8 0, i8* %68
store i8 100, i8* %26
%69 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 1
store i8 101, i8* %69
%70 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 2
store i8 108, i8* %70
%71 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 3
store i8 101, i8* %71
%72 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 4
store i8 116, i8* %72
%73 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 5
store i8 101, i8* %73
%74 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 6
store i8 32, i8* %74
%75 = getelementptr inbounds [8 x i8], [8 x i8]* %7, i64 0, i64 7
store i8 0, i8* %75
store i8 99, i8* %27
%76 = getelementptr inbounds [6 x i8], [6 x i8]* %8, i64 0, i64 1
store i8 111, i8* %76
%77 = getelementptr inbounds [6 x i8], [6 x i8]* %8, i64 0, i64 2
store i8 112, i8* %77
%78 = getelementptr inbounds [6 x i8], [6 x i8]* %8, i64 0, i64 3
store i8 121, i8* %78
%79 = getelementptr inbounds [6 x i8], [6 x i8]* %8, i64 0, i64 4
store i8 32, i8* %79
%80 = getelementptr inbounds [6 x i8], [6 x i8]* %8, i64 0, i64 5
store i8 0, i8* %80
store i8 100, i8* %28
%81 = getelementptr inbounds [4 x i8], [4 x i8]* %9, i64 0, i64 1
store i8 105, i8* %81
%82 = getelementptr inbounds [4 x i8], [4 x i8]* %9, i64 0, i64 2
store i8 114, i8* %82
%83 = getelementptr inbounds [4 x i8], [4 x i8]* %9, i64 0, i64 3
store i8 13, i8* %83
store i8 99, i8* %29
%84 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 1
store i8 114, i8* %84
%85 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 2
store i8 101, i8* %85
%86 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 3
store i8 97, i8* %86
%87 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 4
store i8 116, i8* %87
%88 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 5
store i8 101, i8* %88
%89 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 6
store i8 32, i8* %89
%90 = getelementptr inbounds [8 x i8], [8 x i8]* %10, i64 0, i64 7
store i8 0, i8* %90
store i8 66, i8* %30
%91 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 1
store i8 97, i8* %91
%92 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 2
store i8 100, i8* %92
%93 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 3
store i8 32, i8* %93
%94 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 4
store i8 67, i8* %94
%95 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 5
store i8 111, i8* %95
%96 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 6
store i8 109, i8* %96
%97 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 7
store i8 109, i8* %97
%98 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 8
store i8 97, i8* %98
%99 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 9
store i8 110, i8* %99
%100 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 10
store i8 100, i8* %100
%101 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 11
store i8 33, i8* %101
%102 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 12
store i8 13, i8* %102
%103 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 13
store i8 10, i8* %103
%104 = getelementptr inbounds [15 x i8], [15 x i8]* %11, i64 0, i64 14
store i8 0, i8* %104
store i8 13, i8* %31
%105 = getelementptr inbounds [3 x i8], [3 x i8]* %12, i64 0, i64 1
store i8 10, i8* %105
%106 = getelementptr inbounds [3 x i8], [3 x i8]* %12, i64 0, i64 2
store i8 0, i8* %106
store i8 99, i8* %32
%107 = getelementptr inbounds [4 x i8], [4 x i8]* %13, i64 0, i64 1
store i8 108, i8* %107
%108 = getelementptr inbounds [4 x i8], [4 x i8]* %13, i64 0, i64 2
store i8 115, i8* %108
%109 = getelementptr inbounds [4 x i8], [4 x i8]* %13, i64 0, i64 3
store i8 13, i8* %109
store i8 107, i8* %33
%110 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 1
store i8 105, i8* %110
%111 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 2
store i8 108, i8* %111
%112 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 3
store i8 108, i8* %112
%113 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 4
store i8 32, i8* %113
%114 = getelementptr inbounds [6 x i8], [6 x i8]* %14, i64 0, i64 5
store i8 0, i8* %114
store i8 99, i8* %34
%115 = getelementptr inbounds [5 x i8], [5 x i8]* %15, i64 0, i64 1
store i8 98, i8* %115
%116 = getelementptr inbounds [5 x i8], [5 x i8]* %15, i64 0, i64 2
store i8 103, i8* %116
%117 = getelementptr inbounds [5 x i8], [5 x i8]* %15, i64 0, i64 3
store i8 32, i8* %117
%118 = getelementptr inbounds [5 x i8], [5 x i8]* %15, i64 0, i64 4
store i8 0, i8* %118
store i8 99, i8* %35
%119 = getelementptr inbounds [5 x i8], [5 x i8]* %16, i64 0, i64 1
store i8 102, i8* %119
%120 = getelementptr inbounds [5 x i8], [5 x i8]* %16, i64 0, i64 2
store i8 103, i8* %120
%121 = getelementptr inbounds [5 x i8], [5 x i8]* %16, i64 0, i64 3
store i8 32, i8* %121
%122 = getelementptr inbounds [5 x i8], [5 x i8]* %16, i64 0, i64 4
store i8 0, i8* %122
store <16 x i8> <i8 101, i8 120, i8 101, i8 99, i8 102, i8 111, i8 114, i8 101, i8 103, i8 114, i8 111, i8 117, i8 110, i8 100, i8 32, i8 0>, <16 x i8>* %17
%123 = tail call i32 (...) @enableInterrupts()
%124 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 5
%125 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 8
%126 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 7
%127 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 4
%128 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 6
%129 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 15
%130 = getelementptr inbounds [80 x i8], [80 x i8]* %1, i64 0, i64 6
br label %131
131: ; preds = %146, %0
store i8 0, i8* %20
store i8 0, i8* %21
%132 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 0, i8* %22, i32 0, i32 0)
%133 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 1, i8* %20, i32 0, i32 0)
%134 = call i32 @strncmp(i8* %20, i8* %23, i64 5)
%135 = icmp eq i32 %134, 0
br i1 %135, label %140, label %136
136: ; preds = %131
%137 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %124)
%138 = call i32 (i32, i32, i8*, i8*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i32, ...)*)(i32 33, i32 3, i8* %124, i8* %21, i32 0)
%139 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 0, i8* %21, i32 0, i32 0)
br label %146
140: ; preds = %131
%141 = call i32 @strncmp(i8* %20, i8* %24, i64 8)
%142 = icmp eq i32 %141, 0
br i1 %142, label %147, label %143
143: ; preds = %140
%144 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %125)
%145 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 4, i8* %125, i32 0, i32 0)
br label %146
146: ; preds = %143, %155, %177, %189, %208, %235, %243, %241, %227, %198, %182, %161, %150, %136
br label %131
147: ; preds = %140
%148 = call i32 @strncmp(i8* %20, i8* %25, i64 5)
%149 = icmp eq i32 %148, 0
br i1 %149, label %152, label %150
150: ; preds = %147
%151 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 5, i32 0, i32 0, i32 0)
br label %146
152: ; preds = %147
%153 = call i32 @strncmp(i8* %20, i8* %26, i64 7)
%154 = icmp eq i32 %153, 0
br i1 %154, label %158, label %155
155: ; preds = %152
%156 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %126)
%157 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 7, i8* %126, i32 0, i32 0)
br label %146
158: ; preds = %152
%159 = call i32 @strncmp(i8* %20, i8* %27, i64 5)
%160 = icmp eq i32 %159, 0
br i1 %160, label %174, label %161
161: ; preds = %158
%162 = call i32 (i8*, i32, ...) bitcast (i32 (...)* @indexOf to i32 (i8*, i32, ...)*)(i8* %124, i32 32)
%163 = sext i32 %162 to i64
%164 = getelementptr inbounds i8, i8* %130, i64 %163
%165 = call i32 (i8*, i32, ...) bitcast (i32 (...)* @indexOf to i32 (i8*, i32, ...)*)(i8* %124, i32 32)
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds i8, i8* %124, i64 %166
store i8 0, i8* %167
%168 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %124)
%169 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %164)
%170 = call i32 (i32, i32, i8*, i8*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i32, ...)*)(i32 33, i32 3, i8* %124, i8* %21, i32 0)
%171 = call i32 (i32, i32, i8*, i32*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32*, i32, ...)*)(i32 33, i32 99, i8* %124, i32* %19, i32 0)
%172 = load i32, i32* %19
%173 = call i32 (i32, i32, i8*, i8*, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i32, ...)*)(i32 33, i32 8, i8* %164, i8* %21, i32 %172)
br label %146
174: ; preds = %158
%175 = call i32 @strncmp(i8* %20, i8* %28, i64 4)
%176 = icmp eq i32 %175, 0
br i1 %176, label %179, label %177
177: ; preds = %174
%178 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 9, i32 0, i32 0, i32 0)
br label %146
179: ; preds = %174
%180 = call i32 @strncmp(i8* %20, i8* %34, i64 4)
%181 = icmp eq i32 %180, 0
br i1 %181, label %186, label %182
182: ; preds = %179
%183 = load i8, i8* %127
%184 = sext i8 %183 to i32
%185 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 13, i32 %184, i32 0, i32 0)
br label %146
186: ; preds = %179
%187 = call i32 @strncmp(i8* %20, i8* %35, i64 4)
%188 = icmp eq i32 %187, 0
br i1 %188, label %195, label %189
189: ; preds = %186
%190 = load i8, i8* %127
%191 = sext i8 %190 to i32
%192 = load i8, i8* %128
%193 = sext i8 %192 to i32
%194 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 12, i32 %191, i32 %193, i32 0)
br label %146
195: ; preds = %186
%196 = call i32 @strncmp(i8* %20, i8* %32, i64 4)
%197 = icmp eq i32 %196, 0
br i1 %197, label %200, label %198
198: ; preds = %195
%199 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 10, i32 0, i32 0, i32 0)
br label %146
200: ; preds = %195
%201 = call i32 @strncmp(i8* %20, i8* %29, i64 7)
%202 = icmp eq i32 %201, 0
br i1 %202, label %224, label %203
203: ; preds = %200
%204 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %126)
%205 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 1, i8* %21, i32 0, i32 0)
%206 = call i32 @strncmp(i8* %21, i8* %31, i64 3)
%207 = icmp eq i32 %206, 0
br i1 %207, label %214, label %208
208: ; preds = %214, %203
%209 = phi i8* [ %21, %203 ], [ %220, %214 ]
store i8 0, i8* %209
%210 = call i64 @strlen(i8* %21)
%211 = lshr i64 %210, 9
%212 = add nuw nsw i64 %211, 1
%213 = call i32 (i32, i32, i8*, i8*, i64, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i8*, i64, ...)*)(i32 33, i32 8, i8* %126, i8* %21, i64 %212)
br label %146
214: ; preds = %203, %214
%215 = phi i8* [ %220, %214 ], [ %21, %203 ]
%216 = phi i64 [ %219, %214 ], [ 0, %203 ]
%217 = call i64 @strlen(i8* %215)
%218 = add i64 %217, %216
%219 = and i64 %218, 4294967295
%220 = getelementptr inbounds [13312 x i8], [13312 x i8]* %2, i64 0, i64 %219
%221 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 1, i8* %220, i32 0, i32 0)
%222 = call i32 @strncmp(i8* %220, i8* %31, i64 3)
%223 = icmp eq i32 %222, 0
br i1 %223, label %214, label %208
224: ; preds = %200
%225 = call i32 @strncmp(i8* %20, i8* %33, i64 5)
%226 = icmp eq i32 %225, 0
br i1 %226, label %232, label %227
227: ; preds = %224
%228 = load i8, i8* %124
%229 = sext i8 %228 to i32
%230 = add nsw i32 %229, -48
%231 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 11, i32 %230, i32 0, i32 0)
br label %146
232: ; preds = %224
%233 = call i32 @strncmp(i8* %20, i8* %36, i64 15)
%234 = icmp eq i32 %233, 0
br i1 %234, label %238, label %235
235: ; preds = %232
%236 = call i32 (i8*, ...) bitcast (i32 (...)* @cleanFilename to i32 (i8*, ...)*)(i8* %129)
%237 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 14, i8* %129, i32 0, i32 0)
br label %146
238: ; preds = %232
%239 = call i32 @strncmp(i8* %20, i8* %37, i64 5)
%240 = icmp eq i32 %239, 0
br i1 %240, label %243, label %241
241: ; preds = %238
%242 = call i32 (i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i32, i32, i32, ...)*)(i32 33, i32 15, i32 0, i32 0, i32 0)
br label %146
243: ; preds = %238
%244 = call i32 (i32, i32, i8*, i32, i32, ...) bitcast (i32 (...)* @interrupt to i32 (i32, i32, i8*, i32, i32, ...)*)(i32 33, i32 0, i8* %30, i32 0, i32 0)
br label %146
}