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

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ line;
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fclose(int /*<<< orphan*/ *);
scalar_t__ fgets(char *, int, int /*<<< orphan*/ *);
int /*<<< orphan*/ *fopen(char *, char *);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *, ...);
int /*<<< orphan*/ fputs(char const *const, int /*<<< orphan*/ *);
scalar_t__ isdigit(char);
scalar_t__ isspace(char);
int /*<<< orphan*/ perror(char *);
int /*<<< orphan*/ putc_entity(char, int /*<<< orphan*/ *);
int /*<<< orphan*/ sscanf(char *, char *, char *, int *);
int /*<<< orphan*/ *stderr;
int /*<<< orphan*/ *stdin;
int /*<<< orphan*/ *stdout;
char *strchr(char *, char);
int strlen(char *);
int /*<<< orphan*/ strmove(char *, char *);
scalar_t__ strncmp(char *, char *, int);
char *strstr(char *, char *);
char tolower(char);
int main(int argc, char *argv[]) {
  FILE *infile, *outfile;
  char line[1024], *lineptr, *endptr, endchar, *paren, name[1024];
  int section, pre, font, blist, list, linenum;
  const char *post;
  static const char *const start_fonts[] = {"", "<b>", "<i>"},
                           *const end_fonts[] = {"", "</b>", "</i>"};
  if (argc > 3) {
    fputs("Usage: mantohtml [filename.man [filename.html]]\n", stderr);
    return (1);
  }
  if (argc > 1) {
    if ((infile = fopen(argv[1], "r")) == NULL) {
      perror(argv[1]);
      return (1);
    }
  } else
    infile = stdin;
  if (argc > 2) {
    if ((outfile = fopen(argv[2], "w")) == NULL) {
      perror(argv[2]);
      fclose(infile);
      return (1);
    }
  } else
    outfile = stdout;
  fputs("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" "
        "\"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"
        "<html>\n"
        "<!-- SECTION: Man Pages -->\n"
        "<head>\n"
        "\t<style type='text/css'><!--\n"
        "\th1, h2, h3, p { font-family: sans-serif; text-align: justify; }\n"
        "\ttt, pre a:link, pre a:visited, tt a:link, tt a:visited { "
        "font-weight: bold; color: #7f0000; }\n"
        "\tpre { font-weight: bold; color: #7f0000; margin-left: 2em; }\n"
        "\th1.title, h2.title, h3.title { border-bottom: solid 2px #000000; }\n"
        "\t--></style>\n",
        outfile);
  blist = 0;
  font = 0;
  list = 0;
  linenum = 0;
  pre = 0;
  post = NULL;
  section = -1;
  while (fgets(line, sizeof(line), infile)) {
    linenum++;
    if (line[0] == '.') {
      while (line[1] == ' ' || line[1] == '\t')
        strmove(line + 1, line + 2);
      if (!strncmp(line, ".TH ", 4) && section < 0) {
        sscanf(line + 4, "%s%d", name, &section);
        fprintf(outfile,
                "\t<title>%s(%d)</title>\n"
                "</head>\n"
                "<body>\n"
                "<h2>%s(%d)</h2>\n"
                "%s",
                name, section, name, section, start_fonts[font]);
      } else if (section < 0)
        continue;
      else if (!strncmp(line, ".SH ", 4) || !strncmp(line, ".Sh ", 4)) {
        int first = 1;
        fputs(end_fonts[font], outfile);
        if (blist) {
          fputs("</li>\n</ul>\n", outfile);
          blist = 0;
        }
        if (list) {
          if (list == 1)
            fputs("</dt>\n", outfile);
          else if (list)
            fputs("</dd>\n", outfile);
          fputs("</dl>\n", outfile);
          list = 0;
        }
        line[strlen(line) - 1] = '\0';
        if (line[2] == 'H')
          fputs("<h3><a name='", outfile);
        else
          fputs("<h4><a name='", outfile);
        for (lineptr = line + 4; *lineptr; lineptr++)
          if (*lineptr == '\"')
            continue;
          else if (*lineptr == ' ')
            putc_entity('_', outfile);
          else
            putc_entity(*lineptr, outfile);
        fputs("'>", outfile);
        for (lineptr = line + 4; *lineptr; lineptr++)
          if (*lineptr == '\"')
            continue;
          else if (*lineptr == ' ') {
            putc_entity(' ', outfile);
            first = 1;
          } else {
            if (first)
              putc_entity(*lineptr, outfile);
            else
              putc_entity(tolower(*lineptr), outfile);
            first = 0;
          }
        if (line[2] == 'H')
          fprintf(outfile, "</a></h3>\n%s", start_fonts[font]);
        else
          fprintf(outfile, "</a></h4>\n%s", start_fonts[font]);
      } else if (!strncmp(line, ".LP", 3) || !strncmp(line, ".PP", 3)) {
        fputs(end_fonts[font], outfile);
        if (blist) {
          fputs("</li>\n</ul>\n", outfile);
          blist = 0;
        }
        if (list) {
          if (list == 1)
            fputs("</dt>\n", outfile);
          else if (list)
            fputs("</dd>\n", outfile);
          fputs("</dl>\n", outfile);
          list = 0;
        }
        fputs("<p>", outfile);
        font = 0;
      } else if (!strncmp(line, ".TP ", 4)) {
        fputs(end_fonts[font], outfile);
        if (blist) {
          fputs("</li>\n</ul>\n", outfile);
          blist = 0;
        }
        if (!list)
          fputs("<dl>\n", outfile);
        else if (list == 1)
          fputs("</dt>\n", outfile);
        else if (list)
          fputs("</dd>\n", outfile);
        fputs("<!-- NEED 3 --><dt>", outfile);
        list = 1;
        font = 0;
      } else if (!strncmp(line, ".br", 3)) {
        if (list == 1) {
          fputs("</dt>\n<dd>", outfile);
          list = 2;
        } else if (list)
          fputs("</dd>\n<dd>", outfile);
        else if (!pre)
          fputs("<br>\n", outfile);
      } else if (!strncmp(line, ".de ", 4)) {
        while (fgets(line, sizeof(line), infile)) {
          linenum++;
          if (!strncmp(line, "..", 2))
            break;
        }
      } else if (!strncmp(line, ".RS", 3)) {
        fputs("<div style='margin-left: 3em;'>\n", outfile);
      } else if (!strncmp(line, ".RE", 3)) {
        fputs("</div>\n", outfile);
      } else if (!strncmp(line, ".ds ", 4) || !strncmp(line, ".rm ", 4) ||
                 !strncmp(line, ".tr ", 4) || !strncmp(line, ".hy ", 4) ||
                 !strncmp(line, ".IX ", 4) || !strncmp(line, ".PD", 3) ||
                 !strncmp(line, ".Sp", 3)) {
      } else if (!strncmp(line, ".Vb", 3) || !strncmp(line, ".nf", 3)) {
        pre = 1;
        fputs("<pre>\n", outfile);
      } else if (!strncmp(line, ".Ve", 3) || !strncmp(line, ".fi", 3)) {
        if (pre) {
          pre = 0;
          fputs("</pre>\n", outfile);
        }
      } else if (!strncmp(line, ".IP \\(bu", 8)) {
        if (blist)
          fputs("</li>\n", outfile);
        else {
          fputs("<ul>\n", outfile);
          blist = 1;
        }
        fputs("<li>", outfile);
      } else if (!strncmp(line, ".IP ", 4)) {
        if (blist) {
          fputs("</li>\n</ul>\n", outfile);
          blist = 0;
        }
        fputs("<p style='margin-left: 3em;'>", outfile);
        for (lineptr = line + 4; isspace(*lineptr); lineptr++)
          ;
        if (*lineptr == '\"') {
          strmove(line, lineptr + 1);
          if ((lineptr = strchr(line, '\"')) != NULL)
            *lineptr = '\0';
        } else {
          strmove(line, lineptr);
          if ((lineptr = strchr(line, ' ')) != NULL)
            *lineptr = '\0';
        }
        post = "\n<br />\n<br />";
        goto process_text;
      } else if (!strncmp(line, ".\\}", 3)) {
      } else if (!strncmp(line, ".ie", 3) || !strncmp(line, ".if", 3) ||
                 !strncmp(line, ".el", 3)) {
        if (strchr(line, '{') != NULL) {
          while (fgets(line, sizeof(line), infile)) {
            linenum++;
            if (strchr(line, '}') != NULL)
              break;
          }
        }
      } else if (!strncmp(line, ".B ", 3)) {
        fprintf(outfile, "%s<b>%s</b>%s", end_fonts[font], line + 3,
                start_fonts[font]);
      } else if (!strncmp(line, ".I ", 3)) {
        fprintf(outfile, "%s<i>%s</i>%s", end_fonts[font], line + 3,
                start_fonts[font]);
      } else if (strncmp(line, ".\\\"", 3)) {
        if ((lineptr = strchr(line, ' ')) != NULL)
          *lineptr = '\0';
        else if ((lineptr = strchr(line, '\n')) != NULL)
          *lineptr = '\0';
        fprintf(stderr,
                "mantohtml: Unknown man page command \'%s\' on line %d!\n",
                line, linenum);
      }
      lineptr = line + strlen(line) - 2;
      if (lineptr >= line && *lineptr == '\\') {
        while (fgets(line, sizeof(line), infile)) {
          linenum++;
          lineptr = line + strlen(line) - 2;
          if (lineptr < line || *lineptr != '\\')
            break;
        }
      }
    } else {
    process_text:
      for (lineptr = line; *lineptr; lineptr++) {
        if (!strncmp(lineptr, "http://", 7)) {
          for (endptr = lineptr + 7; *endptr && !isspace(*endptr & 255);
               endptr++)
            ;
          endchar = *endptr;
          *endptr = '\0';
          fprintf(outfile, "<a href='%s'>%s</a>", lineptr, lineptr);
          *endptr = endchar;
          lineptr = endptr - 1;
        } else if (!strncmp(lineptr, "\\fI", 3) &&
                   (endptr = strstr(lineptr, "\\fR")) != NULL &&
                   (paren = strchr(lineptr, '(')) != NULL && paren < endptr) {
          lineptr += 3;
          endchar = *endptr;
          *endptr = '\0';
          fputs("<i>", outfile);
          while (*lineptr)
            putc_entity(*lineptr++, outfile);
          fputs("</i>", outfile);
          *endptr = endchar;
          lineptr = endptr + 2;
        } else if (*lineptr == '\\') {
          lineptr++;
          if (!*lineptr)
            break;
          else if (isdigit(lineptr[0]) && isdigit(lineptr[1]) &&
                   isdigit(lineptr[2])) {
            fprintf(outfile, "&#%d;",
                    ((lineptr[0] - '0') * 8 + lineptr[1] - '0') * 8 +
                        lineptr[2] - '0');
            lineptr += 2;
          } else if (*lineptr == '&')
            continue;
          else if (*lineptr == 's') {
            while (lineptr[1] == '-' || isdigit(lineptr[1]))
              lineptr++;
          } else if (*lineptr == '*') {
            lineptr += 2;
          } else if (*lineptr != 'f')
            putc_entity(*lineptr, outfile);
          else {
            lineptr++;
            if (!*lineptr)
              break;
            else {
              fputs(end_fonts[font], outfile);
              switch (*lineptr) {
              default:
                font = 0;
                break;
              case 'B':
              case 'b':
                font = 1;
                break;
              case 'I':
              case 'i':
                font = 2;
                break;
              }
              fputs(start_fonts[font], outfile);
            }
          }
        } else
          putc_entity(*lineptr, outfile);
      }
      if (post) {
        fputs(post, outfile);
        post = NULL;
      }
    }
  }
  fprintf(outfile, "%s\n", end_fonts[font]);
  if (blist) {
    fputs("</li>\n</ul>\n", outfile);
    blist = 0;
  }
  if (list) {
    if (list == 1)
      fputs("</dt>\n", outfile);
    else if (list)
      fputs("</dd>\n", outfile);
    fputs("</dl>\n", outfile);
    list = 0;
  }
  fputs("</body>\n"
        "</html>\n",
        outfile);
  if (infile != stdin)
    fclose(infile);
  if (outfile != stdout)
    fclose(outfile);
  return (0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x890,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
cmpl   $0x3,-0x8(%rbp)
jle    1245 <main+0x45>
mov    0x3dae(%rip),%rax
mov    (%rax),%rsi
lea    0x1e7e(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x1,-0x4(%rbp)
jmp    293f <main+0x173f>
cmpl   $0x1,-0x8(%rbp)
jle    128f <main+0x8f>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
lea    0x213b(%rip),%rsi
call   1100 <fopen@plt>
mov    %rax,-0x18(%rbp)
cmp    $0x0,%rax
jne    128a <main+0x8a>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
call   1110 <perror@plt>
movl   $0x1,-0x4(%rbp)
jmp    293f <main+0x173f>
jmp    129d <main+0x9d>
mov    0x3d52(%rip),%rax
mov    (%rax),%rax
mov    %rax,-0x18(%rbp)
cmpl   $0x2,-0x8(%rbp)
jle    12f0 <main+0xf0>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
lea    0x1e2d(%rip),%rsi
call   1100 <fopen@plt>
mov    %rax,-0x20(%rbp)
cmp    $0x0,%rax
jne    12eb <main+0xeb>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rdi
call   1110 <perror@plt>
mov    -0x18(%rbp),%rdi
call   1050 <fclose@plt>
movl   $0x1,-0x4(%rbp)
jmp    293f <main+0x173f>
jmp    12fe <main+0xfe>
mov    0x3cd9(%rip),%rax
mov    (%rax),%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x1ddc(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x850(%rbp)
movl   $0x0,-0x84c(%rbp)
movl   $0x0,-0x854(%rbp)
movl   $0x0,-0x858(%rbp)
movl   $0x0,-0x848(%rbp)
movq   $0x0,-0x860(%rbp)
movl   $0xffffffff,-0x844(%rbp)
ff ff ff
lea    -0x420(%rbp),%rdi
mov    -0x18(%rbp),%rdx
mov    $0x400,%esi
call   10a0 <fgets@plt>
cmp    $0x0,%rax
je     2838 <main+0x1638>
mov    -0x858(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x858(%rbp)
movsbl -0x420(%rbp),%eax
cmp    $0x2e,%eax
jne    22cf <main+0x10cf>
jmp    1398 <main+0x198>
movsbl -0x41f(%rbp),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0x865(%rbp)
je     13c3 <main+0x1c3>
movsbl -0x41f(%rbp),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x865(%rbp)
mov    -0x865(%rbp),%al
test   $0x1,%al
jne    13d6 <main+0x1d6>
jmp    13f6 <main+0x1f6>
lea    -0x420(%rbp),%rdi
add    $0x1,%rdi
lea    -0x420(%rbp),%rsi
add    $0x2,%rsi
call   10d0 <strmove@plt>
jmp    1398 <main+0x198>
lea    -0x420(%rbp),%rdi
lea    0x1ec3(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1492 <main+0x292>
cmpl   $0x0,-0x844(%rbp)
jge    1492 <main+0x292>
lea    -0x420(%rbp),%rdi
add    $0x4,%rdi
lea    -0x840(%rbp),%rdx
lea    0x1e8e(%rip),%rsi
lea    -0x844(%rbp),%rcx
call   10f0 <sscanf@plt>
mov    -0x20(%rbp),%rdi
lea    -0x840(%rbp),%rdx
mov    -0x844(%rbp),%ecx
lea    -0x840(%rbp),%r8
mov    -0x844(%rbp),%r9d
movslq -0x84c(%rbp),%rsi
lea    0x3959(%rip),%rax
mov    (%rax,%rsi,8),%rax
lea    0x1e4f(%rip),%rsi
mov    %rax,(%rsp)
mov    $0x0,%al
call   10b0 <fprintf@plt>
jmp    21cc <main+0xfcc>
cmpl   $0x0,-0x844(%rbp)
jge    14a4 <main+0x2a4>
jmp    1355 <main+0x155>
lea    -0x420(%rbp),%rdi
lea    0x1e58(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     14e8 <main+0x2e8>
lea    -0x420(%rbp),%rdi
lea    0x1e3b(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    17cc <main+0x5cc>
movl   $0x1,-0x864(%rbp)
movslq -0x84c(%rbp),%rcx
lea    0x38f0(%rip),%rax
mov    (%rax,%rcx,8),%rdi
mov    -0x20(%rbp),%rsi
call   1080 <fputs@plt>
cmpl   $0x0,-0x850(%rbp)
je     1534 <main+0x334>
mov    -0x20(%rbp),%rsi
lea    0x1def(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x850(%rbp)
cmpl   $0x0,-0x854(%rbp)
je     159f <main+0x39f>
cmpl   $0x1,-0x854(%rbp)
jne    1563 <main+0x363>
mov    -0x20(%rbp),%rsi
lea    0x1dc8(%rip),%rdi
call   1080 <fputs@plt>
jmp    1585 <main+0x385>
cmpl   $0x0,-0x854(%rbp)
je     1580 <main+0x380>
mov    -0x20(%rbp),%rsi
lea    0x1dad(%rip),%rdi
call   1080 <fputs@plt>
jmp    1585 <main+0x385>
mov    -0x20(%rbp),%rsi
lea    0x1d9f(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x854(%rbp)
lea    -0x420(%rbp),%rdi
call   1060 <strlen@plt>
sub    $0x1,%eax
cltq
movb   $0x0,-0x420(%rbp,%rax,1)
movsbl -0x41e(%rbp),%eax
cmp    $0x48,%eax
jne    15dd <main+0x3dd>
mov    -0x20(%rbp),%rsi
lea    0x1d63(%rip),%rdi
call   1080 <fputs@plt>
jmp    15ed <main+0x3ed>
mov    -0x20(%rbp),%rsi
lea    0x1d5c(%rip),%rdi
call   1080 <fputs@plt>
lea    -0x420(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
cmpb   $0x0,(%rax)
je     1683 <main+0x483>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
jne    1627 <main+0x427>
jmp    166c <main+0x46c>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x20,%eax
jne    164d <main+0x44d>
mov    -0x20(%rbp),%rsi
mov    $0x5f,%edi
call   10c0 <putc_entity@plt>
jmp    1662 <main+0x462>
mov    -0x428(%rbp),%rax
mov    (%rax),%al
mov    -0x20(%rbp),%rsi
movsbl %al,%edi
call   10c0 <putc_entity@plt>
jmp    1667 <main+0x467>
jmp    166c <main+0x46c>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
jmp    15ff <main+0x3ff>
mov    -0x20(%rbp),%rsi
lea    0x1ddd(%rip),%rdi
call   1080 <fputs@plt>
lea    -0x420(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
cmpb   $0x0,(%rax)
je     176a <main+0x56a>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
jne    16cd <main+0x4cd>
jmp    1753 <main+0x553>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x20,%eax
jne    16fd <main+0x4fd>
mov    -0x20(%rbp),%rsi
mov    $0x20,%edi
call   10c0 <putc_entity@plt>
movl   $0x1,-0x864(%rbp)
jmp    1749 <main+0x549>
cmpl   $0x0,-0x864(%rbp)
je     1724 <main+0x524>
mov    -0x428(%rbp),%rax
mov    (%rax),%al
mov    -0x20(%rbp),%rsi
movsbl %al,%edi
call   10c0 <putc_entity@plt>
jmp    173f <main+0x53f>
mov    -0x428(%rbp),%rax
movsbl (%rax),%edi
call   10e0 <tolower@plt>
mov    -0x20(%rbp),%rsi
movsbl %al,%edi
call   10c0 <putc_entity@plt>
movl   $0x0,-0x864(%rbp)
jmp    174e <main+0x54e>
jmp    1753 <main+0x553>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
jmp    16a5 <main+0x4a5>
movsbl -0x41e(%rbp),%eax
cmp    $0x48,%eax
jne    17a3 <main+0x5a3>
mov    -0x20(%rbp),%rdi
movslq -0x84c(%rbp),%rcx
lea    0x3644(%rip),%rax
mov    (%rax,%rcx,8),%rdx
lea    0x1bbb(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
jmp    17c7 <main+0x5c7>
mov    -0x20(%rbp),%rdi
movslq -0x84c(%rbp),%rcx
lea    0x361b(%rip),%rax
mov    (%rax,%rcx,8),%rdx
lea    0x1b9f(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
jmp    21c2 <main+0xfc2>
lea    -0x420(%rbp),%rdi
lea    0x1b92(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1810 <main+0x610>
lea    -0x420(%rbp),%rdi
lea    0x1b74(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    18dc <main+0x6dc>
movslq -0x84c(%rbp),%rcx
lea    0x35d2(%rip),%rax
mov    (%rax,%rcx,8),%rdi
mov    -0x20(%rbp),%rsi
call   1080 <fputs@plt>
cmpl   $0x0,-0x850(%rbp)
je     1852 <main+0x652>
mov    -0x20(%rbp),%rsi
lea    0x1ad1(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x850(%rbp)
cmpl   $0x0,-0x854(%rbp)
je     18bd <main+0x6bd>
cmpl   $0x1,-0x854(%rbp)
jne    1881 <main+0x681>
mov    -0x20(%rbp),%rsi
lea    0x1aaa(%rip),%rdi
call   1080 <fputs@plt>
jmp    18a3 <main+0x6a3>
cmpl   $0x0,-0x854(%rbp)
je     189e <main+0x69e>
mov    -0x20(%rbp),%rsi
lea    0x1a8f(%rip),%rdi
call   1080 <fputs@plt>
jmp    18a3 <main+0x6a3>
mov    -0x20(%rbp),%rsi
lea    0x1a81(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x854(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x1aac(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x84c(%rbp)
jmp    21bd <main+0xfbd>
lea    -0x420(%rbp),%rdi
lea    0x1a8e(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    19d4 <main+0x7d4>
movslq -0x84c(%rbp),%rcx
lea    0x34e4(%rip),%rax
mov    (%rax,%rcx,8),%rdi
mov    -0x20(%rbp),%rsi
call   1080 <fputs@plt>
cmpl   $0x0,-0x850(%rbp)
je     1940 <main+0x740>
mov    -0x20(%rbp),%rsi
lea    0x19e3(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x850(%rbp)
cmpl   $0x0,-0x854(%rbp)
jne    1962 <main+0x762>
mov    -0x20(%rbp),%rsi
lea    0x1a25(%rip),%rdi
call   1080 <fputs@plt>
jmp    19ab <main+0x7ab>
cmpl   $0x1,-0x854(%rbp)
jne    1984 <main+0x784>
mov    -0x20(%rbp),%rsi
lea    0x19a7(%rip),%rdi
call   1080 <fputs@plt>
jmp    19a6 <main+0x7a6>
cmpl   $0x0,-0x854(%rbp)
je     19a1 <main+0x7a1>
mov    -0x20(%rbp),%rsi
lea    0x198c(%rip),%rdi
call   1080 <fputs@plt>
jmp    19a6 <main+0x7a6>
jmp    19ab <main+0x7ab>
mov    -0x20(%rbp),%rsi
lea    0x19cd(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x1,-0x854(%rbp)
movl   $0x0,-0x84c(%rbp)
jmp    21b8 <main+0xfb8>
lea    -0x420(%rbp),%rdi
lea    0x19b5(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1a70 <main+0x870>
cmpl   $0x1,-0x854(%rbp)
jne    1a22 <main+0x822>
mov    -0x20(%rbp),%rsi
lea    0x198d(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x2,-0x854(%rbp)
jmp    1a6b <main+0x86b>
cmpl   $0x0,-0x854(%rbp)
je     1a44 <main+0x844>
mov    -0x20(%rbp),%rsi
lea    0x196c(%rip),%rdi
call   1080 <fputs@plt>
jmp    1a66 <main+0x866>
cmpl   $0x0,-0x848(%rbp)
jne    1a61 <main+0x861>
mov    -0x20(%rbp),%rsi
lea    0x1955(%rip),%rdi
call   1080 <fputs@plt>
jmp    1a66 <main+0x866>
jmp    1a6b <main+0x86b>
jmp    21b3 <main+0xfb3>
lea    -0x420(%rbp),%rdi
lea    0x1939(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1af6 <main+0x8f6>
jmp    1a97 <main+0x897>
lea    -0x420(%rbp),%rdi
mov    -0x18(%rbp),%rdx
mov    $0x400,%esi
call   10a0 <fgets@plt>
cmp    $0x0,%rax
je     1af1 <main+0x8f1>
mov    -0x858(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x858(%rbp)
lea    -0x420(%rbp),%rdi
lea    0x18e9(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1aec <main+0x8ec>
jmp    1af1 <main+0x8f1>
jmp    1a97 <main+0x897>
jmp    21ae <main+0xfae>
lea    -0x420(%rbp),%rdi
lea    0x18bb(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1b2d <main+0x92d>
mov    -0x20(%rbp),%rsi
lea    0x18a0(%rip),%rdi
call   1080 <fputs@plt>
jmp    21a9 <main+0xfa9>
lea    -0x420(%rbp),%rdi
lea    0x18a9(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1b64 <main+0x964>
mov    -0x20(%rbp),%rsi
lea    0x188e(%rip),%rdi
call   1080 <fputs@plt>
jmp    21a4 <main+0xfa4>
lea    -0x420(%rbp),%rdi
lea    0x187e(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c52 <main+0xa52>
lea    -0x420(%rbp),%rdi
lea    0x1861(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c52 <main+0xa52>
lea    -0x420(%rbp),%rdi
lea    0x1844(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c52 <main+0xa52>
lea    -0x420(%rbp),%rdi
lea    0x1827(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c52 <main+0xa52>
lea    -0x420(%rbp),%rdi
lea    0x180a(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c52 <main+0xa52>
lea    -0x420(%rbp),%rdi
lea    0x17ed(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c52 <main+0xa52>
lea    -0x420(%rbp),%rdi
lea    0x17cf(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1c57 <main+0xa57>
jmp    219f <main+0xf9f>
lea    -0x420(%rbp),%rdi
lea    0x17ac(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1c9b <main+0xa9b>
lea    -0x420(%rbp),%rdi
lea    0x178e(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1cba <main+0xaba>
movl   $0x1,-0x848(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x1769(%rip),%rdi
call   1080 <fputs@plt>
jmp    219a <main+0xf9a>
lea    -0x420(%rbp),%rdi
lea    0x1758(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1cfe <main+0xafe>
lea    -0x420(%rbp),%rdi
lea    0x173a(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1d2a <main+0xb2a>
cmpl   $0x0,-0x848(%rbp)
je     1d25 <main+0xb25>
movl   $0x0,-0x848(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x1708(%rip),%rdi
call   1080 <fputs@plt>
jmp    2195 <main+0xf95>
lea    -0x420(%rbp),%rdi
lea    0x16f8(%rip),%rsi
mov    $0x8,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1d9d <main+0xb9d>
cmpl   $0x0,-0x850(%rbp)
je     1d6e <main+0xb6e>
mov    -0x20(%rbp),%rsi
lea    0x16d5(%rip),%rdi
call   1080 <fputs@plt>
jmp    1d88 <main+0xb88>
mov    -0x20(%rbp),%rsi
lea    0x16c7(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x1,-0x850(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x16b3(%rip),%rdi
call   1080 <fputs@plt>
jmp    2190 <main+0xf90>
lea    -0x420(%rbp),%rdi
lea    0x16a0(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1eef <main+0xcef>
cmpl   $0x0,-0x850(%rbp)
je     1de6 <main+0xbe6>
mov    -0x20(%rbp),%rsi
lea    0x153d(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x850(%rbp)
mov    -0x20(%rbp),%rsi
lea    0x165f(%rip),%rdi
call   1080 <fputs@plt>
lea    -0x420(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
movsbl (%rax),%edi
call   1090 <isspace@plt>
cmp    $0x0,%rax
je     1e3d <main+0xc3d>
jmp    1e26 <main+0xc26>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
jmp    1e08 <main+0xc08>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
jne    1e98 <main+0xc98>
lea    -0x420(%rbp),%rdi
mov    -0x428(%rbp),%rsi
add    $0x1,%rsi
call   10d0 <strmove@plt>
lea    -0x420(%rbp),%rdi
mov    $0x22,%esi
call   1070 <strchr@plt>
mov    %rax,-0x428(%rbp)
cmp    $0x0,%rax
je     1e93 <main+0xc93>
mov    -0x428(%rbp),%rax
movb   $0x0,(%rax)
jmp    1edc <main+0xcdc>
lea    -0x420(%rbp),%rdi
mov    -0x428(%rbp),%rsi
call   10d0 <strmove@plt>
lea    -0x420(%rbp),%rdi
mov    $0x20,%esi
call   1070 <strchr@plt>
mov    %rax,-0x428(%rbp)
cmp    $0x0,%rax
je     1ed7 <main+0xcd7>
mov    -0x428(%rbp),%rax
movb   $0x0,(%rax)
jmp    1edc <main+0xcdc>
lea    0x158b(%rip),%rax
mov    %rax,-0x860(%rbp)
jmp    22d4 <main+0x10d4>
lea    -0x420(%rbp),%rdi
lea    0x1580(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1f16 <main+0xd16>
jmp    2186 <main+0xf86>
lea    -0x420(%rbp),%rdi
lea    0x155d(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1f7c <main+0xd7c>
lea    -0x420(%rbp),%rdi
lea    0x153f(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     1f7c <main+0xd7c>
lea    -0x420(%rbp),%rdi
lea    0x1521(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    1ff9 <main+0xdf9>
lea    -0x420(%rbp),%rdi
mov    $0x7b,%esi
call   1070 <strchr@plt>
cmp    $0x0,%rax
je     1ff4 <main+0xdf4>
jmp    1f9c <main+0xd9c>
lea    -0x420(%rbp),%rdi
mov    -0x18(%rbp),%rdx
mov    $0x400,%esi
call   10a0 <fgets@plt>
cmp    $0x0,%rax
je     1fef <main+0xdef>
mov    -0x858(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x858(%rbp)
lea    -0x420(%rbp),%rdi
mov    $0x7d,%esi
call   1070 <strchr@plt>
cmp    $0x0,%rax
je     1fea <main+0xdea>
jmp    1fef <main+0xdef>
jmp    1f9c <main+0xd9c>
jmp    1ff4 <main+0xdf4>
jmp    2181 <main+0xf81>
lea    -0x420(%rbp),%rdi
lea    0x1486(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    2061 <main+0xe61>
mov    -0x20(%rbp),%rdi
movslq -0x84c(%rbp),%rcx
lea    0x2dc3(%rip),%rax
mov    (%rax,%rcx,8),%rdx
lea    -0x420(%rbp),%rcx
add    $0x3,%rcx
movslq -0x84c(%rbp),%rsi
lea    0x2d86(%rip),%rax
mov    (%rax,%rsi,8),%r8
lea    0x143c(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
jmp    217c <main+0xf7c>
lea    -0x420(%rbp),%rdi
lea    0x1430(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    20c9 <main+0xec9>
mov    -0x20(%rbp),%rdi
movslq -0x84c(%rbp),%rcx
lea    0x2d5b(%rip),%rax
mov    (%rax,%rcx,8),%rdx
lea    -0x420(%rbp),%rcx
add    $0x3,%rcx
movslq -0x84c(%rbp),%rsi
lea    0x2d1e(%rip),%rax
mov    (%rax,%rsi,8),%r8
lea    0x13e6(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
jmp    2177 <main+0xf77>
lea    -0x420(%rbp),%rdi
lea    0x13da(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
je     2172 <main+0xf72>
lea    -0x420(%rbp),%rdi
mov    $0x20,%esi
call   1070 <strchr@plt>
mov    %rax,-0x428(%rbp)
cmp    $0x0,%rax
je     211c <main+0xf1c>
mov    -0x428(%rbp),%rax
movb   $0x0,(%rax)
jmp    214d <main+0xf4d>
lea    -0x420(%rbp),%rdi
mov    $0xa,%esi
call   1070 <strchr@plt>
mov    %rax,-0x428(%rbp)
cmp    $0x0,%rax
je     2148 <main+0xf48>
mov    -0x428(%rbp),%rax
movb   $0x0,(%rax)
jmp    214d <main+0xf4d>
mov    0x2e84(%rip),%rax
mov    (%rax),%rdi
lea    -0x420(%rbp),%rdx
mov    -0x858(%rbp),%ecx
lea    0x134a(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
jmp    2177 <main+0xf77>
jmp    217c <main+0xf7c>
jmp    2181 <main+0xf81>
jmp    2186 <main+0xf86>
jmp    218b <main+0xf8b>
jmp    2190 <main+0xf90>
jmp    2195 <main+0xf95>
jmp    219a <main+0xf9a>
jmp    219f <main+0xf9f>
jmp    21a4 <main+0xfa4>
jmp    21a9 <main+0xfa9>
jmp    21ae <main+0xfae>
jmp    21b3 <main+0xfb3>
jmp    21b8 <main+0xfb8>
jmp    21bd <main+0xfbd>
jmp    21c2 <main+0xfc2>
jmp    21c7 <main+0xfc7>
jmp    21cc <main+0xfcc>
lea    -0x420(%rbp),%rax
mov    %rax,-0x870(%rbp)
lea    -0x420(%rbp),%rdi
call   1060 <strlen@plt>
mov    %eax,%ecx
mov    -0x870(%rbp),%rax
movslq %ecx,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffe,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
lea    -0x420(%rbp),%rcx
cmp    %rcx,%rax
jb     22ca <main+0x10ca>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5c,%eax
jne    22ca <main+0x10ca>
jmp    222f <main+0x102f>
lea    -0x420(%rbp),%rdi
mov    -0x18(%rbp),%rdx
mov    $0x400,%esi
call   10a0 <fgets@plt>
cmp    $0x0,%rax
je     22c5 <main+0x10c5>
mov    -0x858(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x858(%rbp)
lea    -0x420(%rbp),%rax
mov    %rax,-0x878(%rbp)
lea    -0x420(%rbp),%rdi
call   1060 <strlen@plt>
mov    %eax,%ecx
mov    -0x878(%rbp),%rax
movslq %ecx,%rcx
add    %rcx,%rax
add    $0xfffffffffffffffe,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
lea    -0x420(%rbp),%rcx
cmp    %rcx,%rax
jb     22bb <main+0x10bb>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5c,%eax
je     22c0 <main+0x10c0>
jmp    22c5 <main+0x10c5>
jmp    222f <main+0x102f>
jmp    22ca <main+0x10ca>
jmp    2833 <main+0x1633>
jmp    22d4 <main+0x10d4>
lea    -0x420(%rbp),%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
cmpb   $0x0,(%rax)
je     2805 <main+0x1605>
mov    -0x428(%rbp),%rdi
lea    0x11eb(%rip),%rsi
mov    $0x7,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    23f5 <main+0x11f5>
mov    -0x428(%rbp),%rax
add    $0x7,%rax
mov    %rax,-0x430(%rbp)
mov    -0x430(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x879(%rbp)
je     2367 <main+0x1167>
mov    -0x430(%rbp),%rax
movsbl (%rax),%eax
and    $0xff,%eax
movsbl %al,%edi
call   1090 <isspace@plt>
cmp    $0x0,%rax
setne  %al
xor    $0xff,%al
mov    %al,-0x879(%rbp)
mov    -0x879(%rbp),%al
test   $0x1,%al
jne    237a <main+0x117a>
jmp    2396 <main+0x1196>
jmp    237f <main+0x117f>
mov    -0x430(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x430(%rbp)
jmp    2326 <main+0x1126>
mov    -0x430(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x431(%rbp)
mov    -0x430(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x20(%rbp),%rdi
mov    -0x428(%rbp),%rdx
mov    -0x428(%rbp),%rcx
lea    0x112b(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
mov    -0x431(%rbp),%cl
mov    -0x430(%rbp),%rax
mov    %cl,(%rax)
mov    -0x430(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0x428(%rbp)
jmp    27e9 <main+0x15e9>
mov    -0x428(%rbp),%rdi
lea    0x1104(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%rax
jne    251a <main+0x131a>
mov    -0x428(%rbp),%rdi
lea    0x10e6(%rip),%rsi
call   1120 <strstr@plt>
mov    %rax,-0x430(%rbp)
cmp    $0x0,%rax
je     251a <main+0x131a>
mov    -0x428(%rbp),%rdi
mov    $0x28,%esi
call   1070 <strchr@plt>
mov    %rax,-0x440(%rbp)
cmp    $0x0,%rax
je     251a <main+0x131a>
mov    -0x440(%rbp),%rax
cmp    -0x430(%rbp),%rax
jae    251a <main+0x131a>
mov    -0x428(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x428(%rbp)
mov    -0x430(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x431(%rbp)
mov    -0x430(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x20(%rbp),%rsi
lea    0xbfd(%rip),%rdi
call   1080 <fputs@plt>
mov    -0x428(%rbp),%rax
cmpb   $0x0,(%rax)
je     24e4 <main+0x12e4>
mov    -0x428(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x428(%rbp)
mov    (%rax),%al
mov    -0x20(%rbp),%rsi
movsbl %al,%edi
call   10c0 <putc_entity@plt>
jmp    24ac <main+0x12ac>
mov    -0x20(%rbp),%rsi
lea    0xbbe(%rip),%rdi
call   1080 <fputs@plt>
mov    -0x431(%rbp),%cl
mov    -0x430(%rbp),%rax
mov    %cl,(%rax)
mov    -0x430(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x428(%rbp)
jmp    27e4 <main+0x15e4>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5c,%eax
jne    27ca <main+0x15ca>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2554 <main+0x1354>
jmp    2805 <main+0x1605>
mov    -0x428(%rbp),%rax
movsbl (%rax),%edi
call   1040 <isdigit@plt>
cmp    $0x0,%rax
je     25fd <main+0x13fd>
mov    -0x428(%rbp),%rax
movsbl 0x1(%rax),%edi
call   1040 <isdigit@plt>
cmp    $0x0,%rax
je     25fd <main+0x13fd>
mov    -0x428(%rbp),%rax
movsbl 0x2(%rax),%edi
call   1040 <isdigit@plt>
cmp    $0x0,%rax
je     25fd <main+0x13fd>
mov    -0x20(%rbp),%rdi
mov    -0x428(%rbp),%rax
movsbl (%rax),%edx
sub    $0x30,%edx
shl    $0x3,%edx
mov    -0x428(%rbp),%rax
movsbl 0x1(%rax),%eax
add    %eax,%edx
sub    $0x30,%edx
shl    $0x3,%edx
mov    -0x428(%rbp),%rax
movsbl 0x2(%rax),%eax
add    %eax,%edx
sub    $0x30,%edx
lea    0xf30(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
mov    -0x428(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x428(%rbp)
jmp    27c0 <main+0x15c0>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x26,%eax
jne    2615 <main+0x1415>
jmp    27ee <main+0x15ee>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x73,%eax
jne    2695 <main+0x1495>
jmp    262d <main+0x142d>
mov    -0x428(%rbp),%rax
movsbl 0x1(%rax),%ecx
mov    $0x1,%al
cmp    $0x2d,%ecx
mov    %al,-0x87a(%rbp)
je     2666 <main+0x1466>
mov    -0x428(%rbp),%rax
movsbl 0x1(%rax),%edi
call   1040 <isdigit@plt>
cmp    $0x0,%rax
setne  %al
mov    %al,-0x87a(%rbp)
mov    -0x87a(%rbp),%al
test   $0x1,%al
jne    2679 <main+0x1479>
jmp    2690 <main+0x1490>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
jmp    262d <main+0x142d>
jmp    27b6 <main+0x15b6>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2a,%eax
jne    26bf <main+0x14bf>
mov    -0x428(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x428(%rbp)
jmp    27b1 <main+0x15b1>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x66,%eax
je     26ec <main+0x14ec>
mov    -0x428(%rbp),%rax
mov    (%rax),%al
mov    -0x20(%rbp),%rsi
movsbl %al,%edi
call   10c0 <putc_entity@plt>
jmp    27ac <main+0x15ac>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
mov    -0x428(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2713 <main+0x1513>
jmp    2805 <main+0x1605>
movslq -0x84c(%rbp),%rcx
lea    0x26cf(%rip),%rax
mov    (%rax,%rcx,8),%rdi
mov    -0x20(%rbp),%rsi
call   1080 <fputs@plt>
mov    -0x428(%rbp),%rax
movsbl (%rax),%eax
add    $0xffffffbe,%eax
mov    %eax,%ecx
mov    %rcx,-0x888(%rbp)
sub    $0x27,%eax
ja     2764 <main+0x1564>
mov    -0x888(%rbp),%rax
lea    0x8a5(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x0,-0x84c(%rbp)
jmp    278c <main+0x158c>
movl   $0x1,-0x84c(%rbp)
jmp    278c <main+0x158c>
movl   $0x2,-0x84c(%rbp)
movslq -0x84c(%rbp),%rcx
lea    0x2636(%rip),%rax
mov    (%rax,%rcx,8),%rdi
mov    -0x20(%rbp),%rsi
call   1080 <fputs@plt>
jmp    27ac <main+0x15ac>
jmp    27b1 <main+0x15b1>
jmp    27b6 <main+0x15b6>
jmp    27bb <main+0x15bb>
jmp    27c0 <main+0x15c0>
jmp    27c5 <main+0x15c5>
jmp    27df <main+0x15df>
mov    -0x428(%rbp),%rax
mov    (%rax),%al
mov    -0x20(%rbp),%rsi
movsbl %al,%edi
call   10c0 <putc_entity@plt>
jmp    27e4 <main+0x15e4>
jmp    27e9 <main+0x15e9>
jmp    27ee <main+0x15ee>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
jmp    22e2 <main+0x10e2>
cmpq   $0x0,-0x860(%rbp)
je     282e <main+0x162e>
mov    -0x860(%rbp),%rdi
mov    -0x20(%rbp),%rsi
call   1080 <fputs@plt>
movq   $0x0,-0x860(%rbp)
jmp    2833 <main+0x1633>
jmp    1355 <main+0x155>
mov    -0x20(%rbp),%rdi
movslq -0x84c(%rbp),%rcx
lea    0x25a6(%rip),%rax
mov    (%rax,%rcx,8),%rdx
lea    0xcc0(%rip),%rsi
mov    $0x0,%al
call   10b0 <fprintf@plt>
cmpl   $0x0,-0x850(%rbp)
je     2883 <main+0x1683>
mov    -0x20(%rbp),%rsi
lea    0xaa0(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x850(%rbp)
cmpl   $0x0,-0x854(%rbp)
je     28ee <main+0x16ee>
cmpl   $0x1,-0x854(%rbp)
jne    28b2 <main+0x16b2>
mov    -0x20(%rbp),%rsi
lea    0xa79(%rip),%rdi
call   1080 <fputs@plt>
jmp    28d4 <main+0x16d4>
cmpl   $0x0,-0x854(%rbp)
je     28cf <main+0x16cf>
mov    -0x20(%rbp),%rsi
lea    0xa5e(%rip),%rdi
call   1080 <fputs@plt>
jmp    28d4 <main+0x16d4>
mov    -0x20(%rbp),%rsi
lea    0xa50(%rip),%rdi
call   1080 <fputs@plt>
movl   $0x0,-0x854(%rbp)
mov    -0x20(%rbp),%rsi
lea    0xc20(%rip),%rdi
call   1080 <fputs@plt>
mov    -0x18(%rbp),%rax
mov    0x26df(%rip),%rcx
cmp    (%rcx),%rax
je     291b <main+0x171b>
mov    -0x18(%rbp),%rdi
call   1050 <fclose@plt>
mov    -0x20(%rbp),%rax
mov    0x26aa(%rip),%rcx
cmp    (%rcx),%rax
je     2938 <main+0x1738>
mov    -0x20(%rbp),%rdi
call   1050 <fclose@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x890,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x848,%rsp
cmp    $0x4,%edi
jl     1250 <main+0x40>
mov    0x3dab(%rip),%rax
mov    (%rax),%rcx
lea    0x1e7b(%rip),%rdi
mov    $0x30,%esi
mov    $0x1,%edx
call   1120 <fwrite@plt>
mov    $0x1,%ebx
jmp    2247 <main+0x1037>
mov    %edi,%ebp
cmp    $0x2,%edi
jl     1299 <main+0x89>
mov    %rsi,%rbx
mov    0x8(%rsi),%rdi
lea    0x2134(%rip),%rsi
call   1100 <fopen@plt>
test   %rax,%rax
je     225b <main+0x104b>
mov    %rax,%r13
cmp    $0x3,%ebp
jb     12a3 <main+0x93>
mov    0x10(%rbx),%rdi
lea    0x1e5d(%rip),%rsi
call   1100 <fopen@plt>
test   %rax,%rax
je     226b <main+0x105b>
mov    %rax,%r14
jmp    12ad <main+0x9d>
mov    0x3d48(%rip),%rax
mov    (%rax),%r13
mov    0x3d26(%rip),%rax
mov    (%rax),%r14
lea    0x1e31(%rip),%rdi
mov    $0x1e1,%esi
mov    $0x1,%edx
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
lea    0x41(%rsp),%r12
lea    0x42(%rsp),%rbx
movl   $0x0,0x20(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x0,0x10(%rsp)
movl   $0x0,0xc(%rsp)
xor    %ecx,%ecx
mov    %r14,0x18(%rsp)
mov    %r13,0x38(%rsp)
mov    %ecx,0x28(%rsp)
lea    0x40(%rsp),%rbp
jmp    1314 <main+0x104>
nop
test   %ecx,%ecx
jns    138e <main+0x17e>
mov    %rbp,%rdi
mov    $0x400,%esi
mov    %r13,%rdx
call   10a0 <fgets@plt>
test   %rax,%rax
je     217c <main+0xf6c>
addl   $0x1,0x28(%rsp)
mov    0x40(%rsp),%r15b
cmp    $0x2e,%r15b
je     135b <main+0x14b>
mov    %r15d,%eax
xor    %ecx,%ecx
jmp    16be <main+0x4ae>
nopw   0x0(%rax,%rax,1)
mov    %r12,%rdi
mov    %rbx,%rsi
call   10d0 <strmove@plt>
movzbl 0x41(%rsp),%eax
cmp    $0x20,%al
je     1350 <main+0x140>
cmp    $0x9,%al
je     1350 <main+0x140>
mov    %rbp,%rdi
lea    0x1f55(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
mov    0x2c(%rsp),%ecx
test   %rax,%rax
jne    1310 <main+0x100>
test   %ecx,%ecx
jns    1310 <main+0x100>
jmp    19f0 <main+0x7e0>
mov    %rbp,%rdi
lea    0x1f72(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1ac0 <main+0x8b0>
mov    %rbp,%rdi
lea    0x1f5a(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1ac0 <main+0x8b0>
mov    %rbp,%rdi
lea    0x1f9a(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1c4d <main+0xa3d>
mov    %rbp,%rdi
lea    0x1f81(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1c4d <main+0xa3d>
mov    %rbp,%rdi
lea    0x1f6c(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1d6e <main+0xb5e>
mov    %rbp,%rdi
lea    0x1f6e(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1dd0 <main+0xbc0>
mov    %rbp,%rdi
lea    0x1f71(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1e0b <main+0xbfb>
mov    %rbp,%rdi
lea    0x1f5c(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1e4a <main+0xc3a>
mov    %rbp,%rdi
lea    0x1f64(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1e60 <main+0xc50>
mov    %rbp,%rdi
lea    0x1f53(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1f3b(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1f23(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1f0b(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1ef3(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1edb(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1ec2(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x1ea9(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1d00 <main+0xaf0>
mov    %rbp,%rdi
lea    0x1e90(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1d00 <main+0xaf0>
mov    %rbp,%rdi
lea    0x1e7e(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1d26 <main+0xb16>
mov    %rbp,%rdi
lea    0x1e65(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1d26 <main+0xb16>
mov    %rbp,%rdi
lea    0x1e54(%rip),%rsi
mov    $0x8,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1e76 <main+0xc66>
mov    %rbp,%rdi
lea    0x1e52(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
jne    1e97 <main+0xc87>
cmpl   $0x0,0x10(%rsp)
je     162c <main+0x41c>
mov    $0xc,%esi
mov    $0x1,%edx
lea    0x1cf0(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    $0x1d,%esi
mov    $0x1,%edx
lea    0x1e13(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
lea    0x44(%rsp),%rbp
nopw   0x0(%rax,%rax,1)
movsbl 0x0(%rbp),%edi
call   1090 <isspace@plt>
add    $0x1,%rbp
test   %rax,%rax
jne    1650 <main+0x440>
cmpb   $0x22,-0x1(%rbp)
jne    1682 <main+0x472>
lea    0x40(%rsp),%rdi
mov    %rbp,%rsi
mov    %rdi,%rbp
call   10d0 <strmove@plt>
mov    %rbp,%rdi
mov    $0x22,%esi
jmp    169e <main+0x48e>
add    $0xffffffffffffffff,%rbp
lea    0x40(%rsp),%rdi
mov    %rbp,%rsi
mov    %rdi,%rbp
call   10d0 <strmove@plt>
mov    %rbp,%rdi
mov    $0x20,%esi
call   1070 <strchr@plt>
test   %rax,%rax
je     16ab <main+0x49b>
movb   $0x0,(%rax)
movl   $0x0,0x10(%rsp)
mov    0x40(%rsp),%al
lea    0x1db0(%rip),%rcx
mov    %rcx,0x30(%rsp)
test   %al,%al
je     19c7 <main+0x7b7>
mov    %rbp,%r13
jmp    170b <main+0x4fb>
mov    (%r14),%bpl
movb   $0x0,(%r14)
mov    0x18(%rsp),%rdi
lea    0x1e10(%rip),%rsi
mov    %r13,%rdx
mov    %r13,%rcx
xor    %eax,%eax
call   10b0 <fprintf@plt>
mov    %bpl,(%r14)
add    $0xffffffffffffffff,%r14
lea    0x40(%rsp),%rbp
lea    0x1(%r14),%r13
cmpb   $0x0,0x1(%r14)
je     19c7 <main+0x7b7>
mov    %r13,%rdi
lea    0x1dd6(%rip),%rsi
mov    $0x7,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     17d0 <main+0x5c0>
mov    %r13,%rdi
lea    0x1dd5(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1830 <main+0x620>
mov    0x0(%r13),%al
cmp    $0x5c,%al
jne    1810 <main+0x600>
mov    0x1(%r13),%al
test   %al,%al
je     19c7 <main+0x7b7>
movsbl %al,%edi
call   1040 <isdigit@plt>
test   %rax,%rax
je     18f0 <main+0x6e0>
movsbl 0x2(%r13),%edi
call   1040 <isdigit@plt>
test   %rax,%rax
je     18f0 <main+0x6e0>
movsbl 0x3(%r13),%edi
call   1040 <isdigit@plt>
test   %rax,%rax
je     18f0 <main+0x6e0>
lea    0x3(%r13),%r14
movsbl 0x1(%r13),%eax
movsbl 0x2(%r13),%ecx
lea    (%rcx,%rax,8),%eax
movsbl 0x3(%r13),%ecx
lea    (%rcx,%rax,8),%edx
add    $0xfffff250,%edx
mov    0x18(%rsp),%rdi
lea    0x1d50(%rip),%rsi
xor    %eax,%eax
call   10b0 <fprintf@plt>
jmp    16fc <main+0x4ec>
nopl   0x0(%rax,%rax,1)
lea    0x7(%r13),%r14
mov    0x7(%r13),%al
test   %al,%al
je     17fe <main+0x5ee>
nopl   0x0(%rax)
movsbl %al,%edi
call   1090 <isspace@plt>
test   %rax,%rax
jne    16d0 <main+0x4c0>
movzbl 0x1(%r14),%eax
add    $0x1,%r14
test   %al,%al
jne    17e0 <main+0x5d0>
xor    %ebp,%ebp
jmp    16d3 <main+0x4c3>
cs nopw 0x0(%rax,%rax,1)
nop
movsbl %al,%edi
mov    0x18(%rsp),%rsi
call   10c0 <putc_entity@plt>
mov    %r13,%r14
jmp    16fc <main+0x4ec>
cs nopw 0x0(%rax,%rax,1)
nop
mov    %r13,%rdi
lea    0x1cd1(%rip),%rsi
call   1130 <strstr@plt>
test   %rax,%rax
je     1745 <main+0x535>
mov    %rax,%r14
mov    %r13,%rdi
mov    $0x28,%esi
call   1070 <strchr@plt>
test   %rax,%rax
je     1745 <main+0x535>
cmp    %r14,%rax
jae    1745 <main+0x535>
mov    (%r14),%al
mov    %al,0x27(%rsp)
movb   $0x0,(%r14)
mov    $0x3,%esi
mov    $0x1,%edx
lea    0x181e(%rip),%rdi
mov    0x18(%rsp),%rbp
mov    %rbp,%rcx
call   1120 <fwrite@plt>
mov    0x3(%r13),%al
test   %al,%al
je     18b8 <main+0x6a8>
add    $0x4,%r13
nop
movsbl %al,%edi
mov    %rbp,%rsi
call   10c0 <putc_entity@plt>
movzbl 0x0(%r13),%eax
add    $0x1,%r13
test   %al,%al
jne    18a0 <main+0x690>
mov    $0x4,%esi
mov    $0x1,%edx
lea    0x17e4(%rip),%rdi
mov    %rbp,%rcx
call   1120 <fwrite@plt>
mov    0x27(%rsp),%al
mov    %al,(%r14)
add    $0x2,%r14
jmp    16f7 <main+0x4e7>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    0x1(%r13),%r14
mov    (%r14),%al
cmp    $0x65,%al
jg     1914 <main+0x704>
cmp    $0x26,%al
je     16fc <main+0x4ec>
cmp    $0x2a,%al
jne    1990 <main+0x780>
add    $0x3,%r13
jmp    181d <main+0x60d>
cmp    $0x66,%al
je     1944 <main+0x734>
cmp    $0x73,%al
jne    1990 <main+0x780>
nopl   0x0(%rax)
mov    %r14,%rbp
add    $0x1,%r14
movzbl 0x1(%rbp),%eax
cmp    $0x2d,%al
je     1920 <main+0x710>
movsbl %al,%edi
call   1040 <isdigit@plt>
test   %rax,%rax
jne    1920 <main+0x710>
mov    %rbp,%r14
jmp    16f7 <main+0x4e7>
cmpb   $0x0,0x2(%r13)
je     19c7 <main+0x7b7>
mov    %r13,%r14
add    $0x2,%r14
mov    0x14(%rsp),%eax
lea    0x3493(%rip),%rcx
mov    (%rcx,%rax,8),%rdi
mov    0x18(%rsp),%rsi
call   1080 <fputs@plt>
movsbl (%r14),%eax
xor    %edx,%edx
add    $0xffffffbe,%eax
cmp    $0x27,%eax
ja     19a7 <main+0x797>
lea    0x1680(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x1,%edx
jmp    19a7 <main+0x797>
movsbl %al,%edi
mov    0x18(%rsp),%rsi
call   10c0 <putc_entity@plt>
jmp    16fc <main+0x4ec>
mov    $0x2,%edx
mov    %edx,0x14(%rsp)
mov    %edx,%eax
lea    0x341c(%rip),%rcx
mov    (%rcx,%rax,8),%rdi
mov    0x18(%rsp),%rsi
call   1080 <fputs@plt>
jmp    16fc <main+0x4ec>
cmp    $0x2e,%r15b
mov    0x38(%rsp),%r13
mov    0x18(%rsp),%r14
jne    1314 <main+0x104>
mov    0x30(%rsp),%rdi
mov    %r14,%rsi
call   1080 <fputs@plt>
jmp    1314 <main+0x104>
nopl   (%rax)
lea    0x44(%rsp),%rdi
lea    0x18d0(%rip),%rsi
lea    0x440(%rsp),%r15
mov    %r15,%rdx
lea    0x2c(%rsp),%rcx
call   10f0 <sscanf@plt>
mov    0x2c(%rsp),%ecx
mov    0x14(%rsp),%eax
lea    0x33b0(%rip),%rdx
mov    (%rdx,%rax,8),%rax
mov    %rax,(%rsp)
mov    %r14,%rdi
lea    0x189f(%rip),%rsi
mov    %r15,%rdx
mov    %r15,%r8
mov    %ecx,%r9d
xor    %eax,%eax
call   10b0 <fprintf@plt>
mov    %rbp,%rdi
call   1060 <strlen@plt>
cltq
add    %rsp,%rax
add    $0x3e,%rax
cmp    %rbp,%rax
mov    0x28(%rsp),%ecx
jb     1304 <main+0xf4>
cmpb   $0x5c,(%rax)
jne    1304 <main+0xf4>
nopl   0x0(%rax)
mov    %ecx,%r15d
lea    0x40(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x400,%esi
mov    %r13,%rdx
call   10a0 <fgets@plt>
test   %rax,%rax
je     1ab8 <main+0x8a8>
mov    %rbp,%rdi
call   1060 <strlen@plt>
cltq
add    %rsp,%rax
add    $0x3e,%rax
cmp    %rbp,%rax
jb     1aac <main+0x89c>
lea    0x1(%r15),%ecx
cmpb   $0x5c,(%rax)
je     1a70 <main+0x860>
add    $0x1,%r15d
mov    %r15d,%ecx
jmp    1304 <main+0xf4>
mov    %r15d,%ecx
jmp    1304 <main+0xf4>
mov    %r14,%rbp
mov    0x14(%rsp),%r14d
lea    0x3321(%rip),%rax
mov    (%rax,%r14,8),%rdi
mov    %rbp,%rsi
call   1080 <fputs@plt>
cmpl   $0x0,0x10(%rsp)
je     1afb <main+0x8eb>
mov    $0xc,%esi
mov    $0x1,%edx
lea    0x1821(%rip),%rdi
mov    %rbp,%rcx
call   1120 <fwrite@plt>
mov    0xc(%rsp),%eax
test   %eax,%eax
je     1b46 <main+0x936>
lea    0x1817(%rip),%rdi
cmp    $0x1,%eax
je     1b16 <main+0x906>
lea    0x1812(%rip),%rdi
mov    $0x6,%esi
mov    $0x1,%edx
mov    0x18(%rsp),%rbp
mov    %rbp,%rcx
call   1120 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x17f1(%rip),%rdi
mov    %rbp,%rcx
call   1120 <fwrite@plt>
lea    0x40(%rsp),%rbp
mov    %rbp,%rdi
call   1060 <strlen@plt>
cltq
movb   $0x0,-0x1(%rax,%rbp,1)
cmpb   $0x48,0x42(%rsp)
lea    0x17de(%rip),%rdi
lea    0x17c9(%rip),%rax
cmove  %rax,%rdi
mov    $0xd,%esi
mov    $0x1,%edx
mov    0x18(%rsp),%rcx
call   1120 <fwrite@plt>
lea    0x44(%rsp),%rbp
jmp    1ba3 <main+0x993>
nopl   0x0(%rax)
mov    $0x5f,%al
movsbl %al,%edi
mov    0x18(%rsp),%rsi
call   10c0 <putc_entity@plt>
add    $0x1,%rbp
movzbl 0x0(%rbp),%eax
cmp    $0x20,%al
je     1b90 <main+0x980>
cmp    $0x22,%al
je     1b9f <main+0x98f>
test   %al,%al
jne    1b92 <main+0x982>
mov    $0x2,%esi
mov    $0x1,%edx
lea    0x18a7(%rip),%rdi
mov    0x18(%rsp),%rcx
call   1120 <fwrite@plt>
mov    $0x1,%ecx
lea    0x44(%rsp),%rbp
jmp    1bfa <main+0x9ea>
nopw   0x0(%rax,%rax,1)
mov    $0x1,%r15d
movsbl %al,%edi
mov    0x18(%rsp),%rsi
call   10c0 <putc_entity@plt>
mov    %r15d,%ecx
add    $0x1,%rbp
movzbl 0x0(%rbp),%eax
cmp    $0x20,%al
je     1be0 <main+0x9d0>
cmp    $0x22,%al
je     1bf6 <main+0x9e6>
test   %al,%al
je     1c1b <main+0xa0b>
xor    %r15d,%r15d
test   %ecx,%ecx
jne    1be6 <main+0x9d6>
movsbl %al,%edi
call   10e0 <tolower@plt>
jmp    1be6 <main+0x9d6>
cmpb   $0x48,0x42(%rsp)
lea    0x31a9(%rip),%rax
mov    (%rax,%r14,8),%rdx
jne    1d3e <main+0xb2e>
movl   $0x0,0x10(%rsp)
mov    0x18(%rsp),%r14
mov    %r14,%rdi
lea    0x170a(%rip),%rsi
jmp    1d55 <main+0xb45>
mov    0x14(%rsp),%eax
lea    0x3198(%rip),%rcx
mov    (%rcx,%rax,8),%rdi
mov    %r14,%rsi
call   1080 <fputs@plt>
cmpl   $0x0,0x10(%rsp)
je     1c84 <main+0xa74>
mov    $0xc,%esi
mov    $0x1,%edx
lea    0x1698(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    0xc(%rsp),%eax
test   %eax,%eax
je     1cca <main+0xaba>
lea    0x168e(%rip),%rdi
cmp    $0x1,%eax
je     1c9f <main+0xa8f>
lea    0x1689(%rip),%rdi
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x166d(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    $0x3,%esi
mov    $0x1,%edx
lea    0x1699(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x0,0x14(%rsp)
movl   $0x0,0x10(%rsp)
movl   $0x0,0xc(%rsp)
jmp    1a42 <main+0x832>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x1708(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x1,0x20(%rsp)
jmp    1a42 <main+0x832>
cmpl   $0x0,0x20(%rsp)
jne    1fad <main+0xd9d>
movl   $0x0,0x20(%rsp)
jmp    1a42 <main+0x832>
movl   $0x0,0x10(%rsp)
mov    0x18(%rsp),%r14
mov    %r14,%rdi
lea    0x160a(%rip),%rsi
xor    %eax,%eax
call   10b0 <fprintf@plt>
movl   $0x0,0xc(%rsp)
lea    0x40(%rsp),%rbp
jmp    1a42 <main+0x832>
mov    0x14(%rsp),%eax
lea    0x3077(%rip),%rcx
mov    (%rcx,%rax,8),%rdi
mov    %r14,%rsi
call   1080 <fputs@plt>
cmpl   $0x0,0x10(%rsp)
je     1da5 <main+0xb95>
mov    $0xc,%esi
mov    $0x1,%edx
lea    0x1577(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    0xc(%rsp),%eax
cmp    $0x1,%eax
je     1fd3 <main+0xdc3>
test   %eax,%eax
jne    1fe6 <main+0xdd6>
mov    $0x5,%esi
mov    $0x1,%edx
lea    0x15b2(%rip),%rdi
jmp    1ff7 <main+0xde7>
mov    0xc(%rsp),%eax
test   %eax,%eax
je     2035 <main+0xe25>
mov    $0xa,%esi
mov    $0x1,%edx
cmp    $0x1,%eax
jne    2055 <main+0xe45>
lea    0x15a5(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x2,0xc(%rsp)
jmp    1a42 <main+0x832>
lea    0x15aa(%rip),%r15
mov    %rbp,%rdi
mov    $0x400,%esi
mov    %r13,%rdx
call   10a0 <fgets@plt>
test   %rax,%rax
je     1a42 <main+0x832>
addl   $0x1,0x28(%rsp)
mov    %rbp,%rdi
mov    %r15,%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
jne    1e12 <main+0xc02>
jmp    1a42 <main+0x832>
mov    $0x20,%esi
mov    $0x1,%edx
lea    0x1568(%rip),%rdi
jmp    205c <main+0xe4c>
mov    $0x7,%esi
mov    $0x1,%edx
lea    0x1577(%rip),%rdi
jmp    205c <main+0xe4c>
cmpl   $0x0,0x10(%rsp)
je     20b4 <main+0xea4>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x15a7(%rip),%rdi
jmp    20c5 <main+0xeb5>
mov    %rbp,%rdi
lea    0x15dc(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
lea    0x15c3(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     2069 <main+0xe59>
mov    %rbp,%rdi
lea    0x15aa(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     2069 <main+0xe59>
mov    %rbp,%rdi
lea    0x1591(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     2069 <main+0xe59>
mov    %rbp,%rdi
lea    0x1578(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     2121 <main+0xf11>
mov    %rbp,%rdi
lea    0x156d(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     2147 <main+0xf37>
mov    %rbp,%rdi
lea    0x1562(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
mov    $0x20,%esi
call   1070 <strchr@plt>
test   %rax,%rax
jne    1f86 <main+0xd76>
mov    %rbp,%rdi
mov    $0xa,%esi
call   1070 <strchr@plt>
test   %rax,%rax
je     1f89 <main+0xd79>
movb   $0x0,(%rax)
mov    0x3048(%rip),%rax
mov    (%rax),%rdi
lea    0x151b(%rip),%rsi
mov    %rbp,%rdx
mov    0x28(%rsp),%ecx
xor    %eax,%eax
call   10b0 <fprintf@plt>
jmp    1a42 <main+0x832>
mov    $0x7,%esi
mov    $0x1,%edx
lea    0x146a(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x0,0x20(%rsp)
jmp    1a42 <main+0x832>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x133d(%rip),%rdi
jmp    1ff7 <main+0xde7>
mov    $0x6,%esi
mov    $0x1,%edx
lea    0x1331(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    $0x13,%esi
mov    $0x1,%edx
lea    0x1373(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x1,0xc(%rsp)
movl   $0x0,0x14(%rsp)
movl   $0x0,0x10(%rsp)
jmp    1a42 <main+0x832>
cmpl   $0x0,0x20(%rsp)
je     20f3 <main+0xee3>
movl   $0x0,0xc(%rsp)
movl   $0x1,0x20(%rsp)
jmp    1a42 <main+0x832>
lea    0x134a(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
jmp    1a42 <main+0x832>
mov    %rbp,%rdi
mov    $0x7b,%esi
call   1070 <strchr@plt>
test   %rax,%rax
je     1a42 <main+0x832>
mov    %rbp,%rdi
mov    $0x400,%esi
mov    %r13,%rdx
call   10a0 <fgets@plt>
test   %rax,%rax
je     1a42 <main+0x832>
addl   $0x1,0x28(%rsp)
mov    %rbp,%rdi
mov    $0x7d,%esi
call   1070 <strchr@plt>
test   %rax,%rax
je     207f <main+0xe6f>
jmp    1a42 <main+0x832>
mov    $0x5,%esi
mov    $0x1,%edx
lea    0x137b(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    $0x4,%esi
mov    $0x1,%edx
lea    0x1368(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x1,0x10(%rsp)
jmp    1a42 <main+0x832>
mov    $0x5,%esi
mov    $0x1,%edx
lea    0x12ad(%rip),%rdi
mov    %r14,%rcx
call   1120 <fwrite@plt>
movl   $0x0,0x20(%rsp)
movl   $0x0,0xc(%rsp)
jmp    1a42 <main+0x832>
mov    0x14(%rsp),%eax
lea    0x2cc4(%rip),%rcx
mov    (%rcx,%rax,8),%rdx
lea    0x2c99(%rip),%rcx
mov    (%rcx,%rax,8),%r8
mov    %r14,%rdi
lea    0x134c(%rip),%rsi
jmp    216b <main+0xf5b>
mov    0x14(%rsp),%eax
lea    0x2c9e(%rip),%rcx
mov    (%rcx,%rax,8),%rdx
lea    0x2c73(%rip),%rcx
mov    (%rcx,%rax,8),%r8
mov    %r14,%rdi
lea    0x1338(%rip),%rsi
lea    0x43(%rsp),%rcx
xor    %eax,%eax
call   10b0 <fprintf@plt>
jmp    1a42 <main+0x832>
mov    0x14(%rsp),%eax
lea    0x2c69(%rip),%rcx
mov    (%rcx,%rax,8),%rdx
lea    0x1383(%rip),%rsi
mov    %r14,%rdi
xor    %eax,%eax
call   10b0 <fprintf@plt>
cmpl   $0x0,0x10(%rsp)
je     21bc <main+0xfac>
lea    0x116a(%rip),%rdi
mov    $0xc,%esi
mov    $0x1,%edx
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    0xc(%rsp),%eax
test   %eax,%eax
je     2204 <main+0xff4>
cmp    $0x1,%eax
jne    21d2 <main+0xfc2>
lea    0x1151(%rip),%rdi
jmp    21d9 <main+0xfc9>
lea    0x114f(%rip),%rdi
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rcx
call   1120 <fwrite@plt>
lea    0x113d(%rip),%rdi
mov    $0x6,%esi
mov    $0x1,%edx
mov    %r14,%rcx
call   1120 <fwrite@plt>
lea    0x130e(%rip),%rdi
mov    $0x10,%esi
mov    $0x1,%edx
mov    %r14,%rcx
call   1120 <fwrite@plt>
mov    0x2dc4(%rip),%rax
cmp    (%rax),%r13
je     2231 <main+0x1021>
mov    %r13,%rdi
call   1050 <fclose@plt>
mov    0x2d98(%rip),%rax
xor    %ebx,%ebx
cmp    (%rax),%r14
je     2247 <main+0x1037>
mov    %r14,%rdi
call   1050 <fclose@plt>
mov    %ebx,%eax
add    $0x848,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    0x8(%rbx),%rdi
call   1110 <perror@plt>
mov    $0x1,%ebx
jmp    2247 <main+0x1037>
mov    0x10(%rbx),%rdi
call   1110 <perror@plt>
mov    %r13,%rdi
call   1050 <fclose@plt>
mov    $0x1,%ebx
jmp    2247 <main+0x1037>

LLVM IR (-O0):
@main.start_fonts = internal constant [3 x i8*] [i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0)]
@.str = [1 x i8] zeroinitializer
@.str.1 = [4 x i8] c"<b>\00"
@.str.2 = [4 x i8] c"<i>\00"
@main.end_fonts = internal constant [3 x i8*] [i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i32 0, i32 0)]
@.str.3 = [5 x i8] c"</b>\00"
@.str.4 = [5 x i8] c"</i>\00"
@.str.5 = [49 x i8] c"Usage: mantohtml [filename.man [filename.html]]\0A\00"
@stderr = global i32* null
@.str.6 = [2 x i8] c"r\00"
@stdin = global i32* null
@.str.7 = [2 x i8] c"w\00"
@stdout = global i32* null
@.str.8 = [482 x i8] c"<!DOCTYPE HTML PUBLIC \22-//W3C//DTD HTML 4.0 Transitional//EN\22 \22http://www.w3.org/TR/REC-html40/loose.dtd\22>\0A<html>\0A<!-- SECTION: Man Pages -->\0A<head>\0A\09<style type='text/css'><!--\0A\09h1, h2, h3, p { font-family: sans-serif; text-align: justify; }\0A\09tt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color:f0000; }\0A\09pre { font-weight: bold; color:f0000; margin-left: 2em; }\0A\09h1.title, h2.title, h3.title { border-bottom: solid 2px; }\0A\09--></style>\0A\00"
@.str.9 = [5 x i8] c".TH \00"
@.str.10 = [5 x i8] c"%s%d\00"
@.str.11 = [57 x i8] c"\09<title>%s(%d)</title>\0A</head>\0A<body>\0A<h2>%s(%d)</h2>\0A%s\00"
@.str.12 = [5 x i8] c".SH \00"
@.str.13 = [5 x i8] c".Sh \00"
@.str.14 = [13 x i8] c"</li>\0A</ul>\0A\00"
@.str.15 = [7 x i8] c"</dt>\0A\00"
@.str.16 = [7 x i8] c"</dd>\0A\00"
@.str.17 = [7 x i8] c"</dl>\0A\00"
@.str.18 = [14 x i8] c"<h3><a name='\00"
@.str.19 = [14 x i8] c"<h4><a name='\00"
@.str.20 = [3 x i8] c"'>\00"
@.str.21 = [13 x i8] c"</a></h3>\0A%s\00"
@.str.22 = [13 x i8] c"</a></h4>\0A%s\00"
@.str.23 = [4 x i8] c".LP\00"
@.str.24 = [4 x i8] c".PP\00"
@.str.25 = [4 x i8] c"<p>\00"
@.str.26 = [5 x i8] c".TP \00"
@.str.27 = [6 x i8] c"<dl>\0A\00"
@.str.28 = [20 x i8] c"<!-- NEED 3 --><dt>\00"
@.str.29 = [4 x i8] c".br\00"
@.str.30 = [11 x i8] c"</dt>\0A<dd>\00"
@.str.31 = [11 x i8] c"</dd>\0A<dd>\00"
@.str.32 = [6 x i8] c"<br>\0A\00"
@.str.33 = [5 x i8] c".de \00"
@.str.34 = [3 x i8] c"..\00"
@.str.35 = [4 x i8] c".RS\00"
@.str.36 = [33 x i8] c"<div style='margin-left: 3em;'>\0A\00"
@.str.37 = [4 x i8] c".RE\00"
@.str.38 = [8 x i8] c"</div>\0A\00"
@.str.39 = [5 x i8] c".ds \00"
@.str.40 = [5 x i8] c".rm \00"
@.str.41 = [5 x i8] c".tr \00"
@.str.42 = [5 x i8] c".hy \00"
@.str.43 = [5 x i8] c".IX \00"
@.str.44 = [4 x i8] c".PD\00"
@.str.45 = [4 x i8] c".Sp\00"
@.str.46 = [4 x i8] c".Vb\00"
@.str.47 = [4 x i8] c".nf\00"
@.str.48 = [7 x i8] c"<pre>\0A\00"
@.str.49 = [4 x i8] c".Ve\00"
@.str.50 = [4 x i8] c".fi\00"
@.str.51 = [8 x i8] c"</pre>\0A\00"
@.str.52 = [9 x i8] c".IP \\(bu\00"
@.str.53 = [7 x i8] c"</li>\0A\00"
@.str.54 = [6 x i8] c"<ul>\0A\00"
@.str.55 = [5 x i8] c"<li>\00"
@.str.56 = [5 x i8] c".IP \00"
@.str.57 = [30 x i8] c"<p style='margin-left: 3em;'>\00"
@.str.58 = [15 x i8] c"\0A<br />\0A<br />\00"
@.str.59 = [4 x i8] c".\\}\00"
@.str.60 = [4 x i8] c".ie\00"
@.str.61 = [4 x i8] c".if\00"
@.str.62 = [4 x i8] c".el\00"
@.str.63 = [4 x i8] c".B \00"
@.str.64 = [14 x i8] c"%s<b>%s</b>%s\00"
@.str.65 = [4 x i8] c".I \00"
@.str.66 = [14 x i8] c"%s<i>%s</i>%s\00"
@.str.67 = [4 x i8] c".\\\22\00"
@.str.68 = [54 x i8] c"mantohtml: Unknown man page command '%s' on line %d!\0A\00"
@.str.69 = [8 x i8] c"http://\00"
@.str.70 = [20 x i8] c"<a href='%s'>%s</a>\00"
@.str.71 = [4 x i8] c"\\fI\00"
@.str.72 = [4 x i8] c"\\fR\00"
@.str.73 = [6 x i8] c"&#%d;\00"
@.str.74 = [4 x i8] c"%s\0A\00"
@.str.75 = [17 x i8] c"</body>\0A</html>\0A\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32*
%7 = alloca i32*
%8 = alloca [1024 x i8]
%9 = alloca i8*
%10 = alloca i8*
%11 = alloca i8
%12 = alloca i8*
%13 = alloca [1024 x i8]
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i8*
%21 = alloca i32
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%22 = load i32, i32* %4
%23 = icmp sgt i32 %22, 3
br i1 %23, label %24, label %27
24: ; preds = %2
%25 = load i32*, i32** @stderr
%26 = call i32 @fputs(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.5, i64 0, i64 0), i32* %25)
store i32 1, i32* %3
br label %977
27: ; preds = %2
%28 = load i32, i32* %4
%29 = icmp sgt i32 %28, 1
br i1 %29, label %30, label %42
30: ; preds = %27
%31 = load i8**, i8*** %5
%32 = getelementptr inbounds i8*, i8** %31, i64 1
%33 = load i8*, i8** %32
%34 = call i32* @fopen(i8* %33, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0))
store i32* %34, i32** %6
%35 = icmp eq i32* %34, null
br i1 %35, label %36, label %41
36: ; preds = %30
%37 = load i8**, i8*** %5
%38 = getelementptr inbounds i8*, i8** %37, i64 1
%39 = load i8*, i8** %38
%40 = call i32 @perror(i8* %39)
store i32 1, i32* %3
br label %977
41: ; preds = %30
br label %44
42: ; preds = %27
%43 = load i32*, i32** @stdin
store i32* %43, i32** %6
br label %44
44: ; preds = %42, %41
%45 = load i32, i32* %4
%46 = icmp sgt i32 %45, 2
br i1 %46, label %47, label %61
47: ; preds = %44
%48 = load i8**, i8*** %5
%49 = getelementptr inbounds i8*, i8** %48, i64 2
%50 = load i8*, i8** %49
%51 = call i32* @fopen(i8* %50, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
store i32* %51, i32** %7
%52 = icmp eq i32* %51, null
br i1 %52, label %53, label %60
53: ; preds = %47
%54 = load i8**, i8*** %5
%55 = getelementptr inbounds i8*, i8** %54, i64 2
%56 = load i8*, i8** %55
%57 = call i32 @perror(i8* %56)
%58 = load i32*, i32** %6
%59 = call i32 @fclose(i32* %58)
store i32 1, i32* %3
br label %977
60: ; preds = %47
br label %63
61: ; preds = %44
%62 = load i32*, i32** @stdout
store i32* %62, i32** %7
br label %63
63: ; preds = %61, %60
%64 = load i32*, i32** %7
%65 = call i32 @fputs(i8* getelementptr inbounds ([482 x i8], [482 x i8]* @.str.8, i64 0, i64 0), i32* %64)
store i32 0, i32* %17
store i32 0, i32* %16
store i32 0, i32* %18
store i32 0, i32* %19
store i32 0, i32* %15
store i8* null, i8** %20
store i32 -1, i32* %14
br label %66
66: ; preds = %928, %122, %63
%67 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%68 = load i32*, i32** %6
%69 = call i64 @fgets(i8* %67, i32 1024, i32* %68)
%70 = icmp ne i64 %69, 0
br i1 %70, label %71, label %929
71: ; preds = %66
%72 = load i32, i32* %19
%73 = add nsw i32 %72, 1
store i32 %73, i32* %19
%74 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%75 = load i8, i8* %74
%76 = sext i8 %75 to i32
%77 = icmp eq i32 %76, 46
br i1 %77, label %78, label %686
78: ; preds = %71
br label %79
79: ; preds = %91, %78
%80 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 1
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp eq i32 %82, 32
br i1 %83, label %89, label %84
84: ; preds = %79
%85 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 1
%86 = load i8, i8* %85
%87 = sext i8 %86 to i32
%88 = icmp eq i32 %87, 9
br label %89
89: ; preds = %84, %79
%90 = phi i1 [ true, %79 ], [ %88, %84 ]
br i1 %90, label %91, label %97
91: ; preds = %89
%92 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%93 = getelementptr inbounds i8, i8* %92, i64 1
%94 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%95 = getelementptr inbounds i8, i8* %94, i64 2
%96 = call i32 @strmove(i8* %93, i8* %95)
br label %79
97: ; preds = %89
%98 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%99 = call i64 @strncmp(i8* %98, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i32 4)
%100 = icmp ne i64 %99, 0
br i1 %100, label %119, label %101
101: ; preds = %97
%102 = load i32, i32* %14
%103 = icmp slt i32 %102, 0
br i1 %103, label %104, label %119
104: ; preds = %101
%105 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%106 = getelementptr inbounds i8, i8* %105, i64 4
%107 = getelementptr inbounds [1024 x i8], [1024 x i8]* %13, i64 0, i64 0
%108 = call i32 @sscanf(i8* %106, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* %107, i32* %14)
%109 = load i32*, i32** %7
%110 = getelementptr inbounds [1024 x i8], [1024 x i8]* %13, i64 0, i64 0
%111 = load i32, i32* %14
%112 = getelementptr inbounds [1024 x i8], [1024 x i8]* %13, i64 0, i64 0
%113 = load i32, i32* %14
%114 = load i32, i32* %16
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %115
%117 = load i8*, i8** %116
%118 = call i32 (i32*, i8*, ...) @fprintf(i32* %109, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.11, i64 0, i64 0), i8* %110, i32 %111, i8* %112, i32 %113, i8* %117)
br label %644
119: ; preds = %101, %97
%120 = load i32, i32* %14
%121 = icmp slt i32 %120, 0
br i1 %121, label %122, label %123
122: ; preds = %119
br label %66
123: ; preds = %119
%124 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%125 = call i64 @strncmp(i8* %124, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i32 4)
%126 = icmp ne i64 %125, 0
br i1 %126, label %127, label %131
127: ; preds = %123
%128 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%129 = call i64 @strncmp(i8* %128, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 4)
%130 = icmp ne i64 %129, 0
br i1 %130, label %272, label %131
131: ; preds = %127, %123
store i32 1, i32* %21
%132 = load i32, i32* %16
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %133
%135 = load i8*, i8** %134
%136 = load i32*, i32** %7
%137 = call i32 @fputs(i8* %135, i32* %136)
%138 = load i32, i32* %17
%139 = icmp ne i32 %138, 0
br i1 %139, label %140, label %143
140: ; preds = %131
%141 = load i32*, i32** %7
%142 = call i32 @fputs(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32* %141)
store i32 0, i32* %17
br label %143
143: ; preds = %140, %131
%144 = load i32, i32* %18
%145 = icmp ne i32 %144, 0
br i1 %145, label %146, label %162
146: ; preds = %143
%147 = load i32, i32* %18
%148 = icmp eq i32 %147, 1
br i1 %148, label %149, label %152
149: ; preds = %146
%150 = load i32*, i32** %7
%151 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i32* %150)
br label %159
152: ; preds = %146
%153 = load i32, i32* %18
%154 = icmp ne i32 %153, 0
br i1 %154, label %155, label %158
155: ; preds = %152
%156 = load i32*, i32** %7
%157 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), i32* %156)
br label %158
158: ; preds = %155, %152
br label %159
159: ; preds = %158, %149
%160 = load i32*, i32** %7
%161 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i32* %160)
store i32 0, i32* %18
br label %162
162: ; preds = %159, %143
%163 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%164 = call i32 @strlen(i8* %163)
%165 = sub nsw i32 %164, 1
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 %166
store i8 0, i8* %167
%168 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 2
%169 = load i8, i8* %168
%170 = sext i8 %169 to i32
%171 = icmp eq i32 %170, 72
br i1 %171, label %172, label %175
172: ; preds = %162
%173 = load i32*, i32** %7
%174 = call i32 @fputs(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0), i32* %173)
br label %178
175: ; preds = %162
%176 = load i32*, i32** %7
%177 = call i32 @fputs(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i64 0, i64 0), i32* %176)
br label %178
178: ; preds = %175, %172
%179 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%180 = getelementptr inbounds i8, i8* %179, i64 4
store i8* %180, i8** %9
br label %181
181: ; preds = %206, %178
%182 = load i8*, i8** %9
%183 = load i8, i8* %182
%184 = icmp ne i8 %183, 0
br i1 %184, label %185, label %209
185: ; preds = %181
%186 = load i8*, i8** %9
%187 = load i8, i8* %186
%188 = sext i8 %187 to i32
%189 = icmp eq i32 %188, 34
br i1 %189, label %190, label %191
190: ; preds = %185
br label %206
191: ; preds = %185
%192 = load i8*, i8** %9
%193 = load i8, i8* %192
%194 = sext i8 %193 to i32
%195 = icmp eq i32 %194, 32
br i1 %195, label %196, label %199
196: ; preds = %191
%197 = load i32*, i32** %7
%198 = call i32 @putc_entity(i8 signext 95, i32* %197)
br label %204
199: ; preds = %191
%200 = load i8*, i8** %9
%201 = load i8, i8* %200
%202 = load i32*, i32** %7
%203 = call i32 @putc_entity(i8 signext %201, i32* %202)
br label %204
204: ; preds = %199, %196
br label %205
205: ; preds = %204
br label %206
206: ; preds = %205, %190
%207 = load i8*, i8** %9
%208 = getelementptr inbounds i8, i8* %207, i32 1
store i8* %208, i8** %9
br label %181
209: ; preds = %181
%210 = load i32*, i32** %7
%211 = call i32 @fputs(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.20, i64 0, i64 0), i32* %210)
%212 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%213 = getelementptr inbounds i8, i8* %212, i64 4
store i8* %213, i8** %9
br label %214
214: ; preds = %249, %209
%215 = load i8*, i8** %9
%216 = load i8, i8* %215
%217 = icmp ne i8 %216, 0
br i1 %217, label %218, label %252
218: ; preds = %214
%219 = load i8*, i8** %9
%220 = load i8, i8* %219
%221 = sext i8 %220 to i32
%222 = icmp eq i32 %221, 34
br i1 %222, label %223, label %224
223: ; preds = %218
br label %249
224: ; preds = %218
%225 = load i8*, i8** %9
%226 = load i8, i8* %225
%227 = sext i8 %226 to i32
%228 = icmp eq i32 %227, 32
br i1 %228, label %229, label %232
229: ; preds = %224
%230 = load i32*, i32** %7
%231 = call i32 @putc_entity(i8 signext 32, i32* %230)
store i32 1, i32* %21
br label %247
232: ; preds = %224
%233 = load i32, i32* %21
%234 = icmp ne i32 %233, 0
br i1 %234, label %235, label %240
235: ; preds = %232
%236 = load i8*, i8** %9
%237 = load i8, i8* %236
%238 = load i32*, i32** %7
%239 = call i32 @putc_entity(i8 signext %237, i32* %238)
br label %246
240: ; preds = %232
%241 = load i8*, i8** %9
%242 = load i8, i8* %241
%243 = call signext i8 @tolower(i8 signext %242)
%244 = load i32*, i32** %7
%245 = call i32 @putc_entity(i8 signext %243, i32* %244)
br label %246
246: ; preds = %240, %235
store i32 0, i32* %21
br label %247
247: ; preds = %246, %229
br label %248
248: ; preds = %247
br label %249
249: ; preds = %248, %223
%250 = load i8*, i8** %9
%251 = getelementptr inbounds i8, i8* %250, i32 1
store i8* %251, i8** %9
br label %214
252: ; preds = %214
%253 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 2
%254 = load i8, i8* %253
%255 = sext i8 %254 to i32
%256 = icmp eq i32 %255, 72
br i1 %256, label %257, label %264
257: ; preds = %252
%258 = load i32*, i32** %7
%259 = load i32, i32* %16
%260 = sext i32 %259 to i64
%261 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %260
%262 = load i8*, i8** %261
%263 = call i32 (i32*, i8*, ...) @fprintf(i32* %258, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.21, i64 0, i64 0), i8* %262)
br label %271
264: ; preds = %252
%265 = load i32*, i32** %7
%266 = load i32, i32* %16
%267 = sext i32 %266 to i64
%268 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %267
%269 = load i8*, i8** %268
%270 = call i32 (i32*, i8*, ...) @fprintf(i32* %265, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.22, i64 0, i64 0), i8* %269)
br label %271
271: ; preds = %264, %257
br label %642
272: ; preds = %127
%273 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%274 = call i64 @strncmp(i8* %273, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0), i32 3)
%275 = icmp ne i64 %274, 0
br i1 %275, label %276, label %280
276: ; preds = %272
%277 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%278 = call i64 @strncmp(i8* %277, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0), i32 3)
%279 = icmp ne i64 %278, 0
br i1 %279, label %314, label %280
280: ; preds = %276, %272
%281 = load i32, i32* %16
%282 = sext i32 %281 to i64
%283 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %282
%284 = load i8*, i8** %283
%285 = load i32*, i32** %7
%286 = call i32 @fputs(i8* %284, i32* %285)
%287 = load i32, i32* %17
%288 = icmp ne i32 %287, 0
br i1 %288, label %289, label %292
289: ; preds = %280
%290 = load i32*, i32** %7
%291 = call i32 @fputs(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32* %290)
store i32 0, i32* %17
br label %292
292: ; preds = %289, %280
%293 = load i32, i32* %18
%294 = icmp ne i32 %293, 0
br i1 %294, label %295, label %311
295: ; preds = %292
%296 = load i32, i32* %18
%297 = icmp eq i32 %296, 1
br i1 %297, label %298, label %301
298: ; preds = %295
%299 = load i32*, i32** %7
%300 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i32* %299)
br label %308
301: ; preds = %295
%302 = load i32, i32* %18
%303 = icmp ne i32 %302, 0
br i1 %303, label %304, label %307
304: ; preds = %301
%305 = load i32*, i32** %7
%306 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), i32* %305)
br label %307
307: ; preds = %304, %301
br label %308
308: ; preds = %307, %298
%309 = load i32*, i32** %7
%310 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i32* %309)
store i32 0, i32* %18
br label %311
311: ; preds = %308, %292
%312 = load i32*, i32** %7
%313 = call i32 @fputs(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0), i32* %312)
store i32 0, i32* %16
br label %641
314: ; preds = %276
%315 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%316 = call i64 @strncmp(i8* %315, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), i32 4)
%317 = icmp ne i64 %316, 0
br i1 %317, label %353, label %318
318: ; preds = %314
%319 = load i32, i32* %16
%320 = sext i32 %319 to i64
%321 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %320
%322 = load i8*, i8** %321
%323 = load i32*, i32** %7
%324 = call i32 @fputs(i8* %322, i32* %323)
%325 = load i32, i32* %17
%326 = icmp ne i32 %325, 0
br i1 %326, label %327, label %330
327: ; preds = %318
%328 = load i32*, i32** %7
%329 = call i32 @fputs(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32* %328)
store i32 0, i32* %17
br label %330
330: ; preds = %327, %318
%331 = load i32, i32* %18
%332 = icmp ne i32 %331, 0
br i1 %332, label %336, label %333
333: ; preds = %330
%334 = load i32*, i32** %7
%335 = call i32 @fputs(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i64 0, i64 0), i32* %334)
br label %350
336: ; preds = %330
%337 = load i32, i32* %18
%338 = icmp eq i32 %337, 1
br i1 %338, label %339, label %342
339: ; preds = %336
%340 = load i32*, i32** %7
%341 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i32* %340)
br label %349
342: ; preds = %336
%343 = load i32, i32* %18
%344 = icmp ne i32 %343, 0
br i1 %344, label %345, label %348
345: ; preds = %342
%346 = load i32*, i32** %7
%347 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), i32* %346)
br label %348
348: ; preds = %345, %342
br label %349
349: ; preds = %348, %339
br label %350
350: ; preds = %349, %333
%351 = load i32*, i32** %7
%352 = call i32 @fputs(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.28, i64 0, i64 0), i32* %351)
store i32 1, i32* %18
store i32 0, i32* %16
br label %640
353: ; preds = %314
%354 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%355 = call i64 @strncmp(i8* %354, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0), i32 3)
%356 = icmp ne i64 %355, 0
br i1 %356, label %378, label %357
357: ; preds = %353
%358 = load i32, i32* %18
%359 = icmp eq i32 %358, 1
br i1 %359, label %360, label %363
360: ; preds = %357
%361 = load i32*, i32** %7
%362 = call i32 @fputs(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i64 0, i64 0), i32* %361)
store i32 2, i32* %18
br label %377
363: ; preds = %357
%364 = load i32, i32* %18
%365 = icmp ne i32 %364, 0
br i1 %365, label %366, label %369
366: ; preds = %363
%367 = load i32*, i32** %7
%368 = call i32 @fputs(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.31, i64 0, i64 0), i32* %367)
br label %376
369: ; preds = %363
%370 = load i32, i32* %15
%371 = icmp ne i32 %370, 0
br i1 %371, label %375, label %372
372: ; preds = %369
%373 = load i32*, i32** %7
%374 = call i32 @fputs(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0), i32* %373)
br label %375
375: ; preds = %372, %369
br label %376
376: ; preds = %375, %366
br label %377
377: ; preds = %376, %360
br label %639
378: ; preds = %353
%379 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%380 = call i64 @strncmp(i8* %379, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i32 4)
%381 = icmp ne i64 %380, 0
br i1 %381, label %397, label %382
382: ; preds = %378
br label %383
383: ; preds = %395, %382
%384 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%385 = load i32*, i32** %6
%386 = call i64 @fgets(i8* %384, i32 1024, i32* %385)
%387 = icmp ne i64 %386, 0
br i1 %387, label %388, label %396
388: ; preds = %383
%389 = load i32, i32* %19
%390 = add nsw i32 %389, 1
store i32 %390, i32* %19
%391 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%392 = call i64 @strncmp(i8* %391, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.34, i64 0, i64 0), i32 2)
%393 = icmp ne i64 %392, 0
br i1 %393, label %395, label %394
394: ; preds = %388
br label %396
395: ; preds = %388
br label %383
396: ; preds = %394, %383
br label %638
397: ; preds = %378
%398 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%399 = call i64 @strncmp(i8* %398, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0), i32 3)
%400 = icmp ne i64 %399, 0
br i1 %400, label %404, label %401
401: ; preds = %397
%402 = load i32*, i32** %7
%403 = call i32 @fputs(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.36, i64 0, i64 0), i32* %402)
br label %637
404: ; preds = %397
%405 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%406 = call i64 @strncmp(i8* %405, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i32 3)
%407 = icmp ne i64 %406, 0
br i1 %407, label %411, label %408
408: ; preds = %404
%409 = load i32*, i32** %7
%410 = call i32 @fputs(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.38, i64 0, i64 0), i32* %409)
br label %636
411: ; preds = %404
%412 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%413 = call i64 @strncmp(i8* %412, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i32 4)
%414 = icmp ne i64 %413, 0
br i1 %414, label %415, label %439
415: ; preds = %411
%416 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%417 = call i64 @strncmp(i8* %416, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.40, i64 0, i64 0), i32 4)
%418 = icmp ne i64 %417, 0
br i1 %418, label %419, label %439
419: ; preds = %415
%420 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%421 = call i64 @strncmp(i8* %420, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0), i32 4)
%422 = icmp ne i64 %421, 0
br i1 %422, label %423, label %439
423: ; preds = %419
%424 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%425 = call i64 @strncmp(i8* %424, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i32 4)
%426 = icmp ne i64 %425, 0
br i1 %426, label %427, label %439
427: ; preds = %423
%428 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%429 = call i64 @strncmp(i8* %428, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0), i32 4)
%430 = icmp ne i64 %429, 0
br i1 %430, label %431, label %439
431: ; preds = %427
%432 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%433 = call i64 @strncmp(i8* %432, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0), i32 3)
%434 = icmp ne i64 %433, 0
br i1 %434, label %435, label %439
435: ; preds = %431
%436 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%437 = call i64 @strncmp(i8* %436, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0), i32 3)
%438 = icmp ne i64 %437, 0
br i1 %438, label %440, label %439
439: ; preds = %435, %431, %427, %423, %419, %415, %411
br label %635
440: ; preds = %435
%441 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%442 = call i64 @strncmp(i8* %441, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0), i32 3)
%443 = icmp ne i64 %442, 0
br i1 %443, label %444, label %448
444: ; preds = %440
%445 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%446 = call i64 @strncmp(i8* %445, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0), i32 3)
%447 = icmp ne i64 %446, 0
br i1 %447, label %451, label %448
448: ; preds = %444, %440
store i32 1, i32* %15
%449 = load i32*, i32** %7
%450 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.48, i64 0, i64 0), i32* %449)
br label %634
451: ; preds = %444
%452 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%453 = call i64 @strncmp(i8* %452, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0), i32 3)
%454 = icmp ne i64 %453, 0
br i1 %454, label %455, label %459
455: ; preds = %451
%456 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%457 = call i64 @strncmp(i8* %456, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0), i32 3)
%458 = icmp ne i64 %457, 0
br i1 %458, label %466, label %459
459: ; preds = %455, %451
%460 = load i32, i32* %15
%461 = icmp ne i32 %460, 0
br i1 %461, label %462, label %465
462: ; preds = %459
store i32 0, i32* %15
%463 = load i32*, i32** %7
%464 = call i32 @fputs(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.51, i64 0, i64 0), i32* %463)
br label %465
465: ; preds = %462, %459
br label %633
466: ; preds = %455
%467 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%468 = call i64 @strncmp(i8* %467, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.52, i64 0, i64 0), i32 8)
%469 = icmp ne i64 %468, 0
br i1 %469, label %482, label %470
470: ; preds = %466
%471 = load i32, i32* %17
%472 = icmp ne i32 %471, 0
br i1 %472, label %473, label %476
473: ; preds = %470
%474 = load i32*, i32** %7
%475 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.53, i64 0, i64 0), i32* %474)
br label %479
476: ; preds = %470
%477 = load i32*, i32** %7
%478 = call i32 @fputs(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0), i32* %477)
store i32 1, i32* %17
br label %479
479: ; preds = %476, %473
%480 = load i32*, i32** %7
%481 = call i32 @fputs(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.55, i64 0, i64 0), i32* %480)
br label %632
482: ; preds = %466
%483 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%484 = call i64 @strncmp(i8* %483, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0), i32 4)
%485 = icmp ne i64 %484, 0
br i1 %485, label %533, label %486
486: ; preds = %482
%487 = load i32, i32* %17
%488 = icmp ne i32 %487, 0
br i1 %488, label %489, label %492
489: ; preds = %486
%490 = load i32*, i32** %7
%491 = call i32 @fputs(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32* %490)
store i32 0, i32* %17
br label %492
492: ; preds = %489, %486
%493 = load i32*, i32** %7
%494 = call i32 @fputs(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.57, i64 0, i64 0), i32* %493)
%495 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%496 = getelementptr inbounds i8, i8* %495, i64 4
store i8* %496, i8** %9
br label %497
497: ; preds = %503, %492
%498 = load i8*, i8** %9
%499 = load i8, i8* %498
%500 = call i64 @isspace(i8 signext %499)
%501 = icmp ne i64 %500, 0
br i1 %501, label %502, label %506
502: ; preds = %497
br label %503
503: ; preds = %502
%504 = load i8*, i8** %9
%505 = getelementptr inbounds i8, i8* %504, i32 1
store i8* %505, i8** %9
br label %497
506: ; preds = %497
%507 = load i8*, i8** %9
%508 = load i8, i8* %507
%509 = sext i8 %508 to i32
%510 = icmp eq i32 %509, 34
br i1 %510, label %511, label %522
511: ; preds = %506
%512 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%513 = load i8*, i8** %9
%514 = getelementptr inbounds i8, i8* %513, i64 1
%515 = call i32 @strmove(i8* %512, i8* %514)
%516 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%517 = call i8* @strchr(i8* %516, i8 signext 34)
store i8* %517, i8** %9
%518 = icmp ne i8* %517, null
br i1 %518, label %519, label %521
519: ; preds = %511
%520 = load i8*, i8** %9
store i8 0, i8* %520
br label %521
521: ; preds = %519, %511
br label %532
522: ; preds = %506
%523 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%524 = load i8*, i8** %9
%525 = call i32 @strmove(i8* %523, i8* %524)
%526 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%527 = call i8* @strchr(i8* %526, i8 signext 32)
store i8* %527, i8** %9
%528 = icmp ne i8* %527, null
br i1 %528, label %529, label %531
529: ; preds = %522
%530 = load i8*, i8** %9
store i8 0, i8* %530
br label %531
531: ; preds = %529, %522
br label %532
532: ; preds = %531, %521
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.58, i64 0, i64 0), i8** %20
br label %687
533: ; preds = %482
%534 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%535 = call i64 @strncmp(i8* %534, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0), i32 3)
%536 = icmp ne i64 %535, 0
br i1 %536, label %538, label %537
537: ; preds = %533
br label %630
538: ; preds = %533
%539 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%540 = call i64 @strncmp(i8* %539, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0), i32 3)
%541 = icmp ne i64 %540, 0
br i1 %541, label %542, label %550
542: ; preds = %538
%543 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%544 = call i64 @strncmp(i8* %543, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0), i32 3)
%545 = icmp ne i64 %544, 0
br i1 %545, label %546, label %550
546: ; preds = %542
%547 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%548 = call i64 @strncmp(i8* %547, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.62, i64 0, i64 0), i32 3)
%549 = icmp ne i64 %548, 0
br i1 %549, label %570, label %550
550: ; preds = %546, %542, %538
%551 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%552 = call i8* @strchr(i8* %551, i8 signext 123)
%553 = icmp ne i8* %552, null
br i1 %553, label %554, label %569
554: ; preds = %550
br label %555
555: ; preds = %567, %554
%556 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%557 = load i32*, i32** %6
%558 = call i64 @fgets(i8* %556, i32 1024, i32* %557)
%559 = icmp ne i64 %558, 0
br i1 %559, label %560, label %568
560: ; preds = %555
%561 = load i32, i32* %19
%562 = add nsw i32 %561, 1
store i32 %562, i32* %19
%563 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%564 = call i8* @strchr(i8* %563, i8 signext 125)
%565 = icmp ne i8* %564, null
br i1 %565, label %566, label %567
566: ; preds = %560
br label %568
567: ; preds = %560
br label %555
568: ; preds = %566, %555
br label %569
569: ; preds = %568, %550
br label %629
570: ; preds = %546
%571 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%572 = call i64 @strncmp(i8* %571, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.63, i64 0, i64 0), i32 3)
%573 = icmp ne i64 %572, 0
br i1 %573, label %587, label %574
574: ; preds = %570
%575 = load i32*, i32** %7
%576 = load i32, i32* %16
%577 = sext i32 %576 to i64
%578 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %577
%579 = load i8*, i8** %578
%580 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%581 = getelementptr inbounds i8, i8* %580, i64 3
%582 = load i32, i32* %16
%583 = sext i32 %582 to i64
%584 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %583
%585 = load i8*, i8** %584
%586 = call i32 (i32*, i8*, ...) @fprintf(i32* %575, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.64, i64 0, i64 0), i8* %579, i8* %581, i8* %585)
br label %628
587: ; preds = %570
%588 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%589 = call i64 @strncmp(i8* %588, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.65, i64 0, i64 0), i32 3)
%590 = icmp ne i64 %589, 0
br i1 %590, label %604, label %591
591: ; preds = %587
%592 = load i32*, i32** %7
%593 = load i32, i32* %16
%594 = sext i32 %593 to i64
%595 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %594
%596 = load i8*, i8** %595
%597 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%598 = getelementptr inbounds i8, i8* %597, i64 3
%599 = load i32, i32* %16
%600 = sext i32 %599 to i64
%601 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %600
%602 = load i8*, i8** %601
%603 = call i32 (i32*, i8*, ...) @fprintf(i32* %592, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.66, i64 0, i64 0), i8* %596, i8* %598, i8* %602)
br label %627
604: ; preds = %587
%605 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%606 = call i64 @strncmp(i8* %605, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.67, i64 0, i64 0), i32 3)
%607 = icmp ne i64 %606, 0
br i1 %607, label %608, label %626
608: ; preds = %604
%609 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%610 = call i8* @strchr(i8* %609, i8 signext 32)
store i8* %610, i8** %9
%611 = icmp ne i8* %610, null
br i1 %611, label %612, label %614
612: ; preds = %608
%613 = load i8*, i8** %9
store i8 0, i8* %613
br label %621
614: ; preds = %608
%615 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%616 = call i8* @strchr(i8* %615, i8 signext 10)
store i8* %616, i8** %9
%617 = icmp ne i8* %616, null
br i1 %617, label %618, label %620
618: ; preds = %614
%619 = load i8*, i8** %9
store i8 0, i8* %619
br label %620
620: ; preds = %618, %614
br label %621
621: ; preds = %620, %612
%622 = load i32*, i32** @stderr
%623 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%624 = load i32, i32* %19
%625 = call i32 (i32*, i8*, ...) @fprintf(i32* %622, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.68, i64 0, i64 0), i8* %623, i32 %624)
br label %626
626: ; preds = %621, %604
br label %627
627: ; preds = %626, %591
br label %628
628: ; preds = %627, %574
br label %629
629: ; preds = %628, %569
br label %630
630: ; preds = %629, %537
br label %631
631: ; preds = %630
br label %632
632: ; preds = %631, %479
br label %633
633: ; preds = %632, %465
br label %634
634: ; preds = %633, %448
br label %635
635: ; preds = %634, %439
br label %636
636: ; preds = %635, %408
br label %637
637: ; preds = %636, %401
br label %638
638: ; preds = %637, %396
br label %639
639: ; preds = %638, %377
br label %640
640: ; preds = %639, %350
br label %641
641: ; preds = %640, %311
br label %642
642: ; preds = %641, %271
br label %643
643: ; preds = %642
br label %644
644: ; preds = %643, %104
%645 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%646 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%647 = call i32 @strlen(i8* %646)
%648 = sext i32 %647 to i64
%649 = getelementptr inbounds i8, i8* %645, i64 %648
%650 = getelementptr inbounds i8, i8* %649, i64 -2
store i8* %650, i8** %9
%651 = load i8*, i8** %9
%652 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%653 = icmp uge i8* %651, %652
br i1 %653, label %654, label %685
654: ; preds = %644
%655 = load i8*, i8** %9
%656 = load i8, i8* %655
%657 = sext i8 %656 to i32
%658 = icmp eq i32 %657, 92
br i1 %658, label %659, label %685
659: ; preds = %654
br label %660
660: ; preds = %683, %659
%661 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%662 = load i32*, i32** %6
%663 = call i64 @fgets(i8* %661, i32 1024, i32* %662)
%664 = icmp ne i64 %663, 0
br i1 %664, label %665, label %684
665: ; preds = %660
%666 = load i32, i32* %19
%667 = add nsw i32 %666, 1
store i32 %667, i32* %19
%668 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%669 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%670 = call i32 @strlen(i8* %669)
%671 = sext i32 %670 to i64
%672 = getelementptr inbounds i8, i8* %668, i64 %671
%673 = getelementptr inbounds i8, i8* %672, i64 -2
store i8* %673, i8** %9
%674 = load i8*, i8** %9
%675 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
%676 = icmp ult i8* %674, %675
br i1 %676, label %682, label %677
677: ; preds = %665
%678 = load i8*, i8** %9
%679 = load i8, i8* %678
%680 = sext i8 %679 to i32
%681 = icmp ne i32 %680, 92
br i1 %681, label %682, label %683
682: ; preds = %677, %665
br label %684
683: ; preds = %677
br label %660
684: ; preds = %682, %660
br label %685
685: ; preds = %684, %654, %644
br label %928
686: ; preds = %71
br label %687
687: ; preds = %686, %532
%688 = getelementptr inbounds [1024 x i8], [1024 x i8]* %8, i64 0, i64 0
store i8* %688, i8** %9
br label %689
689: ; preds = %917, %687
%690 = load i8*, i8** %9
%691 = load i8, i8* %690
%692 = icmp ne i8 %691, 0
br i1 %692, label %693, label %920
693: ; preds = %689
%694 = load i8*, i8** %9
%695 = call i64 @strncmp(i8* %694, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.69, i64 0, i64 0), i32 7)
%696 = icmp ne i64 %695, 0
br i1 %696, label %732, label %697
697: ; preds = %693
%698 = load i8*, i8** %9
%699 = getelementptr inbounds i8, i8* %698, i64 7
store i8* %699, i8** %10
br label %700
700: ; preds = %717, %697
%701 = load i8*, i8** %10
%702 = load i8, i8* %701
%703 = sext i8 %702 to i32
%704 = icmp ne i32 %703, 0
br i1 %704, label %705, label %714
705: ; preds = %700
%706 = load i8*, i8** %10
%707 = load i8, i8* %706
%708 = sext i8 %707 to i32
%709 = and i32 %708, 255
%710 = trunc i32 %709 to i8
%711 = call i64 @isspace(i8 signext %710)
%712 = icmp ne i64 %711, 0
%713 = xor i1 %712, true
br label %714
714: ; preds = %705, %700
%715 = phi i1 [ false, %700 ], [ %713, %705 ]
br i1 %715, label %716, label %720
716: ; preds = %714
br label %717
717: ; preds = %716
%718 = load i8*, i8** %10
%719 = getelementptr inbounds i8, i8* %718, i32 1
store i8* %719, i8** %10
br label %700
720: ; preds = %714
%721 = load i8*, i8** %10
%722 = load i8, i8* %721
store i8 %722, i8* %11
%723 = load i8*, i8** %10
store i8 0, i8* %723
%724 = load i32*, i32** %7
%725 = load i8*, i8** %9
%726 = load i8*, i8** %9
%727 = call i32 (i32*, i8*, ...) @fprintf(i32* %724, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.70, i64 0, i64 0), i8* %725, i8* %726)
%728 = load i8, i8* %11
%729 = load i8*, i8** %10
store i8 %728, i8* %729
%730 = load i8*, i8** %10
%731 = getelementptr inbounds i8, i8* %730, i64 -1
store i8* %731, i8** %9
br label %916
732: ; preds = %693
%733 = load i8*, i8** %9
%734 = call i64 @strncmp(i8* %733, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.71, i64 0, i64 0), i32 3)
%735 = icmp ne i64 %734, 0
br i1 %735, label %773, label %736
736: ; preds = %732
%737 = load i8*, i8** %9
%738 = call i8* @strstr(i8* %737, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.72, i64 0, i64 0))
store i8* %738, i8** %10
%739 = icmp ne i8* %738, null
br i1 %739, label %740, label %773
740: ; preds = %736
%741 = load i8*, i8** %9
%742 = call i8* @strchr(i8* %741, i8 signext 40)
store i8* %742, i8** %12
%743 = icmp ne i8* %742, null
br i1 %743, label %744, label %773
744: ; preds = %740
%745 = load i8*, i8** %12
%746 = load i8*, i8** %10
%747 = icmp ult i8* %745, %746
br i1 %747, label %748, label %773
748: ; preds = %744
%749 = load i8*, i8** %9
%750 = getelementptr inbounds i8, i8* %749, i64 3
store i8* %750, i8** %9
%751 = load i8*, i8** %10
%752 = load i8, i8* %751
store i8 %752, i8* %11
%753 = load i8*, i8** %10
store i8 0, i8* %753
%754 = load i32*, i32** %7
%755 = call i32 @fputs(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i32* %754)
br label %756
756: ; preds = %760, %748
%757 = load i8*, i8** %9
%758 = load i8, i8* %757
%759 = icmp ne i8 %758, 0
br i1 %759, label %760, label %766
760: ; preds = %756
%761 = load i8*, i8** %9
%762 = getelementptr inbounds i8, i8* %761, i32 1
store i8* %762, i8** %9
%763 = load i8, i8* %761
%764 = load i32*, i32** %7
%765 = call i32 @putc_entity(i8 signext %763, i32* %764)
br label %756
766: ; preds = %756
%767 = load i32*, i32** %7
%768 = call i32 @fputs(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i32* %767)
%769 = load i8, i8* %11
%770 = load i8*, i8** %10
store i8 %769, i8* %770
%771 = load i8*, i8** %10
%772 = getelementptr inbounds i8, i8* %771, i64 2
store i8* %772, i8** %9
br label %915
773: ; preds = %744, %740, %736, %732
%774 = load i8*, i8** %9
%775 = load i8, i8* %774
%776 = sext i8 %775 to i32
%777 = icmp eq i32 %776, 92
br i1 %777, label %778, label %909
778: ; preds = %773
%779 = load i8*, i8** %9
%780 = getelementptr inbounds i8, i8* %779, i32 1
store i8* %780, i8** %9
%781 = load i8*, i8** %9
%782 = load i8, i8* %781
%783 = icmp ne i8 %782, 0
br i1 %783, label %785, label %784
784: ; preds = %778
br label %920
785: ; preds = %778
%786 = load i8*, i8** %9
%787 = getelementptr inbounds i8, i8* %786, i64 0
%788 = load i8, i8* %787
%789 = call i64 @isdigit(i8 signext %788)
%790 = icmp ne i64 %789, 0
br i1 %790, label %791, label %827
791: ; preds = %785
%792 = load i8*, i8** %9
%793 = getelementptr inbounds i8, i8* %792, i64 1
%794 = load i8, i8* %793
%795 = call i64 @isdigit(i8 signext %794)
%796 = icmp ne i64 %795, 0
br i1 %796, label %797, label %827
797: ; preds = %791
%798 = load i8*, i8** %9
%799 = getelementptr inbounds i8, i8* %798, i64 2
%800 = load i8, i8* %799
%801 = call i64 @isdigit(i8 signext %800)
%802 = icmp ne i64 %801, 0
br i1 %802, label %803, label %827
803: ; preds = %797
%804 = load i32*, i32** %7
%805 = load i8*, i8** %9
%806 = getelementptr inbounds i8, i8* %805, i64 0
%807 = load i8, i8* %806
%808 = sext i8 %807 to i32
%809 = sub nsw i32 %808, 48
%810 = mul nsw i32 %809, 8
%811 = load i8*, i8** %9
%812 = getelementptr inbounds i8, i8* %811, i64 1
%813 = load i8, i8* %812
%814 = sext i8 %813 to i32
%815 = add nsw i32 %810, %814
%816 = sub nsw i32 %815, 48
%817 = mul nsw i32 %816, 8
%818 = load i8*, i8** %9
%819 = getelementptr inbounds i8, i8* %818, i64 2
%820 = load i8, i8* %819
%821 = sext i8 %820 to i32
%822 = add nsw i32 %817, %821
%823 = sub nsw i32 %822, 48
%824 = call i32 (i32*, i8*, ...) @fprintf(i32* %804, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.73, i64 0, i64 0), i32 %823)
%825 = load i8*, i8** %9
%826 = getelementptr inbounds i8, i8* %825, i64 2
store i8* %826, i8** %9
br label %907
827: ; preds = %797, %791, %785
%828 = load i8*, i8** %9
%829 = load i8, i8* %828
%830 = sext i8 %829 to i32
%831 = icmp eq i32 %830, 38
br i1 %831, label %832, label %833
832: ; preds = %827
br label %917
833: ; preds = %827
%834 = load i8*, i8** %9
%835 = load i8, i8* %834
%836 = sext i8 %835 to i32
%837 = icmp eq i32 %836, 115
br i1 %837, label %838, label %857
838: ; preds = %833
br label %839
839: ; preds = %853, %838
%840 = load i8*, i8** %9
%841 = getelementptr inbounds i8, i8* %840, i64 1
%842 = load i8, i8* %841
%843 = sext i8 %842 to i32
%844 = icmp eq i32 %843, 45
br i1 %844, label %851, label %845
845: ; preds = %839
%846 = load i8*, i8** %9
%847 = getelementptr inbounds i8, i8* %846, i64 1
%848 = load i8, i8* %847
%849 = call i64 @isdigit(i8 signext %848)
%850 = icmp ne i64 %849, 0
br label %851
851: ; preds = %845, %839
%852 = phi i1 [ true, %839 ], [ %850, %845 ]
br i1 %852, label %853, label %856
853: ; preds = %851
%854 = load i8*, i8** %9
%855 = getelementptr inbounds i8, i8* %854, i32 1
store i8* %855, i8** %9
br label %839
856: ; preds = %851
br label %905
857: ; preds = %833
%858 = load i8*, i8** %9
%859 = load i8, i8* %858
%860 = sext i8 %859 to i32
%861 = icmp eq i32 %860, 42
br i1 %861, label %862, label %865
862: ; preds = %857
%863 = load i8*, i8** %9
%864 = getelementptr inbounds i8, i8* %863, i64 2
store i8* %864, i8** %9
br label %904
865: ; preds = %857
%866 = load i8*, i8** %9
%867 = load i8, i8* %866
%868 = sext i8 %867 to i32
%869 = icmp ne i32 %868, 102
br i1 %869, label %870, label %875
870: ; preds = %865
%871 = load i8*, i8** %9
%872 = load i8, i8* %871
%873 = load i32*, i32** %7
%874 = call i32 @putc_entity(i8 signext %872, i32* %873)
br label %903
875: ; preds = %865
%876 = load i8*, i8** %9
%877 = getelementptr inbounds i8, i8* %876, i32 1
store i8* %877, i8** %9
%878 = load i8*, i8** %9
%879 = load i8, i8* %878
%880 = icmp ne i8 %879, 0
br i1 %880, label %882, label %881
881: ; preds = %875
br label %920
882: ; preds = %875
%883 = load i32, i32* %16
%884 = sext i32 %883 to i64
%885 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %884
%886 = load i8*, i8** %885
%887 = load i32*, i32** %7
%888 = call i32 @fputs(i8* %886, i32* %887)
%889 = load i8*, i8** %9
%890 = load i8, i8* %889
%891 = sext i8 %890 to i32
switch i32 %891, label %892 [
i32 66, label %893
i32 98, label %893
i32 73, label %894
i32 105, label %894
]
892: ; preds = %882
store i32 0, i32* %16
br label %895
893: ; preds = %882, %882
store i32 1, i32* %16
br label %895
894: ; preds = %882, %882
store i32 2, i32* %16
br label %895
895: ; preds = %894, %893, %892
%896 = load i32, i32* %16
%897 = sext i32 %896 to i64
%898 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %897
%899 = load i8*, i8** %898
%900 = load i32*, i32** %7
%901 = call i32 @fputs(i8* %899, i32* %900)
br label %902
902: ; preds = %895
br label %903
903: ; preds = %902, %870
br label %904
904: ; preds = %903, %862
br label %905
905: ; preds = %904, %856
br label %906
906: ; preds = %905
br label %907
907: ; preds = %906, %803
br label %908
908: ; preds = %907
br label %914
909: ; preds = %773
%910 = load i8*, i8** %9
%911 = load i8, i8* %910
%912 = load i32*, i32** %7
%913 = call i32 @putc_entity(i8 signext %911, i32* %912)
br label %914
914: ; preds = %909, %908
br label %915
915: ; preds = %914, %766
br label %916
916: ; preds = %915, %720
br label %917
917: ; preds = %916, %832
%918 = load i8*, i8** %9
%919 = getelementptr inbounds i8, i8* %918, i32 1
store i8* %919, i8** %9
br label %689
920: ; preds = %881, %784, %689
%921 = load i8*, i8** %20
%922 = icmp ne i8* %921, null
br i1 %922, label %923, label %927
923: ; preds = %920
%924 = load i8*, i8** %20
%925 = load i32*, i32** %7
%926 = call i32 @fputs(i8* %924, i32* %925)
store i8* null, i8** %20
br label %927
927: ; preds = %923, %920
br label %928
928: ; preds = %927, %685
br label %66
929: ; preds = %66
%930 = load i32*, i32** %7
%931 = load i32, i32* %16
%932 = sext i32 %931 to i64
%933 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %932
%934 = load i8*, i8** %933
%935 = call i32 (i32*, i8*, ...) @fprintf(i32* %930, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), i8* %934)
%936 = load i32, i32* %17
%937 = icmp ne i32 %936, 0
br i1 %937, label %938, label %941
938: ; preds = %929
%939 = load i32*, i32** %7
%940 = call i32 @fputs(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i32* %939)
store i32 0, i32* %17
br label %941
941: ; preds = %938, %929
%942 = load i32, i32* %18
%943 = icmp ne i32 %942, 0
br i1 %943, label %944, label %960
944: ; preds = %941
%945 = load i32, i32* %18
%946 = icmp eq i32 %945, 1
br i1 %946, label %947, label %950
947: ; preds = %944
%948 = load i32*, i32** %7
%949 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i32* %948)
br label %957
950: ; preds = %944
%951 = load i32, i32* %18
%952 = icmp ne i32 %951, 0
br i1 %952, label %953, label %956
953: ; preds = %950
%954 = load i32*, i32** %7
%955 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), i32* %954)
br label %956
956: ; preds = %953, %950
br label %957
957: ; preds = %956, %947
%958 = load i32*, i32** %7
%959 = call i32 @fputs(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i32* %958)
store i32 0, i32* %18
br label %960
960: ; preds = %957, %941
%961 = load i32*, i32** %7
%962 = call i32 @fputs(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.75, i64 0, i64 0), i32* %961)
%963 = load i32*, i32** %6
%964 = load i32*, i32** @stdin
%965 = icmp ne i32* %963, %964
br i1 %965, label %966, label %969
966: ; preds = %960
%967 = load i32*, i32** %6
%968 = call i32 @fclose(i32* %967)
br label %969
969: ; preds = %966, %960
%970 = load i32*, i32** %7
%971 = load i32*, i32** @stdout
%972 = icmp ne i32* %970, %971
br i1 %972, label %973, label %976
973: ; preds = %969
%974 = load i32*, i32** %7
%975 = call i32 @fclose(i32* %974)
br label %976
976: ; preds = %973, %969
store i32 0, i32* %3
br label %977
977: ; preds = %976, %53, %36, %24
%978 = load i32, i32* %3
ret i32 %978
}

LLVM IR (-O2):
@main.start_fonts = internal unnamed_addr constant [3 x i8*] [i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i32 0, i32 0)]
@.str = [1 x i8] zeroinitializer
@.str.1 = [4 x i8] c"<b>\00"
@.str.2 = [4 x i8] c"<i>\00"
@main.end_fonts = internal unnamed_addr constant [3 x i8*] [i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i32 0, i32 0)]
@.str.3 = [5 x i8] c"</b>\00"
@.str.4 = [5 x i8] c"</i>\00"
@.str.5 = [49 x i8] c"Usage: mantohtml [filename.man [filename.html]]\0A\00"
@stderr = global i32* null
@.str.6 = [2 x i8] c"r\00"
@stdin = global i32* null
@.str.7 = [2 x i8] c"w\00"
@stdout = global i32* null
@.str.8 = [482 x i8] c"<!DOCTYPE HTML PUBLIC \22-//W3C//DTD HTML 4.0 Transitional//EN\22 \22http://www.w3.org/TR/REC-html40/loose.dtd\22>\0A<html>\0A<!-- SECTION: Man Pages -->\0A<head>\0A\09<style type='text/css'><!--\0A\09h1, h2, h3, p { font-family: sans-serif; text-align: justify; }\0A\09tt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color:f0000; }\0A\09pre { font-weight: bold; color:f0000; margin-left: 2em; }\0A\09h1.title, h2.title, h3.title { border-bottom: solid 2px; }\0A\09--></style>\0A\00"
@.str.9 = [5 x i8] c".TH \00"
@.str.10 = [5 x i8] c"%s%d\00"
@.str.11 = [57 x i8] c"\09<title>%s(%d)</title>\0A</head>\0A<body>\0A<h2>%s(%d)</h2>\0A%s\00"
@.str.12 = [5 x i8] c".SH \00"
@.str.13 = [5 x i8] c".Sh \00"
@.str.14 = [13 x i8] c"</li>\0A</ul>\0A\00"
@.str.15 = [7 x i8] c"</dt>\0A\00"
@.str.16 = [7 x i8] c"</dd>\0A\00"
@.str.17 = [7 x i8] c"</dl>\0A\00"
@.str.18 = [14 x i8] c"<h3><a name='\00"
@.str.19 = [14 x i8] c"<h4><a name='\00"
@.str.20 = [3 x i8] c"'>\00"
@.str.21 = [13 x i8] c"</a></h3>\0A%s\00"
@.str.22 = [13 x i8] c"</a></h4>\0A%s\00"
@.str.23 = [4 x i8] c".LP\00"
@.str.24 = [4 x i8] c".PP\00"
@.str.25 = [4 x i8] c"<p>\00"
@.str.26 = [5 x i8] c".TP \00"
@.str.27 = [6 x i8] c"<dl>\0A\00"
@.str.28 = [20 x i8] c"<!-- NEED 3 --><dt>\00"
@.str.29 = [4 x i8] c".br\00"
@.str.30 = [11 x i8] c"</dt>\0A<dd>\00"
@.str.31 = [11 x i8] c"</dd>\0A<dd>\00"
@.str.32 = [6 x i8] c"<br>\0A\00"
@.str.33 = [5 x i8] c".de \00"
@.str.34 = [3 x i8] c"..\00"
@.str.35 = [4 x i8] c".RS\00"
@.str.36 = [33 x i8] c"<div style='margin-left: 3em;'>\0A\00"
@.str.37 = [4 x i8] c".RE\00"
@.str.38 = [8 x i8] c"</div>\0A\00"
@.str.39 = [5 x i8] c".ds \00"
@.str.40 = [5 x i8] c".rm \00"
@.str.41 = [5 x i8] c".tr \00"
@.str.42 = [5 x i8] c".hy \00"
@.str.43 = [5 x i8] c".IX \00"
@.str.44 = [4 x i8] c".PD\00"
@.str.45 = [4 x i8] c".Sp\00"
@.str.46 = [4 x i8] c".Vb\00"
@.str.47 = [4 x i8] c".nf\00"
@.str.48 = [7 x i8] c"<pre>\0A\00"
@.str.49 = [4 x i8] c".Ve\00"
@.str.50 = [4 x i8] c".fi\00"
@.str.51 = [8 x i8] c"</pre>\0A\00"
@.str.52 = [9 x i8] c".IP \\(bu\00"
@.str.53 = [7 x i8] c"</li>\0A\00"
@.str.54 = [6 x i8] c"<ul>\0A\00"
@.str.55 = [5 x i8] c"<li>\00"
@.str.56 = [5 x i8] c".IP \00"
@.str.57 = [30 x i8] c"<p style='margin-left: 3em;'>\00"
@.str.58 = [15 x i8] c"\0A<br />\0A<br />\00"
@.str.59 = [4 x i8] c".\\}\00"
@.str.60 = [4 x i8] c".ie\00"
@.str.61 = [4 x i8] c".if\00"
@.str.62 = [4 x i8] c".el\00"
@.str.63 = [4 x i8] c".B \00"
@.str.64 = [14 x i8] c"%s<b>%s</b>%s\00"
@.str.65 = [4 x i8] c".I \00"
@.str.66 = [14 x i8] c"%s<i>%s</i>%s\00"
@.str.67 = [4 x i8] c".\\\22\00"
@.str.68 = [54 x i8] c"mantohtml: Unknown man page command '%s' on line %d!\0A\00"
@.str.69 = [8 x i8] c"http://\00"
@.str.70 = [20 x i8] c"<a href='%s'>%s</a>\00"
@.str.71 = [4 x i8] c"\\fI\00"
@.str.72 = [4 x i8] c"\\fR\00"
@.str.73 = [6 x i8] c"&#%d;\00"
@.str.74 = [4 x i8] c"%s\0A\00"
@.str.75 = [17 x i8] c"</body>\0A</html>\0A\00"
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca [1024 x i8]
%4 = alloca [1024 x i8]
%5 = alloca i32
%6 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 0
%7 = getelementptr inbounds [1024 x i8], [1024 x i8]* %4, i64 0, i64 0
%8 = bitcast i32* %5 to i8*
%9 = icmp sgt i32 %0, 3
br i1 %9, label %10, label %13
10: ; preds = %2
%11 = load i32*, i32** @stderr
%12 = tail call i64 @fwrite(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.5, i64 0, i64 0), i64 48, i64 1, i32* %11)
br label %552
13: ; preds = %2
%14 = icmp sgt i32 %0, 1
br i1 %14, label %15, label %23
15: ; preds = %13
%16 = getelementptr inbounds i8*, i8** %1, i64 1
%17 = load i8*, i8** %16
%18 = tail call i32* @fopen(i8* %17, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i64 0, i64 0))
%19 = icmp eq i32* %18, null
br i1 %19, label %20, label %25
20: ; preds = %15
%21 = load i8*, i8** %16
%22 = tail call i32 @perror(i8* %21)
br label %552
23: ; preds = %13
%24 = load i32*, i32** @stdin
br label %36
25: ; preds = %15
%26 = icmp ugt i32 %0, 2
br i1 %26, label %27, label %36
27: ; preds = %25
%28 = getelementptr inbounds i8*, i8** %1, i64 2
%29 = load i8*, i8** %28
%30 = tail call i32* @fopen(i8* %29, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.7, i64 0, i64 0))
%31 = icmp eq i32* %30, null
br i1 %31, label %32, label %39
32: ; preds = %27
%33 = load i8*, i8** %28
%34 = tail call i32 @perror(i8* %33)
%35 = tail call i32 @fclose(i32* %18)
br label %552
36: ; preds = %23, %25
%37 = phi i32* [ %24, %23 ], [ %18, %25 ]
%38 = load i32*, i32** @stdout
br label %39
39: ; preds = %27, %36
%40 = phi i32* [ %18, %27 ], [ %37, %36 ]
%41 = phi i32* [ %30, %27 ], [ %38, %36 ]
%42 = tail call i64 @fwrite(i8* getelementptr inbounds ([482 x i8], [482 x i8]* @.str.8, i64 0, i64 0), i64 481, i64 1, i32* %41)
store i32 -1, i32* %5
%43 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 1
%44 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 2
%45 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 3
%46 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 4
br label %47
47: ; preds = %369, %39
%48 = phi i32 [ 0, %39 ], [ %356, %369 ]
%49 = phi i32 [ 0, %39 ], [ %357, %369 ]
%50 = phi i32 [ 0, %39 ], [ %358, %369 ]
%51 = phi i32 [ 0, %39 ], [ %359, %369 ]
%52 = phi i32 [ 0, %39 ], [ %370, %369 ]
br label %53
53: ; preds = %524, %47
%54 = phi i32 [ %49, %47 ], [ %523, %524 ]
%55 = phi i32 [ %50, %47 ], [ %391, %524 ]
%56 = phi i32 [ %52, %47 ], [ %62, %524 ]
br label %57
57: ; preds = %53, %82
%58 = phi i32 [ %62, %82 ], [ %56, %53 ]
%59 = call i64 @fgets(i8* %6, i32 1024, i32* %40)
%60 = icmp eq i64 %59, 0
br i1 %60, label %527, label %61
61: ; preds = %57
%62 = add nsw i32 %58, 1
%63 = load i8, i8* %6
%64 = icmp eq i8 %63, 46
br i1 %64, label %65, label %389
65: ; preds = %61, %67
%66 = load i8, i8* %43
switch i8 %66, label %69 [
i8 32, label %67
i8 9, label %67
]
67: ; preds = %65, %65
%68 = call i32 @strmove(i8* %43, i8* %44)
br label %65
69: ; preds = %65
%70 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i32 4)
%71 = icmp eq i64 %70, 0
%72 = load i32, i32* %5
%73 = icmp slt i32 %72, 0
%74 = select i1 %71, i1 %73, i1 false
br i1 %74, label %75, label %82
75: ; preds = %69
%76 = call i32 @sscanf(i8* %46, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* %7, i32* %5)
%77 = load i32, i32* %5
%78 = zext i32 %54 to i64
%79 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %78
%80 = load i8*, i8** %79
%81 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.11, i64 0, i64 0), i8* %7, i32 %77, i8* %7, i32 %77, i8* %80)
br label %355
82: ; preds = %69
br i1 %73, label %57, label %83
83: ; preds = %82
%84 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i32 4)
%85 = icmp eq i64 %84, 0
br i1 %85, label %89, label %86
86: ; preds = %83
%87 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 4)
%88 = icmp eq i64 %87, 0
br i1 %88, label %89, label %147
89: ; preds = %86, %83
%90 = zext i32 %54 to i64
%91 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %90
%92 = load i8*, i8** %91
%93 = call i32 @fputs(i8* %92, i32* %41)
%94 = icmp eq i32 %55, 0
br i1 %94, label %97, label %95
95: ; preds = %89
%96 = call i64 @fwrite(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i64 12, i64 1, i32* %41)
br label %97
97: ; preds = %95, %89
switch i32 %51, label %98 [
i32 0, label %103
i32 1, label %99
]
98: ; preds = %97
br label %99
99: ; preds = %97, %98
%100 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), %98 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), %97 ]
%101 = call i64 @fwrite(i8* %100, i64 6, i64 1, i32* %41)
%102 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %103
103: ; preds = %97, %99
%104 = call i32 @strlen(i8* %6)
%105 = add nsw i32 %104, -1
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 %106
store i8 0, i8* %107
%108 = load i8, i8* %44
%109 = icmp eq i8 %108, 72
%110 = select i1 %109, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.19, i64 0, i64 0)
%111 = call i64 @fwrite(i8* %110, i64 13, i64 1, i32* %41)
br label %112
112: ; preds = %119, %103
%113 = phi i8* [ %46, %103 ], [ %120, %119 ]
%114 = load i8, i8* %113
switch i8 %114, label %115 [
i8 0, label %121
i8 34, label %119
i8 32, label %116
]
115: ; preds = %112
br label %116
116: ; preds = %112, %115
%117 = phi i8 [ %114, %115 ], [ 95, %112 ]
%118 = call i32 @putc_entity(i8 signext %117, i32* %41)
br label %119
119: ; preds = %116, %112
%120 = getelementptr inbounds i8, i8* %113, i64 1
br label %112
121: ; preds = %112
%122 = call i64 @fwrite(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.20, i64 0, i64 0), i64 2, i64 1, i32* %41)
br label %123
123: ; preds = %135, %121
%124 = phi i8* [ %46, %121 ], [ %137, %135 ]
%125 = phi i32 [ 1, %121 ], [ %136, %135 ]
%126 = load i8, i8* %124
switch i8 %126, label %127 [
i8 0, label %138
i8 34, label %135
i8 32, label %131
]
127: ; preds = %123
%128 = icmp eq i32 %125, 0
br i1 %128, label %129, label %131
129: ; preds = %127
%130 = call signext i8 @tolower(i8 signext %126)
br label %131
131: ; preds = %127, %123, %129
%132 = phi i8 [ %130, %129 ], [ %126, %123 ], [ %126, %127 ]
%133 = phi i32 [ 0, %129 ], [ 1, %123 ], [ 0, %127 ]
%134 = call i32 @putc_entity(i8 signext %132, i32* %41)
br label %135
135: ; preds = %131, %123
%136 = phi i32 [ %125, %123 ], [ %133, %131 ]
%137 = getelementptr inbounds i8, i8* %124, i64 1
br label %123
138: ; preds = %123
%139 = load i8, i8* %44
%140 = icmp eq i8 %139, 72
%141 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %90
%142 = load i8*, i8** %141
br i1 %140, label %143, label %145
143: ; preds = %138
%144 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.21, i64 0, i64 0), i8* %142)
br label %355
145: ; preds = %138
%146 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.22, i64 0, i64 0), i8* %142)
br label %355
147: ; preds = %86
%148 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0), i32 3)
%149 = icmp eq i64 %148, 0
br i1 %149, label %153, label %150
150: ; preds = %147
%151 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0), i32 3)
%152 = icmp eq i64 %151, 0
br i1 %152, label %153, label %169
153: ; preds = %150, %147
%154 = zext i32 %54 to i64
%155 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %154
%156 = load i8*, i8** %155
%157 = call i32 @fputs(i8* %156, i32* %41)
%158 = icmp eq i32 %55, 0
br i1 %158, label %161, label %159
159: ; preds = %153
%160 = call i64 @fwrite(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i64 12, i64 1, i32* %41)
br label %161
161: ; preds = %159, %153
switch i32 %51, label %162 [
i32 0, label %167
i32 1, label %163
]
162: ; preds = %161
br label %163
163: ; preds = %161, %162
%164 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), %162 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), %161 ]
%165 = call i64 @fwrite(i8* %164, i64 6, i64 1, i32* %41)
%166 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %167
167: ; preds = %161, %163
%168 = call i64 @fwrite(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0), i64 3, i64 1, i32* %41)
br label %355
169: ; preds = %150
%170 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.26, i64 0, i64 0), i32 4)
%171 = icmp eq i64 %170, 0
br i1 %171, label %172, label %189
172: ; preds = %169
%173 = zext i32 %54 to i64
%174 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %173
%175 = load i8*, i8** %174
%176 = call i32 @fputs(i8* %175, i32* %41)
%177 = icmp eq i32 %55, 0
br i1 %177, label %180, label %178
178: ; preds = %172
%179 = call i64 @fwrite(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i64 12, i64 1, i32* %41)
br label %180
180: ; preds = %178, %172
switch i32 %51, label %185 [
i32 0, label %181
i32 1, label %183
]
181: ; preds = %180
%182 = call i64 @fwrite(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.27, i64 0, i64 0), i64 5, i64 1, i32* %41)
br label %187
183: ; preds = %180
%184 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %187
185: ; preds = %180
%186 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %187
187: ; preds = %183, %185, %181
%188 = call i64 @fwrite(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.28, i64 0, i64 0), i64 19, i64 1, i32* %41)
br label %355
189: ; preds = %169
%190 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0), i32 3)
%191 = icmp eq i64 %190, 0
br i1 %191, label %192, label %201
192: ; preds = %189
switch i32 %51, label %195 [
i32 1, label %193
i32 0, label %197
]
193: ; preds = %192
%194 = call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i64 0, i64 0), i64 10, i64 1, i32* %41)
br label %355
195: ; preds = %192
%196 = call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.31, i64 0, i64 0), i64 10, i64 1, i32* %41)
br label %355
197: ; preds = %192
%198 = icmp eq i32 %48, 0
br i1 %198, label %199, label %355
199: ; preds = %197
%200 = call i64 @fwrite(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0), i64 5, i64 1, i32* %41)
br label %355
201: ; preds = %189
%202 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.33, i64 0, i64 0), i32 4)
%203 = icmp eq i64 %202, 0
br i1 %203, label %204, label %212
204: ; preds = %201, %208
%205 = phi i32 [ %209, %208 ], [ %62, %201 ]
%206 = call i64 @fgets(i8* %6, i32 1024, i32* %40)
%207 = icmp eq i64 %206, 0
br i1 %207, label %355, label %208
208: ; preds = %204
%209 = add nsw i32 %205, 1
%210 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.34, i64 0, i64 0), i32 2)
%211 = icmp eq i64 %210, 0
br i1 %211, label %355, label %204
212: ; preds = %201
%213 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0), i32 3)
%214 = icmp eq i64 %213, 0
br i1 %214, label %215, label %217
215: ; preds = %212
%216 = call i64 @fwrite(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.36, i64 0, i64 0), i64 32, i64 1, i32* %41)
br label %355
217: ; preds = %212
%218 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i32 3)
%219 = icmp eq i64 %218, 0
br i1 %219, label %220, label %222
220: ; preds = %217
%221 = call i64 @fwrite(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.38, i64 0, i64 0), i64 7, i64 1, i32* %41)
br label %355
222: ; preds = %217
%223 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i32 4)
%224 = icmp eq i64 %223, 0
br i1 %224, label %355, label %225
225: ; preds = %222
%226 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.40, i64 0, i64 0), i32 4)
%227 = icmp eq i64 %226, 0
br i1 %227, label %355, label %228
228: ; preds = %225
%229 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0), i32 4)
%230 = icmp eq i64 %229, 0
br i1 %230, label %355, label %231
231: ; preds = %228
%232 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i32 4)
%233 = icmp eq i64 %232, 0
br i1 %233, label %355, label %234
234: ; preds = %231
%235 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0), i32 4)
%236 = icmp eq i64 %235, 0
br i1 %236, label %355, label %237
237: ; preds = %234
%238 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0), i32 3)
%239 = icmp eq i64 %238, 0
br i1 %239, label %355, label %240
240: ; preds = %237
%241 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0), i32 3)
%242 = icmp eq i64 %241, 0
br i1 %242, label %355, label %243
243: ; preds = %240
%244 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0), i32 3)
%245 = icmp eq i64 %244, 0
br i1 %245, label %249, label %246
246: ; preds = %243
%247 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0), i32 3)
%248 = icmp eq i64 %247, 0
br i1 %248, label %249, label %251
249: ; preds = %246, %243
%250 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.48, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %355
251: ; preds = %246
%252 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0), i32 3)
%253 = icmp eq i64 %252, 0
br i1 %253, label %257, label %254
254: ; preds = %251
%255 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0), i32 3)
%256 = icmp eq i64 %255, 0
br i1 %256, label %257, label %261
257: ; preds = %254, %251
%258 = icmp eq i32 %48, 0
br i1 %258, label %355, label %259
259: ; preds = %257
%260 = call i64 @fwrite(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.51, i64 0, i64 0), i64 7, i64 1, i32* %41)
br label %355
261: ; preds = %254
%262 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.52, i64 0, i64 0), i32 8)
%263 = icmp eq i64 %262, 0
br i1 %263, label %264, label %272
264: ; preds = %261
%265 = icmp eq i32 %55, 0
br i1 %265, label %268, label %266
266: ; preds = %264
%267 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.53, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %270
268: ; preds = %264
%269 = call i64 @fwrite(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.54, i64 0, i64 0), i64 5, i64 1, i32* %41)
br label %270
270: ; preds = %268, %266
%271 = call i64 @fwrite(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.55, i64 0, i64 0), i64 4, i64 1, i32* %41)
br label %355
272: ; preds = %261
%273 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0), i32 4)
%274 = icmp eq i64 %273, 0
br i1 %274, label %275, label %298
275: ; preds = %272
%276 = icmp eq i32 %55, 0
br i1 %276, label %279, label %277
277: ; preds = %275
%278 = call i64 @fwrite(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i64 12, i64 1, i32* %41)
br label %279
279: ; preds = %277, %275
%280 = call i64 @fwrite(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.57, i64 0, i64 0), i64 29, i64 1, i32* %41)
br label %281
281: ; preds = %281, %279
%282 = phi i8* [ %46, %279 ], [ %286, %281 ]
%283 = load i8, i8* %282
%284 = call i64 @isspace(i8 signext %283)
%285 = icmp eq i64 %284, 0
%286 = getelementptr inbounds i8, i8* %282, i64 1
br i1 %285, label %287, label %281
287: ; preds = %281
%288 = load i8, i8* %282
%289 = icmp eq i8 %288, 34
br i1 %289, label %290, label %294
290: ; preds = %287
%291 = call i32 @strmove(i8* %6, i8* %286)
%292 = call i8* @strchr(i8* %6, i8 signext 34)
%293 = icmp eq i8* %292, null
br i1 %293, label %387, label %385
294: ; preds = %287
%295 = call i32 @strmove(i8* %6, i8* %282)
%296 = call i8* @strchr(i8* %6, i8 signext 32)
%297 = icmp eq i8* %296, null
br i1 %297, label %387, label %385
298: ; preds = %272
%299 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0), i32 3)
%300 = icmp eq i64 %299, 0
br i1 %300, label %355, label %301
301: ; preds = %298
%302 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0), i32 3)
%303 = icmp eq i64 %302, 0
br i1 %303, label %310, label %304
304: ; preds = %301
%305 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0), i32 3)
%306 = icmp eq i64 %305, 0
br i1 %306, label %310, label %307
307: ; preds = %304
%308 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.62, i64 0, i64 0), i32 3)
%309 = icmp eq i64 %308, 0
br i1 %309, label %310, label %321
310: ; preds = %307, %304, %301
%311 = call i8* @strchr(i8* %6, i8 signext 123)
%312 = icmp eq i8* %311, null
br i1 %312, label %355, label %313
313: ; preds = %310, %317
%314 = phi i32 [ %318, %317 ], [ %62, %310 ]
%315 = call i64 @fgets(i8* %6, i32 1024, i32* %40)
%316 = icmp eq i64 %315, 0
br i1 %316, label %355, label %317
317: ; preds = %313
%318 = add nsw i32 %314, 1
%319 = call i8* @strchr(i8* %6, i8 signext 125)
%320 = icmp eq i8* %319, null
br i1 %320, label %313, label %355
321: ; preds = %307
%322 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.63, i64 0, i64 0), i32 3)
%323 = icmp eq i64 %322, 0
br i1 %323, label %324, label %331
324: ; preds = %321
%325 = zext i32 %54 to i64
%326 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %325
%327 = load i8*, i8** %326
%328 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %325
%329 = load i8*, i8** %328
%330 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.64, i64 0, i64 0), i8* %327, i8* %45, i8* %329)
br label %355
331: ; preds = %321
%332 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.65, i64 0, i64 0), i32 3)
%333 = icmp eq i64 %332, 0
br i1 %333, label %334, label %341
334: ; preds = %331
%335 = zext i32 %54 to i64
%336 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %335
%337 = load i8*, i8** %336
%338 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %335
%339 = load i8*, i8** %338
%340 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.66, i64 0, i64 0), i8* %337, i8* %45, i8* %339)
br label %355
341: ; preds = %331
%342 = call i64 @strncmp(i8* %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.67, i64 0, i64 0), i32 3)
%343 = icmp eq i64 %342, 0
br i1 %343, label %355, label %344
344: ; preds = %341
%345 = call i8* @strchr(i8* %6, i8 signext 32)
%346 = icmp eq i8* %345, null
br i1 %346, label %347, label %350
347: ; preds = %344
%348 = call i8* @strchr(i8* %6, i8 signext 10)
%349 = icmp eq i8* %348, null
br i1 %349, label %352, label %350
350: ; preds = %347, %344
%351 = phi i8* [ %345, %344 ], [ %348, %347 ]
store i8 0, i8* %351
br label %352
352: ; preds = %350, %347
%353 = load i32*, i32** @stderr
%354 = call i32 (i32*, i8*, ...) @fprintf(i32* %353, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.68, i64 0, i64 0), i8* %6, i32 %62)
br label %355
355: ; preds = %240, %237, %234, %231, %228, %225, %222, %313, %317, %204, %208, %143, %145, %167, %195, %199, %197, %193, %215, %259, %257, %310, %334, %352, %341, %324, %298, %270, %249, %220, %187, %75
%356 = phi i32 [ %48, %75 ], [ %48, %352 ], [ %48, %341 ], [ %48, %334 ], [ %48, %324 ], [ %48, %310 ], [ %48, %298 ], [ %48, %270 ], [ 0, %259 ], [ 0, %257 ], [ 1, %249 ], [ %48, %220 ], [ %48, %215 ], [ %48, %193 ], [ %48, %195 ], [ 1, %197 ], [ 0, %199 ], [ %48, %187 ], [ %48, %167 ], [ %48, %145 ], [ %48, %143 ], [ %48, %208 ], [ %48, %204 ], [ %48, %317 ], [ %48, %313 ], [ %48, %222 ], [ %48, %225 ], [ %48, %228 ], [ %48, %231 ], [ %48, %234 ], [ %48, %237 ], [ %48, %240 ]
%357 = phi i32 [ %54, %75 ], [ %54, %352 ], [ %54, %341 ], [ %54, %334 ], [ %54, %324 ], [ %54, %310 ], [ %54, %298 ], [ %54, %270 ], [ %54, %259 ], [ %54, %257 ], [ %54, %249 ], [ %54, %220 ], [ %54, %215 ], [ %54, %193 ], [ %54, %195 ], [ %54, %197 ], [ %54, %199 ], [ 0, %187 ], [ 0, %167 ], [ %54, %145 ], [ %54, %143 ], [ %54, %208 ], [ %54, %204 ], [ %54, %317 ], [ %54, %313 ], [ %54, %222 ], [ %54, %225 ], [ %54, %228 ], [ %54, %231 ], [ %54, %234 ], [ %54, %237 ], [ %54, %240 ]
%358 = phi i32 [ %55, %75 ], [ %55, %352 ], [ %55, %341 ], [ %55, %334 ], [ %55, %324 ], [ %55, %310 ], [ %55, %298 ], [ 1, %270 ], [ %55, %259 ], [ %55, %257 ], [ %55, %249 ], [ %55, %220 ], [ %55, %215 ], [ %55, %193 ], [ %55, %195 ], [ %55, %197 ], [ %55, %199 ], [ 0, %187 ], [ 0, %167 ], [ 0, %145 ], [ 0, %143 ], [ %55, %208 ], [ %55, %204 ], [ %55, %317 ], [ %55, %313 ], [ %55, %222 ], [ %55, %225 ], [ %55, %228 ], [ %55, %231 ], [ %55, %234 ], [ %55, %237 ], [ %55, %240 ]
%359 = phi i32 [ %51, %75 ], [ %51, %352 ], [ %51, %341 ], [ %51, %334 ], [ %51, %324 ], [ %51, %310 ], [ %51, %298 ], [ %51, %270 ], [ %51, %259 ], [ %51, %257 ], [ %51, %249 ], [ %51, %220 ], [ %51, %215 ], [ 2, %193 ], [ %51, %195 ], [ 0, %197 ], [ 0, %199 ], [ 1, %187 ], [ 0, %167 ], [ 0, %145 ], [ 0, %143 ], [ %51, %208 ], [ %51, %204 ], [ %51, %317 ], [ %51, %313 ], [ %51, %222 ], [ %51, %225 ], [ %51, %228 ], [ %51, %231 ], [ %51, %234 ], [ %51, %237 ], [ %51, %240 ]
%360 = phi i32 [ %62, %75 ], [ %62, %352 ], [ %62, %341 ], [ %62, %334 ], [ %62, %324 ], [ %62, %310 ], [ %62, %298 ], [ %62, %270 ], [ %62, %259 ], [ %62, %257 ], [ %62, %249 ], [ %62, %220 ], [ %62, %215 ], [ %62, %193 ], [ %62, %195 ], [ %62, %197 ], [ %62, %199 ], [ %62, %187 ], [ %62, %167 ], [ %62, %145 ], [ %62, %143 ], [ %205, %204 ], [ %209, %208 ], [ %314, %313 ], [ %318, %317 ], [ %62, %222 ], [ %62, %225 ], [ %62, %228 ], [ %62, %231 ], [ %62, %234 ], [ %62, %237 ], [ %62, %240 ]
%361 = call i32 @strlen(i8* %6)
%362 = sext i32 %361 to i64
%363 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 %362
%364 = getelementptr inbounds i8, i8* %363, i64 -2
%365 = icmp ult i8* %364, %6
br i1 %365, label %369, label %366
366: ; preds = %355
%367 = load i8, i8* %364
%368 = icmp eq i8 %367, 92
br i1 %368, label %371, label %369
369: ; preds = %371, %382, %375, %366, %355
%370 = phi i32 [ %360, %355 ], [ %360, %366 ], [ %376, %375 ], [ %376, %382 ], [ %372, %371 ]
br label %47
371: ; preds = %366, %382
%372 = phi i32 [ %376, %382 ], [ %360, %366 ]
%373 = call i64 @fgets(i8* %6, i32 1024, i32* %40)
%374 = icmp eq i64 %373, 0
br i1 %374, label %369, label %375
375: ; preds = %371
%376 = add nsw i32 %372, 1
%377 = call i32 @strlen(i8* %6)
%378 = sext i32 %377 to i64
%379 = getelementptr inbounds [1024 x i8], [1024 x i8]* %3, i64 0, i64 %378
%380 = getelementptr inbounds i8, i8* %379, i64 -2
%381 = icmp ult i8* %380, %6
br i1 %381, label %369, label %382
382: ; preds = %375
%383 = load i8, i8* %380
%384 = icmp eq i8 %383, 92
br i1 %384, label %371, label %369
385: ; preds = %294, %290
%386 = phi i8* [ %292, %290 ], [ %296, %294 ]
store i8 0, i8* %386
br label %387
387: ; preds = %385, %294, %290
%388 = load i8, i8* %6
br label %389
389: ; preds = %61, %387
%390 = phi i8 [ %388, %387 ], [ %63, %61 ]
%391 = phi i32 [ 0, %387 ], [ %55, %61 ]
%392 = phi i8* [ getelementptr inbounds ([15 x i8], [15 x i8]* @.str.58, i64 0, i64 0), %387 ], [ null, %61 ]
%393 = icmp eq i8 %390, 0
br i1 %393, label %522, label %394
394: ; preds = %389, %516
%395 = phi i32 [ %518, %516 ], [ %54, %389 ]
%396 = phi i8* [ %519, %516 ], [ %6, %389 ]
%397 = call i64 @strncmp(i8* %396, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.69, i64 0, i64 0), i32 7)
%398 = icmp eq i64 %397, 0
br i1 %398, label %399, label %419
399: ; preds = %394
%400 = getelementptr inbounds i8, i8* %396, i64 7
%401 = load i8, i8* %400
%402 = icmp eq i8 %401, 0
br i1 %402, label %414, label %403
403: ; preds = %399, %410
%404 = phi i8 [ %412, %410 ], [ %401, %399 ]
%405 = phi i8* [ %411, %410 ], [ %400, %399 ]
%406 = call i64 @isspace(i8 signext %404)
%407 = icmp eq i64 %406, 0
br i1 %407, label %410, label %408
408: ; preds = %403
%409 = load i8, i8* %405
br label %414
410: ; preds = %403
%411 = getelementptr inbounds i8, i8* %405, i64 1
%412 = load i8, i8* %411
%413 = icmp eq i8 %412, 0
br i1 %413, label %414, label %403
414: ; preds = %410, %408, %399
%415 = phi i8 [ 0, %399 ], [ %409, %408 ], [ 0, %410 ]
%416 = phi i8* [ %400, %399 ], [ %405, %408 ], [ %411, %410 ]
store i8 0, i8* %416
%417 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.70, i64 0, i64 0), i8* %396, i8* %396)
store i8 %415, i8* %416
%418 = getelementptr inbounds i8, i8* %416, i64 -1
br label %516
419: ; preds = %394
%420 = call i64 @strncmp(i8* %396, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.71, i64 0, i64 0), i32 3)
%421 = icmp eq i64 %420, 0
br i1 %421, label %422, label %446
422: ; preds = %419
%423 = call i8* @strstr(i8* %396, i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.72, i64 0, i64 0))
%424 = icmp eq i8* %423, null
br i1 %424, label %446, label %425
425: ; preds = %422
%426 = call i8* @strchr(i8* %396, i8 signext 40)
%427 = icmp ne i8* %426, null
%428 = icmp ult i8* %426, %423
%429 = select i1 %427, i1 %428, i1 false
br i1 %429, label %430, label %446
430: ; preds = %425
%431 = getelementptr inbounds i8, i8* %396, i64 3
%432 = load i8, i8* %423
store i8 0, i8* %423
%433 = call i64 @fwrite(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i64 3, i64 1, i32* %41)
%434 = load i8, i8* %431
%435 = icmp eq i8 %434, 0
br i1 %435, label %443, label %436
436: ; preds = %430, %436
%437 = phi i8 [ %441, %436 ], [ %434, %430 ]
%438 = phi i8* [ %439, %436 ], [ %431, %430 ]
%439 = getelementptr inbounds i8, i8* %438, i64 1
%440 = call i32 @putc_entity(i8 signext %437, i32* %41)
%441 = load i8, i8* %439
%442 = icmp eq i8 %441, 0
br i1 %442, label %443, label %436
443: ; preds = %436, %430
%444 = call i64 @fwrite(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i64 4, i64 1, i32* %41)
store i8 %432, i8* %423
%445 = getelementptr inbounds i8, i8* %423, i64 2
br label %516
446: ; preds = %425, %422, %419
%447 = load i8, i8* %396
%448 = icmp eq i8 %447, 92
br i1 %448, label %449, label %514
449: ; preds = %446
%450 = getelementptr inbounds i8, i8* %396, i64 1
%451 = load i8, i8* %450
%452 = icmp eq i8 %451, 0
br i1 %452, label %522, label %453
453: ; preds = %449
%454 = call i64 @isdigit(i8 signext %451)
%455 = icmp eq i64 %454, 0
br i1 %455, label %480, label %456
456: ; preds = %453
%457 = getelementptr inbounds i8, i8* %396, i64 2
%458 = load i8, i8* %457
%459 = call i64 @isdigit(i8 signext %458)
%460 = icmp eq i64 %459, 0
br i1 %460, label %480, label %461
461: ; preds = %456
%462 = getelementptr inbounds i8, i8* %396, i64 3
%463 = load i8, i8* %462
%464 = call i64 @isdigit(i8 signext %463)
%465 = icmp eq i64 %464, 0
br i1 %465, label %480, label %466
466: ; preds = %461
%467 = load i8, i8* %450
%468 = sext i8 %467 to i32
%469 = shl nsw i32 %468, 3
%470 = add nsw i32 %469, 536870528
%471 = load i8, i8* %457
%472 = sext i8 %471 to i32
%473 = add nsw i32 %470, %472
%474 = shl i32 %473, 3
%475 = load i8, i8* %462
%476 = sext i8 %475 to i32
%477 = add nsw i32 %476, -432
%478 = add i32 %477, %474
%479 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.73, i64 0, i64 0), i32 %478)
br label %516
480: ; preds = %461, %456, %453
%481 = load i8, i8* %450
switch i8 %481, label %493 [
i8 38, label %516
i8 115, label %482
i8 42, label %491
i8 102, label %495
]
482: ; preds = %480, %487
%483 = phi i8* [ %484, %487 ], [ %450, %480 ]
%484 = getelementptr inbounds i8, i8* %483, i64 1
%485 = load i8, i8* %484
%486 = icmp eq i8 %485, 45
br i1 %486, label %487, label %488
487: ; preds = %482, %488
br label %482
488: ; preds = %482
%489 = call i64 @isdigit(i8 signext %485)
%490 = icmp eq i64 %489, 0
br i1 %490, label %516, label %487
491: ; preds = %480
%492 = getelementptr inbounds i8, i8* %396, i64 3
br label %516
493: ; preds = %480
%494 = call i32 @putc_entity(i8 signext %481, i32* %41)
br label %516
495: ; preds = %480
%496 = getelementptr inbounds i8, i8* %396, i64 2
%497 = load i8, i8* %496
%498 = icmp eq i8 %497, 0
br i1 %498, label %522, label %499
499: ; preds = %495
%500 = zext i32 %395 to i64
%501 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %500
%502 = load i8*, i8** %501
%503 = call i32 @fputs(i8* %502, i32* %41)
%504 = load i8, i8* %496
%505 = sext i8 %504 to i32
switch i32 %505, label %508 [
i32 66, label %506
i32 98, label %506
i32 73, label %507
i32 105, label %507
]
506: ; preds = %499, %499
br label %508
507: ; preds = %499, %499
br label %508
508: ; preds = %499, %507, %506
%509 = phi i32 [ 2, %507 ], [ 1, %506 ], [ 0, %499 ]
%510 = zext i32 %509 to i64
%511 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.start_fonts, i64 0, i64 %510
%512 = load i8*, i8** %511
%513 = call i32 @fputs(i8* %512, i32* %41)
br label %516
514: ; preds = %446
%515 = call i32 @putc_entity(i8 signext %447, i32* %41)
br label %516
516: ; preds = %488, %480, %414, %514, %466, %493, %508, %491, %443
%517 = phi i8* [ %462, %466 ], [ %450, %480 ], [ %492, %491 ], [ %450, %493 ], [ %496, %508 ], [ %396, %514 ], [ %445, %443 ], [ %418, %414 ], [ %483, %488 ]
%518 = phi i32 [ %395, %466 ], [ %395, %480 ], [ %395, %491 ], [ %395, %493 ], [ %509, %508 ], [ %395, %514 ], [ %395, %443 ], [ %395, %414 ], [ %395, %488 ]
%519 = getelementptr inbounds i8, i8* %517, i64 1
%520 = load i8, i8* %519
%521 = icmp eq i8 %520, 0
br i1 %521, label %522, label %394
522: ; preds = %516, %449, %495, %389
%523 = phi i32 [ %54, %389 ], [ %395, %495 ], [ %395, %449 ], [ %518, %516 ]
br i1 %64, label %525, label %524
524: ; preds = %522, %525
br label %53
525: ; preds = %522
%526 = call i32 @fputs(i8* %392, i32* %41)
br label %524
527: ; preds = %57
%528 = zext i32 %54 to i64
%529 = getelementptr inbounds [3 x i8*], [3 x i8*]* @main.end_fonts, i64 0, i64 %528
%530 = load i8*, i8** %529
%531 = call i32 (i32*, i8*, ...) @fprintf(i32* %41, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), i8* %530)
%532 = icmp eq i32 %55, 0
br i1 %532, label %535, label %533
533: ; preds = %527
%534 = call i64 @fwrite(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0), i64 12, i64 1, i32* %41)
br label %535
535: ; preds = %533, %527
switch i32 %51, label %536 [
i32 0, label %541
i32 1, label %537
]
536: ; preds = %535
br label %537
537: ; preds = %535, %536
%538 = phi i8* [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0), %536 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.15, i64 0, i64 0), %535 ]
%539 = call i64 @fwrite(i8* %538, i64 6, i64 1, i32* %41)
%540 = call i64 @fwrite(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0), i64 6, i64 1, i32* %41)
br label %541
541: ; preds = %535, %537
%542 = call i64 @fwrite(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.75, i64 0, i64 0), i64 16, i64 1, i32* %41)
%543 = load i32*, i32** @stdin
%544 = icmp eq i32* %40, %543
br i1 %544, label %547, label %545
545: ; preds = %541
%546 = call i32 @fclose(i32* %40)
br label %547
547: ; preds = %545, %541
%548 = load i32*, i32** @stdout
%549 = icmp eq i32* %41, %548
br i1 %549, label %552, label %550
550: ; preds = %547
%551 = call i32 @fclose(i32* %41)
br label %552
552: ; preds = %547, %550, %32, %20, %10
%553 = phi i32 [ 1, %10 ], [ 1, %20 ], [ 1, %32 ], [ 0, %550 ], [ 0, %547 ]
ret i32 %553
}