#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*/ buf;
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
scalar_t__ fgets(char *, int, int /*<<< orphan*/ *);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, unsigned int, ...);
scalar_t__ isspace(char);
scalar_t__ isxdigit(char);
scalar_t__ new_audioterminal(char *, unsigned int);
scalar_t__ new_bias(char *, unsigned int);
scalar_t__ new_class(char *, unsigned int);
scalar_t__ new_countrycode(char *, unsigned int);
scalar_t__ new_hid(char *, unsigned int);
scalar_t__ new_huts(char *, unsigned int);
scalar_t__ new_hutus(char *, int);
scalar_t__ new_langid(char *, int);
scalar_t__ new_physdes(char *, unsigned int);
scalar_t__ new_product(char *, int, unsigned int);
scalar_t__ new_protocol(char *, int, int, unsigned int);
scalar_t__ new_reporttag(char *, unsigned int);
scalar_t__ new_subclass(char *, int, unsigned int);
scalar_t__ new_vendor(char *, unsigned int);
scalar_t__ new_videoterminal(char *, unsigned int);
int /*<<< orphan*/ stderr;
char *strchr(char *, int);
unsigned int strtoul(char *, char **, int);
void parse(FILE *f) {
  char buf[512], *cp;
  unsigned int linectr = 0;
  int lastvendor = -1;
  int lastclass = -1;
  int lastsubclass = -1;
  int lasthut = -1;
  int lastlang = -1;
  unsigned int u;
  while (fgets(buf, sizeof(buf), f)) {
    linectr++;
    cp = strchr(buf, 13);
    if (cp)
      *cp = 0;
    cp = strchr(buf, 10);
    if (cp)
      *cp = 0;
    if (buf[0] == '#' || !buf[0])
      continue;
    cp = buf;
    if (buf[0] == 'P' && buf[1] == 'H' && buf[2] == 'Y' && buf[3] == 'S' &&
        buf[4] == 'D' && buf[5] == 'E' && buf[6] == 'S' && buf[7] == ' ') {
      cp = buf + 8;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid Physdes type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid Physdes type at line %u\n", linectr);
        continue;
      }
      if (new_physdes(cp, u))
        fprintf(
            stderr,
            "Duplicate Physdes  type spec at line %u terminal type %04x %s\n",
            linectr, u, cp);
      ;
      continue;
    }
    if (buf[0] == 'P' && buf[1] == 'H' && buf[2] == 'Y' && buf[3] == ' ') {
      cp = buf + 4;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid PHY type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid PHY type at line %u\n", linectr);
        continue;
      }
      if (new_physdes(cp, u))
        fprintf(stderr,
                "Duplicate PHY type spec at line %u terminal type %04x %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    if (buf[0] == 'B' && buf[1] == 'I' && buf[2] == 'A' && buf[3] == 'S' &&
        buf[4] == ' ') {
      cp = buf + 5;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid BIAS type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid BIAS type at line %u\n", linectr);
        continue;
      }
      if (new_bias(cp, u))
        fprintf(stderr,
                "Duplicate BIAS  type spec at line %u terminal type %04x %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    if (buf[0] == 'L' && buf[1] == ' ') {
      cp = buf + 2;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid LANGID spec at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid LANGID spec at line %u\n", linectr);
        continue;
      }
      if (new_langid(cp, u))
        fprintf(stderr,
                "Duplicate LANGID spec at line %u language-id %04x %s\n",
                linectr, u, cp);
      ;
      lasthut = lastclass = lastvendor = lastsubclass = -1;
      lastlang = u;
      continue;
    }
    if (buf[0] == 'C' && buf[1] == ' ') {
      cp = buf + 2;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid class spec at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid class spec at line %u\n", linectr);
        continue;
      }
      if (new_class(cp, u))
        fprintf(stderr, "Duplicate class spec at line %u class %04x %s\n",
                linectr, u, cp);
      ;
      lasthut = lastlang = lastvendor = lastsubclass = -1;
      lastclass = u;
      continue;
    }
    if (buf[0] == 'A' && buf[1] == 'T' && isspace(buf[2])) {
      cp = buf + 3;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid audio terminal type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid audio terminal type at line %u\n", linectr);
        continue;
      }
      if (new_audioterminal(cp, u))
        fprintf(stderr,
                "Duplicate audio terminal type spec at line %u terminal type "
                "%04x %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    if (buf[0] == 'V' && buf[1] == 'T' && isspace(buf[2])) {
      cp = buf + 3;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid video terminal type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid video terminal type at line %u\n", linectr);
        continue;
      }
      if (new_videoterminal(cp, u))
        fprintf(stderr,
                "Duplicate video terminal type spec at line %u terminal type "
                "%04x %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    if (buf[0] == 'H' && buf[1] == 'C' && buf[2] == 'C' && isspace(buf[3])) {
      cp = buf + 3;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid HID country code at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 10);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid HID country code at line %u\n", linectr);
        continue;
      }
      if (new_countrycode(cp, u))
        fprintf(stderr,
                "Duplicate HID country code at line %u country %02u %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    if (isxdigit(*cp)) {
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid vendor spec at line %u\n", linectr);
        continue;
      }
      if (new_vendor(cp, u))
        fprintf(stderr, "Duplicate vendor spec at line %u vendor %04x %s\n",
                linectr, u, cp);
      ;
      lastvendor = u;
      lasthut = lastlang = lastclass = lastsubclass = -1;
      continue;
    }
    if (buf[0] == '\t' && isxdigit(buf[1])) {
      u = strtoul(buf + 1, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid product/subclass spec at line %u\n", linectr);
        continue;
      }
      if (lastvendor != -1) {
        if (new_product(cp, lastvendor, u))
          fprintf(stderr,
                  "Duplicate product spec at line %u product %04x:%04x %s\n",
                  linectr, lastvendor, u, cp);
        ;
        continue;
      }
      if (lastclass != -1) {
        if (new_subclass(cp, lastclass, u))
          fprintf(stderr,
                  "Duplicate subclass spec at line %u class %02x:%02x %s\n",
                  linectr, lastclass, u, cp);
        ;
        lastsubclass = u;
        continue;
      }
      if (lasthut != -1) {
        if (new_hutus(cp, (lasthut << 16) + u))
          fprintf(stderr, "Duplicate HUT Usage Spec at line %u\n", linectr);
        continue;
      }
      if (lastlang != -1) {
        if (new_langid(cp, lastlang + (u << 10)))
          fprintf(stderr, "Duplicate LANGID Usage Spec at line %u\n", linectr);
        continue;
      }
      fprintf(
          stderr,
          "Product/Subclass spec without prior Vendor/Class spec at line %u\n",
          linectr);
      continue;
    }
    if (buf[0] == '\t' && buf[1] == '\t' && isxdigit(buf[2])) {
      u = strtoul(buf + 2, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid protocol spec at line %u\n", linectr);
        continue;
      }
      if (lastclass != -1 && lastsubclass != -1) {
        if (new_protocol(cp, lastclass, lastsubclass, u))
          fprintf(
              stderr,
              "Duplicate protocol spec at line %u class %02x:%02x:%02x %s\n",
              linectr, lastclass, lastsubclass, u, cp);
        ;
        continue;
      }
      fprintf(
          stderr,
          "Protocol spec without prior Class and Subclass spec at line %u\n",
          linectr);
      continue;
    }
    if (buf[0] == 'H' && buf[1] == 'I' && buf[2] == 'D' && buf[3] == ' ') {
      cp = buf + 4;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid HID type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid HID type at line %u\n", linectr);
        continue;
      }
      if (new_hid(cp, u))
        fprintf(stderr,
                "Duplicate HID type spec at line %u terminal type %04x %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    if (buf[0] == 'H' && buf[1] == 'U' && buf[2] == 'T' && buf[3] == ' ') {
      cp = buf + 4;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid HUT type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid HUT type at line %u\n", linectr);
        continue;
      }
      if (new_huts(cp, u))
        fprintf(stderr,
                "Duplicate HUT type spec at line %u terminal type %04x %s\n",
                linectr, u, cp);
      lastlang = lastclass = lastvendor = lastsubclass = -1;
      lasthut = u;
      ;
      continue;
    }
    if (buf[0] == 'R' && buf[1] == ' ') {
      cp = buf + 2;
      while (isspace(*cp))
        cp++;
      if (!isxdigit(*cp)) {
        fprintf(stderr, "Invalid Report type at line %u\n", linectr);
        continue;
      }
      u = strtoul(cp, &cp, 16);
      while (isspace(*cp))
        cp++;
      if (!*cp) {
        fprintf(stderr, "Invalid Report type at line %u\n", linectr);
        continue;
      }
      if (new_reporttag(cp, u))
        fprintf(stderr,
                "Duplicate Report type spec at line %u terminal type %04x %s\n",
                linectr, u, cp);
      ;
      continue;
    }
    fprintf(stderr, "Unknown line at line %u\n", linectr);
  }
}


x86 assembly (clang, -O0):
<parse>:
push   %rbp
mov    %rsp,%rbp
sub    $0x240,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0x21c(%rbp)
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
lea    -0x210(%rbp),%rdi
mov    -0x8(%rbp),%rdx
mov    $0x200,%esi
call   10d0 <fgets@plt>
cmp    $0x0,%rax
je     2994 <parse+0x1744>
mov    -0x21c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x21c(%rbp)
lea    -0x210(%rbp),%rdi
mov    $0xd,%esi
call   1080 <strchr@plt>
mov    %rax,-0x218(%rbp)
cmpq   $0x0,-0x218(%rbp)
je     12f9 <parse+0xa9>
mov    -0x218(%rbp),%rax
movb   $0x0,(%rax)
lea    -0x210(%rbp),%rdi
mov    $0xa,%esi
call   1080 <strchr@plt>
mov    %rax,-0x218(%rbp)
cmpq   $0x0,-0x218(%rbp)
je     1329 <parse+0xd9>
mov    -0x218(%rbp),%rax
movb   $0x0,(%rax)
movsbl -0x210(%rbp),%eax
cmp    $0x23,%eax
je     1346 <parse+0xf6>
cmpb   $0x0,-0x210(%rbp)
jne    134b <parse+0xfb>
jmp    129b <parse+0x4b>
lea    -0x210(%rbp),%rax
mov    %rax,-0x218(%rbp)
movsbl -0x210(%rbp),%eax
cmp    $0x50,%eax
jne    1521 <parse+0x2d1>
movsbl -0x20f(%rbp),%eax
cmp    $0x48,%eax
jne    1521 <parse+0x2d1>
movsbl -0x20e(%rbp),%eax
cmp    $0x59,%eax
jne    1521 <parse+0x2d1>
movsbl -0x20d(%rbp),%eax
cmp    $0x53,%eax
jne    1521 <parse+0x2d1>
movsbl -0x20c(%rbp),%eax
cmp    $0x44,%eax
jne    1521 <parse+0x2d1>
movsbl -0x20b(%rbp),%eax
cmp    $0x45,%eax
jne    1521 <parse+0x2d1>
movsbl -0x20a(%rbp),%eax
cmp    $0x53,%eax
jne    1521 <parse+0x2d1>
movsbl -0x209(%rbp),%eax
cmp    $0x20,%eax
jne    1521 <parse+0x2d1>
lea    -0x210(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     141b <parse+0x1cb>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    13eb <parse+0x19b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1456 <parse+0x206>
mov    0x3ba5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1bb6(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     14a4 <parse+0x254>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1474 <parse+0x224>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    14d6 <parse+0x286>
mov    0x3b25(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1b36(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1040 <new_physdes@plt>
cmp    $0x0,%rax
je     151c <parse+0x2cc>
mov    0x3ae7(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1b0c(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x50,%eax
jne    16a9 <parse+0x459>
movsbl -0x20f(%rbp),%eax
cmp    $0x48,%eax
jne    16a9 <parse+0x459>
movsbl -0x20e(%rbp),%eax
cmp    $0x59,%eax
jne    16a9 <parse+0x459>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    16a9 <parse+0x459>
lea    -0x210(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     15a3 <parse+0x353>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1573 <parse+0x323>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    15de <parse+0x38e>
mov    0x3a1d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1a8e(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     162c <parse+0x3dc>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    15fc <parse+0x3ac>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    165e <parse+0x40e>
mov    0x399d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1a0e(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1040 <new_physdes@plt>
cmp    $0x0,%rax
je     16a4 <parse+0x454>
mov    0x395f(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x19e0(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x42,%eax
jne    1841 <parse+0x5f1>
movsbl -0x20f(%rbp),%eax
cmp    $0x49,%eax
jne    1841 <parse+0x5f1>
movsbl -0x20e(%rbp),%eax
cmp    $0x41,%eax
jne    1841 <parse+0x5f1>
movsbl -0x20d(%rbp),%eax
cmp    $0x53,%eax
jne    1841 <parse+0x5f1>
movsbl -0x20c(%rbp),%eax
cmp    $0x20,%eax
jne    1841 <parse+0x5f1>
lea    -0x210(%rbp),%rax
add    $0x5,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     173b <parse+0x4eb>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    170b <parse+0x4bb>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1776 <parse+0x526>
mov    0x3885(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x194d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     17c4 <parse+0x574>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1794 <parse+0x544>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    17f6 <parse+0x5a6>
mov    0x3805(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x18cd(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1070 <new_bias@plt>
cmp    $0x0,%rax
je     183c <parse+0x5ec>
mov    0x37c7(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x18a0(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x4c,%eax
jne    19dd <parse+0x78d>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    19dd <parse+0x78d>
lea    -0x210(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     18a3 <parse+0x653>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1873 <parse+0x623>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    18de <parse+0x68e>
mov    0x371d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x183f(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     192c <parse+0x6dc>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    18fc <parse+0x6ac>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    195e <parse+0x70e>
mov    0x369d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x17bf(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1050 <new_langid@plt>
cmp    $0x0,%rax
je     19a4 <parse+0x754>
mov    0x365f(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1794(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
mov    -0x234(%rbp),%eax
mov    %eax,-0x230(%rbp)
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x43,%eax
jne    1b79 <parse+0x929>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    1b79 <parse+0x929>
lea    -0x210(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1a3f <parse+0x7ef>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1a0f <parse+0x7bf>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1a7a <parse+0x82a>
mov    0x3581(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x16f9(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1ac8 <parse+0x878>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1a98 <parse+0x848>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1afa <parse+0x8aa>
mov    0x3501(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1679(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1130 <new_class@plt>
cmp    $0x0,%rax
je     1b40 <parse+0x8f0>
mov    0x34c3(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x164d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
mov    -0x234(%rbp),%eax
mov    %eax,-0x224(%rbp)
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x41,%eax
jne    1cf7 <parse+0xaa7>
movsbl -0x20f(%rbp),%eax
cmp    $0x54,%eax
jne    1cf7 <parse+0xaa7>
movsbl -0x20e(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1cf7 <parse+0xaa7>
lea    -0x210(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1bf1 <parse+0x9a1>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1bc1 <parse+0x971>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1c2c <parse+0x9dc>
mov    0x33cf(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1595(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1c7a <parse+0xa2a>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1c4a <parse+0x9fa>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1cac <parse+0xa5c>
mov    0x334f(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1515(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   10c0 <new_audioterminal@plt>
cmp    $0x0,%rax
je     1cf2 <parse+0xaa2>
mov    0x3311(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x14f2(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x56,%eax
jne    1e75 <parse+0xc25>
movsbl -0x20f(%rbp),%eax
cmp    $0x54,%eax
jne    1e75 <parse+0xc25>
movsbl -0x20e(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1e75 <parse+0xc25>
lea    -0x210(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1d6f <parse+0xb1f>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1d3f <parse+0xaef>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1daa <parse+0xb5a>
mov    0x3251(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1484(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1df8 <parse+0xba8>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1dc8 <parse+0xb78>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1e2a <parse+0xbda>
mov    0x31d1(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1404(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1100 <new_videoterminal@plt>
cmp    $0x0,%rax
je     1e70 <parse+0xc20>
mov    0x3193(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x13e1(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    2003 <parse+0xdb3>
movsbl -0x20f(%rbp),%eax
cmp    $0x43,%eax
jne    2003 <parse+0xdb3>
movsbl -0x20e(%rbp),%eax
cmp    $0x43,%eax
jne    2003 <parse+0xdb3>
movsbl -0x20d(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2003 <parse+0xdb3>
lea    -0x210(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1efd <parse+0xcad>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1ecd <parse+0xc7d>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1f38 <parse+0xce8>
mov    0x30c3(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1363(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0xa,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1f86 <parse+0xd36>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1f56 <parse+0xd06>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1fb8 <parse+0xd68>
mov    0x3043(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x12e3(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1150 <new_countrycode@plt>
cmp    $0x0,%rax
je     1ffe <parse+0xdae>
mov    0x3005(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x12bd(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
je     211b <parse+0xecb>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     206a <parse+0xe1a>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    203a <parse+0xdea>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    209c <parse+0xe4c>
mov    0x2f5f(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x125b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1110 <new_vendor@plt>
cmp    $0x0,%rax
je     20e2 <parse+0xe92>
mov    0x2f21(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1230(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
mov    -0x234(%rbp),%eax
mov    %eax,-0x220(%rbp)
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x9,%eax
jne    2367 <parse+0x1117>
movsbl -0x20f(%rbp),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
je     2367 <parse+0x1117>
lea    -0x210(%rbp),%rdi
add    $0x1,%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2193 <parse+0xf43>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2163 <parse+0xf13>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    21c5 <parse+0xf75>
mov    0x2e36(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1183(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x220(%rbp)
je     222a <parse+0xfda>
mov    -0x218(%rbp),%rdi
mov    -0x220(%rbp),%esi
mov    -0x234(%rbp),%edx
call   1030 <new_product@plt>
cmp    $0x0,%rax
je     2225 <parse+0xfd5>
mov    0x2de5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x220(%rbp),%ecx
mov    -0x234(%rbp),%r8d
mov    -0x218(%rbp),%r9
lea    0x1148(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x224(%rbp)
je     229b <parse+0x104b>
mov    -0x218(%rbp),%rdi
mov    -0x224(%rbp),%esi
mov    -0x234(%rbp),%edx
call   1160 <new_subclass@plt>
cmp    $0x0,%rax
je     228a <parse+0x103a>
mov    0x2d80(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x224(%rbp),%ecx
mov    -0x234(%rbp),%r8d
mov    -0x218(%rbp),%r9
lea    0x111b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
mov    -0x234(%rbp),%eax
mov    %eax,-0x228(%rbp)
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x22c(%rbp)
je     22ef <parse+0x109f>
mov    -0x218(%rbp),%rdi
mov    -0x22c(%rbp),%esi
shl    $0x10,%esi
add    -0x234(%rbp),%esi
call   10b0 <new_hutus@plt>
cmp    $0x0,%rax
je     22ea <parse+0x109a>
mov    0x2d0c(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10f2(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x230(%rbp)
je     2345 <parse+0x10f5>
mov    -0x218(%rbp),%rdi
mov    -0x230(%rbp),%esi
mov    -0x234(%rbp),%eax
shl    $0xa,%eax
add    %eax,%esi
call   1050 <new_langid@plt>
cmp    $0x0,%rax
je     2340 <parse+0x10f0>
mov    0x2cb6(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10c1(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    0x2c94(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10c7(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x9,%eax
jne    24c6 <parse+0x1276>
movsbl -0x20f(%rbp),%eax
cmp    $0x9,%eax
jne    24c6 <parse+0x1276>
movsbl -0x20e(%rbp),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
je     24c6 <parse+0x1276>
lea    -0x210(%rbp),%rdi
add    $0x2,%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     23ef <parse+0x119f>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    23bf <parse+0x116f>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2421 <parse+0x11d1>
mov    0x2bda(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x104f(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x224(%rbp)
je     24a4 <parse+0x1254>
cmpl   $0xffffffff,-0x228(%rbp)
je     24a4 <parse+0x1254>
mov    -0x218(%rbp),%rdi
mov    -0x224(%rbp),%esi
mov    -0x228(%rbp),%edx
mov    -0x234(%rbp),%ecx
call   1090 <new_protocol@plt>
cmp    $0x0,%rax
je     249f <parse+0x124f>
mov    0x2b76(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x224(%rbp),%ecx
mov    -0x228(%rbp),%r8d
mov    -0x234(%rbp),%r9d
mov    -0x218(%rbp),%rax
lea    0xff2(%rip),%rsi
mov    %rax,(%rsp)
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    0x2b35(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1008(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    264e <parse+0x13fe>
movsbl -0x20f(%rbp),%eax
cmp    $0x49,%eax
jne    264e <parse+0x13fe>
movsbl -0x20e(%rbp),%eax
cmp    $0x44,%eax
jne    264e <parse+0x13fe>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    264e <parse+0x13fe>
lea    -0x210(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2548 <parse+0x12f8>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2518 <parse+0x12c8>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    2583 <parse+0x1333>
mov    0x2a78(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xf8b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     25d1 <parse+0x1381>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    25a1 <parse+0x1351>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2603 <parse+0x13b3>
mov    0x29f8(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xf0b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1170 <new_hid@plt>
cmp    $0x0,%rax
je     2649 <parse+0x13f9>
mov    0x29ba(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xedd(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    280a <parse+0x15ba>
movsbl -0x20f(%rbp),%eax
cmp    $0x55,%eax
jne    280a <parse+0x15ba>
movsbl -0x20e(%rbp),%eax
cmp    $0x54,%eax
jne    280a <parse+0x15ba>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    280a <parse+0x15ba>
lea    -0x210(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     26d0 <parse+0x1480>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    26a0 <parse+0x1450>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    270b <parse+0x14bb>
mov    0x28f0(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xe5a(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2759 <parse+0x1509>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2729 <parse+0x14d9>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    278b <parse+0x153b>
mov    0x2870(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xdda(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   10f0 <new_huts@plt>
cmp    $0x0,%rax
je     27d1 <parse+0x1581>
mov    0x2832(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xdac(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
mov    -0x234(%rbp),%eax
mov    %eax,-0x22c(%rbp)
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x52,%eax
jne    2972 <parse+0x1722>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    2972 <parse+0x1722>
lea    -0x210(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     286c <parse+0x161c>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    283c <parse+0x15ec>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    28a7 <parse+0x1657>
mov    0x2754(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xd15(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     28f5 <parse+0x16a5>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    28c5 <parse+0x1675>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2927 <parse+0x16d7>
mov    0x26d4(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xc95(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1060 <new_reporttag@plt>
cmp    $0x0,%rax
je     296d <parse+0x171d>
mov    0x2696(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xc6a(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    0x2667(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xc85(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
add    $0x240,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<parse>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x238,%rsp
mov    %rdi,%r14
lea    0x30(%rsp),%r13
mov    %r13,%rdi
mov    $0x200,%esi
mov    %r14,%rdx
call   10d0 <fgets@plt>
test   %rax,%rax
je     2289 <parse+0x1039>
lea    0x32(%rsp),%r12
movl   $0xffffffff,0x28(%rsp)
ff
movl   $0xffffffff,0x20(%rsp)
ff
movl   $0xffffffff,0x24(%rsp)
ff
movl   $0xffffffff,0x1c(%rsp)
ff
movl   $0xffffffff,0x2c(%rsp)
ff
xor    %r15d,%r15d
jmp    12e9 <parse+0x99>
mov    0x3d25(%rip),%rax
mov    (%rax),%edi
lea    0x1d3c(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
xchg   %ax,%ax
mov    %r13,%rdi
mov    $0x200,%esi
mov    %r14,%rdx
call   10d0 <fgets@plt>
test   %rax,%rax
je     2289 <parse+0x1039>
mov    %r13,%rdi
mov    $0xd,%esi
call   1080 <strchr@plt>
test   %rax,%rax
je     12fe <parse+0xae>
movb   $0x0,(%rax)
mov    %r13,%rdi
mov    $0xa,%esi
call   1080 <strchr@plt>
mov    %rax,0x10(%rsp)
test   %rax,%rax
je     1318 <parse+0xc8>
movb   $0x0,(%rax)
add    $0x1,%r15d
mov    0x30(%rsp),%al
test   %al,%al
je     12d0 <parse+0x80>
cmp    $0x23,%al
je     12d0 <parse+0x80>
mov    %r13,0x10(%rsp)
mov    %eax,%ecx
xor    $0x50,%cl
mov    0x31(%rsp),%dil
mov    0x32(%rsp),%r8b
mov    %edi,%ebx
xor    $0x48,%bl
or     %cl,%bl
mov    %r8d,%ecx
xor    $0x59,%cl
or     %bl,%cl
sete   %cl
mov    0x33(%rsp),%bl
movd   0x34(%rsp),%xmm0
movd   %xmm0,%esi
cmp    $0x20534544,%esi
jne    139e <parse+0x14e>
test   %cl,%cl
je     139e <parse+0x14e>
cmp    $0x53,%bl
jne    139e <parse+0x14e>
lea    0x38(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x38(%rsp),%edi
nopl   0x0(%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     13e2 <parse+0x192>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1380 <parse+0x130>
cmp    $0x20,%bl
sete   %dl
and    %dl,%cl
cmp    $0x1,%cl
jne    1476 <parse+0x226>
lea    0x34(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl %sil,%edi
nopl   (%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     14e2 <parse+0x292>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    13c0 <parse+0x170>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     12b4 <parse+0x64>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     143e <parse+0x1ee>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1420 <parse+0x1d0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     12b4 <parse+0x64>
mov    %ebp,%esi
call   1040 <new_physdes@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x3b7d(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1bb0(%rip),%rsi
jmp    165d <parse+0x40d>
cmp    $0x42,%al
jne    1587 <parse+0x337>
cmp    $0x49,%dil
jne    1587 <parse+0x337>
cmp    $0x41,%r8b
jne    1587 <parse+0x337>
cmp    $0x53,%bl
jne    1587 <parse+0x337>
cmp    $0x20,%sil
jne    1587 <parse+0x337>
lea    0x35(%rsp),%rax
mov    %rax,0x10(%rsp)
shr    $0x8,%esi
movsbl %sil,%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     15d2 <parse+0x382>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    14c0 <parse+0x270>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1572 <parse+0x322>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     153e <parse+0x2ee>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1520 <parse+0x2d0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1572 <parse+0x322>
mov    %ebp,%esi
call   1040 <new_physdes@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x3a81(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1b10(%rip),%rsi
jmp    165d <parse+0x40d>
mov    0x3a67(%rip),%rax
mov    (%rax),%edi
lea    0x1ade(%rip),%rsi
jmp    12c4 <parse+0x74>
cmp    $0x4c,%al
jne    1683 <parse+0x433>
cmp    $0x20,%dil
jne    1683 <parse+0x433>
mov    %r12,0x10(%rsp)
movsbl %r8b,%edi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     16c2 <parse+0x472>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    15b0 <parse+0x360>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     166e <parse+0x41e>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     162e <parse+0x3de>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1610 <parse+0x3c0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     166e <parse+0x41e>
mov    %ebp,%esi
call   1070 <new_bias@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x3991(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1a78(%rip),%rsi
mov    %r15d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
jmp    12d0 <parse+0x80>
mov    0x396b(%rip),%rax
mov    (%rax),%edi
lea    0x1a39(%rip),%rsi
jmp    12c4 <parse+0x74>
cmp    $0x43,%al
jne    1788 <parse+0x538>
cmp    $0x20,%dil
jne    1788 <parse+0x538>
mov    %r12,0x10(%rsp)
movsbl %r8b,%edi
xchg   %ax,%ax
call   10a0 <isspace@plt>
test   %rax,%rax
je     17e2 <parse+0x592>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    16a0 <parse+0x450>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     183e <parse+0x5ee>
mov    %r12,%rbx
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%r12d
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
nopw   0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     171e <parse+0x4ce>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1700 <parse+0x4b0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     18b4 <parse+0x664>
mov    %r12d,%esi
call   1050 <new_langid@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     1763 <parse+0x513>
mov    0x3898(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x19db(%rip),%rsi
mov    %r15d,%edx
mov    %r12d,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
movl   $0xffffffff,0x24(%rsp)
ff
movl   $0xffffffff,0x20(%rsp)
ff
mov    %r12d,0x28(%rsp)
mov    %rbx,%r12
jmp    12d0 <parse+0x80>
cmp    $0x41,%al
jne    1980 <parse+0x730>
cmp    $0x54,%dil
jne    1980 <parse+0x730>
movsbl %r8b,%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1977 <parse+0x727>
lea    0x33(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x33(%rsp),%edi
nopl   0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     18d6 <parse+0x686>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    17c0 <parse+0x570>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     189f <parse+0x64f>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     1853 <parse+0x603>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1820 <parse+0x5d0>
mov    0x379b(%rip),%rax
mov    (%rax),%edi
lea    0x18c3(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     189f <parse+0x64f>
mov    %ebp,%esi
call   1130 <new_class@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     1a2e <parse+0x7de>
mov    0x3764(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x18fc(%rip),%rsi
mov    %r15d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %ebp,0x1c(%rsp)
jmp    1b85 <parse+0x935>
mov    0x373a(%rip),%rax
mov    (%rax),%edi
lea    0x18b8(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x3725(%rip),%rax
mov    (%rax),%edi
lea    0x184d(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %rbx,%r12
jmp    12d0 <parse+0x80>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1962 <parse+0x712>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     192e <parse+0x6de>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1910 <parse+0x6c0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1962 <parse+0x712>
mov    %ebp,%esi
call   10c0 <new_audioterminal@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x3691(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1880(%rip),%rsi
jmp    165d <parse+0x40d>
mov    0x3677(%rip),%rax
mov    (%rax),%edi
lea    0x1843(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x30(%rsp),%al
mov    0x31(%rsp),%dil
cmp    $0x56,%al
jne    1a89 <parse+0x839>
cmp    $0x54,%dil
jne    1a89 <parse+0x839>
movsbl 0x32(%rsp),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1a80 <parse+0x830>
lea    0x33(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x33(%rsp),%edi
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
call   10a0 <isspace@plt>
test   %rax,%rax
je     19de <parse+0x78e>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    19c0 <parse+0x770>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1a6b <parse+0x81b>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
xchg   %ax,%ax
call   10a0 <isspace@plt>
test   %rax,%rax
je     1a37 <parse+0x7e7>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1a10 <parse+0x7c0>
mov    %ebp,0x1c(%rsp)
jmp    1b85 <parse+0x935>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1a6b <parse+0x81b>
mov    %ebp,%esi
call   1100 <new_videoterminal@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x3588(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x17e4(%rip),%rsi
jmp    165d <parse+0x40d>
mov    0x356e(%rip),%rax
mov    (%rax),%edi
lea    0x17a7(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x30(%rsp),%al
mov    0x31(%rsp),%dil
cmp    $0x48,%al
jne    1ae2 <parse+0x892>
cmp    $0x43,%dil
jne    1ae2 <parse+0x892>
cmpb   $0x43,0x32(%rsp)
jne    1ae2 <parse+0x892>
movsbl 0x33(%rsp),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1ae2 <parse+0x892>
lea    0x33(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x33(%rsp),%edi
nopl   0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     1ba2 <parse+0x952>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1ac0 <parse+0x870>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1bfe <parse+0x9ae>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     1b3e <parse+0x8ee>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1b20 <parse+0x8d0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1ca5 <parse+0xa55>
mov    %ebp,%esi
call   1110 <new_vendor@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
test   %rax,%rax
je     1b81 <parse+0x931>
mov    0x3479(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1796(%rip),%rsi
mov    %r15d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %ebp,0x2c(%rsp)
movl   $0xffffffff,0x24(%rsp)
ff
movl   $0xffffffff,0x20(%rsp)
ff
movl   $0xffffffff,0x28(%rsp)
ff
jmp    12d0 <parse+0x80>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1c90 <parse+0xa40>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0xa,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     1c5c <parse+0xa0c>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1be0 <parse+0x990>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%al
cmp    $0x9,%cl
jne    1e5a <parse+0xc0a>
movsbl %al,%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1d10 <parse+0xac0>
lea    0x31(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1cba <parse+0xa6a>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1c3e <parse+0x9ee>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1c90 <parse+0xa40>
mov    %ebp,%esi
call   1150 <new_countrycode@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x3363(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1629(%rip),%rsi
jmp    165d <parse+0x40d>
mov    0x3349(%rip),%rax
mov    (%rax),%edi
lea    0x15ef(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x3334(%rip),%rax
mov    (%rax),%edi
lea    0x1636(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1d77 <parse+0xb27>
mov    0x2c(%rsp),%ebx
cmp    $0xffffffff,%ebx
je     1d8c <parse+0xb3c>
mov    %ebx,%esi
mov    %ebp,%edx
call   1030 <new_product@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x32f2(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r9
lea    0x166a(%rip),%rsi
mov    %r15d,%edx
mov    %ebx,%ecx
mov    %ebp,%r8d
xor    %eax,%eax
call   10e0 <fprintf@plt>
jmp    12d0 <parse+0x80>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%al
cmp    $0x9,%cl
jne    1e5a <parse+0xc0a>
cmp    $0x9,%al
jne    1e5a <parse+0xc0a>
movsbl 0x32(%rsp),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1e52 <parse+0xc02>
mov    %r12,%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%r12d
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1de0 <parse+0xb90>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1d59 <parse+0xb09>
mov    0x3262(%rip),%rax
mov    (%rax),%edi
lea    0x15b5(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x1c(%rsp),%ebx
cmp    $0xffffffff,%ebx
je     2162 <parse+0xf12>
mov    %ebx,%esi
mov    %ebp,%edx
call   1160 <new_subclass@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     21e9 <parse+0xf99>
mov    0x3226(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r9
lea    0x15d6(%rip),%rsi
mov    %r15d,%edx
mov    %ebx,%ecx
mov    %ebp,%r8d
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %ebp,0x24(%rsp)
jmp    12d0 <parse+0x80>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     21b3 <parse+0xf63>
mov    0x1c(%rsp),%ebx
cmp    $0xffffffff,%ebx
mov    0x24(%rsp),%ebp
je     21c5 <parse+0xf75>
cmp    $0xffffffff,%ebp
je     21c5 <parse+0xf75>
mov    %ebx,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
call   1090 <new_protocol@plt>
test   %rax,%rax
je     2243 <parse+0xff3>
mov    0x31bc(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%rax
mov    %rax,(%rsp)
lea    0x1650(%rip),%rsi
mov    %r15d,%edx
mov    %ebx,%ecx
mov    %ebp,%r8d
mov    %r12d,%r9d
xor    %eax,%eax
call   10e0 <fprintf@plt>
lea    0x32(%rsp),%r12
jmp    12d0 <parse+0x80>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%al
mov    0x32(%rsp),%dl
mov    0x33(%rsp),%bl
cmp    $0x48,%cl
jne    1ea2 <parse+0xc52>
cmp    $0x49,%al
jne    1ea2 <parse+0xc52>
cmp    $0x44,%dl
jne    1ea2 <parse+0xc52>
cmp    $0x20,%bl
jne    1ea2 <parse+0xc52>
lea    0x34(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x34(%rsp),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1ef6 <parse+0xca6>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1e84 <parse+0xc34>
cmp    $0x48,%cl
jne    1f8d <parse+0xd3d>
cmp    $0x55,%al
jne    1f8d <parse+0xd3d>
cmp    $0x54,%dl
jne    1f8d <parse+0xd3d>
cmp    $0x20,%bl
jne    1f8d <parse+0xd3d>
lea    0x34(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x34(%rsp),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1fc8 <parse+0xd78>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1ed4 <parse+0xc84>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     1f78 <parse+0xd28>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1f44 <parse+0xcf4>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1f26 <parse+0xcd6>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1f78 <parse+0xd28>
mov    %ebp,%esi
call   1170 <new_hid@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x307b(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x15ac(%rip),%rsi
jmp    165d <parse+0x40d>
mov    0x3061(%rip),%rax
mov    (%rax),%edi
lea    0x157a(%rip),%rsi
jmp    12c4 <parse+0x74>
cmp    $0x52,%cl
jne    2088 <parse+0xe38>
cmp    $0x20,%al
jne    2088 <parse+0xe38>
mov    %r12,0x10(%rsp)
movsbl %dl,%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     209d <parse+0xe4d>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1fa6 <parse+0xd56>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     20ef <parse+0xe9f>
mov    %r12,%rbx
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%r12d
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     201e <parse+0xdce>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    2000 <parse+0xdb0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     214d <parse+0xefd>
mov    %r12d,%esi
call   10f0 <new_huts@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     2063 <parse+0xe13>
mov    0x2f98(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1520(%rip),%rsi
mov    %r15d,%edx
mov    %r12d,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
movl   $0xffffffff,0x24(%rsp)
ff
mov    %r12d,0x20(%rsp)
movl   $0xffffffff,0x28(%rsp)
ff
mov    %rbx,%r12
jmp    12d0 <parse+0x80>
mov    0x2f51(%rip),%rax
mov    (%rax),%edi
lea    0x1575(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
test   %rax,%rax
je     2138 <parse+0xee8>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     2104 <parse+0xeb4>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    20d1 <parse+0xe81>
mov    0x2eea(%rip),%rax
mov    (%rax),%edi
lea    0x145a(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     2138 <parse+0xee8>
mov    %ebp,%esi
call   1060 <new_reporttag@plt>
test   %rax,%rax
je     12d0 <parse+0x80>
mov    0x2ebb(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x149d(%rip),%rsi
jmp    165d <parse+0x40d>
mov    0x2ea1(%rip),%rax
mov    (%rax),%edi
lea    0x1468(%rip),%rsi
jmp    12c4 <parse+0x74>
mov    0x2e8c(%rip),%rax
mov    (%rax),%edi
lea    0x13fc(%rip),%rsi
jmp    18c4 <parse+0x674>
mov    0x20(%rsp),%eax
cmp    $0xffffffff,%eax
je     21f2 <parse+0xfa2>
shl    $0x10,%eax
add    %eax,%ebp
mov    %ebp,%esi
call   10b0 <new_hutus@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     224d <parse+0xffd>
mov    0x2e4d(%rip),%rax
mov    (%rax),%edi
lea    0x1239(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
jmp    12d0 <parse+0x80>
mov    0x2e26(%rip),%rax
mov    (%rax),%edi
lea    0x12a1(%rip),%rsi
jmp    21d5 <parse+0xf85>
mov    0x2e14(%rip),%rax
mov    (%rax),%edi
lea    0x12ed(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
lea    0x32(%rsp),%r12
jmp    12d0 <parse+0x80>
mov    %ebp,0x24(%rsp)
jmp    12d0 <parse+0x80>
mov    0x28(%rsp),%eax
cmp    $0xffffffff,%eax
je     225a <parse+0x100a>
shl    $0xa,%ebp
add    %eax,%ebp
mov    %ebp,%esi
call   1050 <new_langid@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     222e <parse+0xfde>
mov    0x2dc5(%rip),%rax
mov    (%rax),%edi
lea    0x11d6(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
movl   $0xffffffff,0x20(%rsp)
ff
jmp    12d0 <parse+0x80>
lea    0x32(%rsp),%r12
jmp    12d0 <parse+0x80>
movl   $0xffffffff,0x1c(%rsp)
ff
jmp    12d0 <parse+0x80>
mov    0x2d7f(%rip),%rax
mov    (%rax),%edi
lea    0x11b8(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
movl   $0xffffffff,0x1c(%rsp)
ff
jmp    1b8d <parse+0x93d>
add    $0x238,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@stderr = global i32 0
@.str = [33 x i8] c"Invalid Physdes type at line %u\0A\00"
@.str.1 = [63 x i8] c"Duplicate Physdes type spec at line %u terminal type %04x %s\0A\00"
@.str.2 = [29 x i8] c"Invalid PHY type at line %u\0A\00"
@.str.3 = [58 x i8] c"Duplicate PHY type spec at line %u terminal type %04x %s\0A\00"
@.str.4 = [30 x i8] c"Invalid BIAS type at line %u\0A\00"
@.str.5 = [60 x i8] c"Duplicate BIAS type spec at line %u terminal type %04x %s\0A\00"
@.str.6 = [32 x i8] c"Invalid LANGID spec at line %u\0A\00"
@.str.7 = [54 x i8] c"Duplicate LANGID spec at line %u language-id %04x %s\0A\00"
@.str.8 = [31 x i8] c"Invalid class spec at line %u\0A\00"
@.str.9 = [47 x i8] c"Duplicate class spec at line %u class %04x %s\0A\00"
@.str.10 = [40 x i8] c"Invalid audio terminal type at line %u\0A\00"
@.str.11 = [69 x i8] c"Duplicate audio terminal type spec at line %u terminal type %04x %s\0A\00"
@.str.12 = [40 x i8] c"Invalid video terminal type at line %u\0A\00"
@.str.13 = [69 x i8] c"Duplicate video terminal type spec at line %u terminal type %04x %s\0A\00"
@.str.14 = [37 x i8] c"Invalid HID country code at line %u\0A\00"
@.str.15 = [55 x i8] c"Duplicate HID country code at line %u country %02u %s\0A\00"
@.str.16 = [32 x i8] c"Invalid vendor spec at line %u\0A\00"
@.str.17 = [49 x i8] c"Duplicate vendor spec at line %u vendor %04x %s\0A\00"
@.str.18 = [42 x i8] c"Invalid product/subclass spec at line %u\0A\00"
@.str.19 = [56 x i8] c"Duplicate product spec at line %u product %04x:%04x %s\0A\00"
@.str.20 = [55 x i8] c"Duplicate subclass spec at line %u class %02x:%02x %s\0A\00"
@.str.21 = [37 x i8] c"Duplicate HUT Usage Spec at line %u\0A\00"
@.str.22 = [40 x i8] c"Duplicate LANGID Usage Spec at line %u\0A\00"
@.str.23 = [66 x i8] c"Product/Subclass spec without prior Vendor/Class spec at line %u\0A\00"
@.str.24 = [34 x i8] c"Invalid protocol spec at line %u\0A\00"
@.str.25 = [60 x i8] c"Duplicate protocol spec at line %u class %02x:%02x:%02x %s\0A\00"
@.str.26 = [64 x i8] c"Protocol spec without prior Class and Subclass spec at line %u\0A\00"
@.str.27 = [29 x i8] c"Invalid HID type at line %u\0A\00"
@.str.28 = [58 x i8] c"Duplicate HID type spec at line %u terminal type %04x %s\0A\00"
@.str.29 = [29 x i8] c"Invalid HUT type at line %u\0A\00"
@.str.30 = [58 x i8] c"Duplicate HUT type spec at line %u terminal type %04x %s\0A\00"
@.str.31 = [32 x i8] c"Invalid Report type at line %u\0A\00"
@.str.32 = [61 x i8] c"Duplicate Report type spec at line %u terminal type %04x %s\0A\00"
@.str.33 = [25 x i8] c"Unknown line at line %u\0A\00"
define void @parse(i32* nocapture %0) {
%2 = alloca [512 x i8]
%3 = alloca i8*
%4 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 0
%5 = bitcast i8** %3 to i8*
%6 = call i64 @fgets(i8* %4, i32 512, i32* %0)
%7 = icmp eq i64 %6, 0
br i1 %7, label %775, label %8
8: ; preds = %1
%9 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 1
%10 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 2
%11 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 3
%12 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 4
%13 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 5
%14 = getelementptr inbounds [512 x i8], [512 x i8]* %2, i64 0, i64 8
%15 = bitcast i8* %12 to <4 x i8>*
br label %16
16: ; preds = %8, %67
%17 = phi i32 [ -1, %8 ], [ %72, %67 ]
%18 = phi i32 [ -1, %8 ], [ %71, %67 ]
%19 = phi i32 [ -1, %8 ], [ %70, %67 ]
%20 = phi i32 [ -1, %8 ], [ %69, %67 ]
%21 = phi i32 [ -1, %8 ], [ %68, %67 ]
%22 = phi i32 [ 0, %8 ], [ %23, %67 ]
%23 = add i32 %22, 1
%24 = call i8* @strchr(i8* %4, i32 13)
%25 = icmp eq i8* %24, null
br i1 %25, label %27, label %26
26: ; preds = %16
store i8 0, i8* %24
br label %27
27: ; preds = %26, %16
%28 = call i8* @strchr(i8* %4, i32 10)
store i8* %28, i8** %3
%29 = icmp eq i8* %28, null
br i1 %29, label %31, label %30
30: ; preds = %27
store i8 0, i8* %28
br label %31
31: ; preds = %30, %27
%32 = load i8, i8* %4
switch i8 %32, label %33 [
i8 35, label %67
i8 0, label %67
]
33: ; preds = %31
store i8* %4, i8** %3
%34 = icmp eq i8 %32, 80
%35 = load i8, i8* %9
%36 = icmp eq i8 %35, 72
%37 = select i1 %34, i1 %36, i1 false
%38 = load i8, i8* %10
%39 = icmp eq i8 %38, 89
%40 = select i1 %37, i1 %39, i1 false
%41 = load i8, i8* %11
%42 = icmp eq i8 %41, 83
%43 = load <4 x i8>, <4 x i8>* %15
%44 = freeze <4 x i8> %43
%45 = bitcast <4 x i8> %44 to i32
%46 = icmp eq i32 %45, 542328132
%47 = select i1 %46, i1 %40, i1 false
%48 = select i1 %47, i1 %42, i1 false
br i1 %48, label %49, label %102
49: ; preds = %33
store i8* %14, i8** %3
%50 = load i8, i8* %14
%51 = call i64 @isspace(i8 signext %50)
%52 = icmp eq i64 %51, 0
br i1 %52, label %59, label %53
53: ; preds = %49, %53
%54 = load i8*, i8** %3
%55 = getelementptr inbounds i8, i8* %54, i64 1
store i8* %55, i8** %3
%56 = load i8, i8* %55
%57 = call i64 @isspace(i8 signext %56)
%58 = icmp eq i64 %57, 0
br i1 %58, label %59, label %53
59: ; preds = %53, %49
%60 = load i8*, i8** %3
%61 = load i8, i8* %60
%62 = call i64 @isxdigit(i8 signext %61)
%63 = icmp eq i64 %62, 0
br i1 %63, label %64, label %75
64: ; preds = %59
%65 = load i32, i32* @stderr
%66 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %65, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i64 0, i64 0), i32 %23)
br label %67
67: ; preds = %765, %768, %717, %720, %666, %669, %606, %609, %559, %564, %549, %554, %540, %543, %531, %534, %496, %499, %464, %467, %406, %409, %348, %351, %293, %296, %246, %249, %198, %201, %143, %146, %95, %98, %64, %92, %120, %140, %175, %195, %223, %243, %270, %290, %325, %345, %383, %403, %441, %461, %493, %526, %567, %599, %613, %643, %663, %694, %714, %742, %762, %772, %31, %31
%68 = phi i32 [ %21, %92 ], [ %21, %64 ], [ %21, %140 ], [ %21, %120 ], [ %21, %195 ], [ %21, %175 ], [ %21, %243 ], [ %21, %223 ], [ %21, %290 ], [ %21, %270 ], [ %21, %345 ], [ %21, %325 ], [ %21, %403 ], [ %21, %383 ], [ %21, %461 ], [ %21, %441 ], [ %21, %493 ], [ -1, %567 ], [ %21, %526 ], [ %21, %613 ], [ %21, %599 ], [ %21, %663 ], [ %21, %643 ], [ %21, %714 ], [ %21, %694 ], [ %21, %762 ], [ %21, %742 ], [ %21, %772 ], [ %21, %31 ], [ %21, %31 ], [ %21, %98 ], [ %21, %95 ], [ %21, %146 ], [ %21, %143 ], [ %21, %201 ], [ %21, %198 ], [ -1, %249 ], [ -1, %246 ], [ -1, %296 ], [ -1, %293 ], [ %21, %351 ], [ %21, %348 ], [ %21, %409 ], [ %21, %406 ], [ %21, %467 ], [ %21, %464 ], [ %478, %499 ], [ %478, %496 ], [ %21, %534 ], [ %21, %531 ], [ -1, %543 ], [ -1, %540 ], [ -1, %554 ], [ -1, %549 ], [ -1, %564 ], [ -1, %559 ], [ %21, %609 ], [ %21, %606 ], [ %21, %669 ], [ %21, %666 ], [ -1, %720 ], [ -1, %717 ], [ %21, %768 ], [ %21, %765 ]
%69 = phi i32 [ %20, %92 ], [ %20, %64 ], [ %20, %140 ], [ %20, %120 ], [ %20, %195 ], [ %20, %175 ], [ %20, %243 ], [ %20, %223 ], [ %20, %290 ], [ %20, %270 ], [ %20, %345 ], [ %20, %325 ], [ %20, %403 ], [ %20, %383 ], [ %20, %461 ], [ %20, %441 ], [ %20, %493 ], [ -1, %567 ], [ %20, %526 ], [ %20, %613 ], [ %20, %599 ], [ %20, %663 ], [ %20, %643 ], [ %20, %714 ], [ %20, %694 ], [ %20, %762 ], [ %20, %742 ], [ %20, %772 ], [ %20, %31 ], [ %20, %31 ], [ %20, %98 ], [ %20, %95 ], [ %20, %146 ], [ %20, %143 ], [ %20, %201 ], [ %20, %198 ], [ -1, %249 ], [ -1, %246 ], [ %275, %296 ], [ %275, %293 ], [ %20, %351 ], [ %20, %348 ], [ %20, %409 ], [ %20, %406 ], [ %20, %467 ], [ %20, %464 ], [ -1, %499 ], [ -1, %496 ], [ %20, %534 ], [ %20, %531 ], [ %20, %543 ], [ %20, %540 ], [ -1, %554 ], [ -1, %549 ], [ -1, %564 ], [ -1, %559 ], [ %20, %609 ], [ %20, %606 ], [ %20, %669 ], [ %20, %666 ], [ -1, %720 ], [ -1, %717 ], [ %20, %768 ], [ %20, %765 ]
%70 = phi i32 [ %19, %92 ], [ %19, %64 ], [ %19, %140 ], [ %19, %120 ], [ %19, %195 ], [ %19, %175 ], [ %19, %243 ], [ %19, %223 ], [ %19, %290 ], [ %19, %270 ], [ %19, %345 ], [ %19, %325 ], [ %19, %403 ], [ %19, %383 ], [ %19, %461 ], [ %19, %441 ], [ %19, %493 ], [ %19, %567 ], [ %19, %526 ], [ %19, %613 ], [ %19, %599 ], [ %19, %663 ], [ %19, %643 ], [ %19, %714 ], [ %19, %694 ], [ %19, %762 ], [ %19, %742 ], [ %19, %772 ], [ %19, %31 ], [ %19, %31 ], [ %19, %98 ], [ %19, %95 ], [ %19, %146 ], [ %19, %143 ], [ %19, %201 ], [ %19, %198 ], [ -1, %249 ], [ -1, %246 ], [ -1, %296 ], [ -1, %293 ], [ %19, %351 ], [ %19, %348 ], [ %19, %409 ], [ %19, %406 ], [ %19, %467 ], [ %19, %464 ], [ -1, %499 ], [ -1, %496 ], [ %19, %534 ], [ %19, %531 ], [ %511, %543 ], [ %511, %540 ], [ %19, %554 ], [ %19, %549 ], [ %19, %564 ], [ %19, %559 ], [ %19, %609 ], [ %19, %606 ], [ %19, %669 ], [ %19, %666 ], [ -1, %720 ], [ -1, %717 ], [ %19, %768 ], [ %19, %765 ]
%71 = phi i32 [ %18, %92 ], [ %18, %64 ], [ %18, %140 ], [ %18, %120 ], [ %18, %195 ], [ %18, %175 ], [ %18, %243 ], [ %18, %223 ], [ %18, %290 ], [ %18, %270 ], [ %18, %345 ], [ %18, %325 ], [ %18, %403 ], [ %18, %383 ], [ %18, %461 ], [ %18, %441 ], [ %18, %493 ], [ -1, %567 ], [ %18, %526 ], [ %18, %613 ], [ %18, %599 ], [ %18, %663 ], [ %18, %643 ], [ %18, %714 ], [ %18, %694 ], [ %18, %762 ], [ %18, %742 ], [ %18, %772 ], [ %18, %31 ], [ %18, %31 ], [ %18, %98 ], [ %18, %95 ], [ %18, %146 ], [ %18, %143 ], [ %18, %201 ], [ %18, %198 ], [ -1, %249 ], [ -1, %246 ], [ -1, %296 ], [ -1, %293 ], [ %18, %351 ], [ %18, %348 ], [ %18, %409 ], [ %18, %406 ], [ %18, %467 ], [ %18, %464 ], [ -1, %499 ], [ -1, %496 ], [ %18, %534 ], [ %18, %531 ], [ %18, %543 ], [ %18, %540 ], [ %18, %554 ], [ %18, %549 ], [ -1, %564 ], [ -1, %559 ], [ %18, %609 ], [ %18, %606 ], [ %18, %669 ], [ %18, %666 ], [ %699, %720 ], [ %699, %717 ], [ %18, %768 ], [ %18, %765 ]
%72 = phi i32 [ %17, %92 ], [ %17, %64 ], [ %17, %140 ], [ %17, %120 ], [ %17, %195 ], [ %17, %175 ], [ %17, %243 ], [ %17, %223 ], [ %17, %290 ], [ %17, %270 ], [ %17, %345 ], [ %17, %325 ], [ %17, %403 ], [ %17, %383 ], [ %17, %461 ], [ %17, %441 ], [ %17, %493 ], [ -1, %567 ], [ %17, %526 ], [ %17, %613 ], [ %17, %599 ], [ %17, %663 ], [ %17, %643 ], [ %17, %714 ], [ %17, %694 ], [ %17, %762 ], [ %17, %742 ], [ %17, %772 ], [ %17, %31 ], [ %17, %31 ], [ %17, %98 ], [ %17, %95 ], [ %17, %146 ], [ %17, %143 ], [ %17, %201 ], [ %17, %198 ], [ %228, %249 ], [ %228, %246 ], [ -1, %296 ], [ -1, %293 ], [ %17, %351 ], [ %17, %348 ], [ %17, %409 ], [ %17, %406 ], [ %17, %467 ], [ %17, %464 ], [ -1, %499 ], [ -1, %496 ], [ %17, %534 ], [ %17, %531 ], [ %17, %543 ], [ %17, %540 ], [ %17, %554 ], [ %17, %549 ], [ %17, %564 ], [ %17, %559 ], [ %17, %609 ], [ %17, %606 ], [ %17, %669 ], [ %17, %666 ], [ -1, %720 ], [ -1, %717 ], [ %17, %768 ], [ %17, %765 ]
%73 = call i64 @fgets(i8* %4, i32 512, i32* %0)
%74 = icmp eq i64 %73, 0
br i1 %74, label %775, label %16
75: ; preds = %59
%76 = load i8*, i8** %3
%77 = call i32 @strtoul(i8* %76, i8** %3, i32 16)
%78 = load i8*, i8** %3
%79 = load i8, i8* %78
%80 = call i64 @isspace(i8 signext %79)
%81 = icmp eq i64 %80, 0
br i1 %81, label %88, label %82
82: ; preds = %75, %82
%83 = load i8*, i8** %3
%84 = getelementptr inbounds i8, i8* %83, i64 1
store i8* %84, i8** %3
%85 = load i8, i8* %84
%86 = call i64 @isspace(i8 signext %85)
%87 = icmp eq i64 %86, 0
br i1 %87, label %88, label %82
88: ; preds = %82, %75
%89 = load i8*, i8** %3
%90 = load i8, i8* %89
%91 = icmp eq i8 %90, 0
br i1 %91, label %92, label %95
92: ; preds = %88
%93 = load i32, i32* @stderr
%94 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %93, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i64 0, i64 0), i32 %23)
br label %67
95: ; preds = %88
%96 = call i64 @new_physdes(i8* %89, i32 %77)
%97 = icmp eq i64 %96, 0
br i1 %97, label %67, label %98
98: ; preds = %95
%99 = load i32, i32* @stderr
%100 = load i8*, i8** %3
%101 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %99, i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.1, i64 0, i64 0), i32 %23, i32 %77, i8* %100)
br label %67
102: ; preds = %33
%103 = icmp eq i8 %41, 32
%104 = select i1 %40, i1 %103, i1 false
br i1 %104, label %105, label %150
105: ; preds = %102
store i8* %12, i8** %3
%106 = extractelement <4 x i8> %44, i64 0
%107 = call i64 @isspace(i8 signext %106)
%108 = icmp eq i64 %107, 0
br i1 %108, label %115, label %109
109: ; preds = %105, %109
%110 = load i8*, i8** %3
%111 = getelementptr inbounds i8, i8* %110, i64 1
store i8* %111, i8** %3
%112 = load i8, i8* %111
%113 = call i64 @isspace(i8 signext %112)
%114 = icmp eq i64 %113, 0
br i1 %114, label %115, label %109
115: ; preds = %109, %105
%116 = load i8*, i8** %3
%117 = load i8, i8* %116
%118 = call i64 @isxdigit(i8 signext %117)
%119 = icmp eq i64 %118, 0
br i1 %119, label %120, label %123
120: ; preds = %115
%121 = load i32, i32* @stderr
%122 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %121, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0), i32 %23)
br label %67
123: ; preds = %115
%124 = load i8*, i8** %3
%125 = call i32 @strtoul(i8* %124, i8** %3, i32 16)
%126 = load i8*, i8** %3
%127 = load i8, i8* %126
%128 = call i64 @isspace(i8 signext %127)
%129 = icmp eq i64 %128, 0
br i1 %129, label %136, label %130
130: ; preds = %123, %130
%131 = load i8*, i8** %3
%132 = getelementptr inbounds i8, i8* %131, i64 1
store i8* %132, i8** %3
%133 = load i8, i8* %132
%134 = call i64 @isspace(i8 signext %133)
%135 = icmp eq i64 %134, 0
br i1 %135, label %136, label %130
136: ; preds = %130, %123
%137 = load i8*, i8** %3
%138 = load i8, i8* %137
%139 = icmp eq i8 %138, 0
br i1 %139, label %140, label %143
140: ; preds = %136
%141 = load i32, i32* @stderr
%142 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %141, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0), i32 %23)
br label %67
143: ; preds = %136
%144 = call i64 @new_physdes(i8* %137, i32 %125)
%145 = icmp eq i64 %144, 0
br i1 %145, label %67, label %146
146: ; preds = %143
%147 = load i32, i32* @stderr
%148 = load i8*, i8** %3
%149 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %147, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.3, i64 0, i64 0), i32 %23, i32 %125, i8* %148)
br label %67
150: ; preds = %102
%151 = icmp eq i8 %32, 66
%152 = icmp eq i8 %35, 73
%153 = select i1 %151, i1 %152, i1 false
%154 = icmp eq i8 %38, 65
%155 = select i1 %153, i1 %154, i1 false
%156 = select i1 %155, i1 %42, i1 false
%157 = extractelement <4 x i8> %44, i64 0
%158 = icmp eq i8 %157, 32
%159 = and i1 %156, %158
br i1 %159, label %160, label %205
160: ; preds = %150
store i8* %13, i8** %3
%161 = extractelement <4 x i8> %44, i64 1
%162 = call i64 @isspace(i8 signext %161)
%163 = icmp eq i64 %162, 0
br i1 %163, label %170, label %164
164: ; preds = %160, %164
%165 = load i8*, i8** %3
%166 = getelementptr inbounds i8, i8* %165, i64 1
store i8* %166, i8** %3
%167 = load i8, i8* %166
%168 = call i64 @isspace(i8 signext %167)
%169 = icmp eq i64 %168, 0
br i1 %169, label %170, label %164
170: ; preds = %164, %160
%171 = load i8*, i8** %3
%172 = load i8, i8* %171
%173 = call i64 @isxdigit(i8 signext %172)
%174 = icmp eq i64 %173, 0
br i1 %174, label %175, label %178
175: ; preds = %170
%176 = load i32, i32* @stderr
%177 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %176, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0), i32 %23)
br label %67
178: ; preds = %170
%179 = load i8*, i8** %3
%180 = call i32 @strtoul(i8* %179, i8** %3, i32 16)
%181 = load i8*, i8** %3
%182 = load i8, i8* %181
%183 = call i64 @isspace(i8 signext %182)
%184 = icmp eq i64 %183, 0
br i1 %184, label %191, label %185
185: ; preds = %178, %185
%186 = load i8*, i8** %3
%187 = getelementptr inbounds i8, i8* %186, i64 1
store i8* %187, i8** %3
%188 = load i8, i8* %187
%189 = call i64 @isspace(i8 signext %188)
%190 = icmp eq i64 %189, 0
br i1 %190, label %191, label %185
191: ; preds = %185, %178
%192 = load i8*, i8** %3
%193 = load i8, i8* %192
%194 = icmp eq i8 %193, 0
br i1 %194, label %195, label %198
195: ; preds = %191
%196 = load i32, i32* @stderr
%197 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %196, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0), i32 %23)
br label %67
198: ; preds = %191
%199 = call i64 @new_bias(i8* %192, i32 %180)
%200 = icmp eq i64 %199, 0
br i1 %200, label %67, label %201
201: ; preds = %198
%202 = load i32, i32* @stderr
%203 = load i8*, i8** %3
%204 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %202, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.5, i64 0, i64 0), i32 %23, i32 %180, i8* %203)
br label %67
205: ; preds = %150
%206 = icmp eq i8 %32, 76
%207 = icmp eq i8 %35, 32
%208 = select i1 %206, i1 %207, i1 false
br i1 %208, label %209, label %253
209: ; preds = %205
store i8* %10, i8** %3
%210 = call i64 @isspace(i8 signext %38)
%211 = icmp eq i64 %210, 0
br i1 %211, label %218, label %212
212: ; preds = %209, %212
%213 = load i8*, i8** %3
%214 = getelementptr inbounds i8, i8* %213, i64 1
store i8* %214, i8** %3
%215 = load i8, i8* %214
%216 = call i64 @isspace(i8 signext %215)
%217 = icmp eq i64 %216, 0
br i1 %217, label %218, label %212
218: ; preds = %212, %209
%219 = load i8*, i8** %3
%220 = load i8, i8* %219
%221 = call i64 @isxdigit(i8 signext %220)
%222 = icmp eq i64 %221, 0
br i1 %222, label %223, label %226
223: ; preds = %218
%224 = load i32, i32* @stderr
%225 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %224, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 %23)
br label %67
226: ; preds = %218
%227 = load i8*, i8** %3
%228 = call i32 @strtoul(i8* %227, i8** %3, i32 16)
%229 = load i8*, i8** %3
%230 = load i8, i8* %229
%231 = call i64 @isspace(i8 signext %230)
%232 = icmp eq i64 %231, 0
br i1 %232, label %239, label %233
233: ; preds = %226, %233
%234 = load i8*, i8** %3
%235 = getelementptr inbounds i8, i8* %234, i64 1
store i8* %235, i8** %3
%236 = load i8, i8* %235
%237 = call i64 @isspace(i8 signext %236)
%238 = icmp eq i64 %237, 0
br i1 %238, label %239, label %233
239: ; preds = %233, %226
%240 = load i8*, i8** %3
%241 = load i8, i8* %240
%242 = icmp eq i8 %241, 0
br i1 %242, label %243, label %246
243: ; preds = %239
%244 = load i32, i32* @stderr
%245 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %244, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 %23)
br label %67
246: ; preds = %239
%247 = call i64 @new_langid(i8* %240, i32 %228)
%248 = icmp eq i64 %247, 0
br i1 %248, label %67, label %249
249: ; preds = %246
%250 = load i32, i32* @stderr
%251 = load i8*, i8** %3
%252 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %250, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.7, i64 0, i64 0), i32 %23, i32 %228, i8* %251)
br label %67
253: ; preds = %205
%254 = icmp eq i8 %32, 67
%255 = select i1 %254, i1 %207, i1 false
br i1 %255, label %256, label %300
256: ; preds = %253
store i8* %10, i8** %3
%257 = call i64 @isspace(i8 signext %38)
%258 = icmp eq i64 %257, 0
br i1 %258, label %265, label %259
259: ; preds = %256, %259
%260 = load i8*, i8** %3
%261 = getelementptr inbounds i8, i8* %260, i64 1
store i8* %261, i8** %3
%262 = load i8, i8* %261
%263 = call i64 @isspace(i8 signext %262)
%264 = icmp eq i64 %263, 0
br i1 %264, label %265, label %259
265: ; preds = %259, %256
%266 = load i8*, i8** %3
%267 = load i8, i8* %266
%268 = call i64 @isxdigit(i8 signext %267)
%269 = icmp eq i64 %268, 0
br i1 %269, label %270, label %273
270: ; preds = %265
%271 = load i32, i32* @stderr
%272 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %271, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0), i32 %23)
br label %67
273: ; preds = %265
%274 = load i8*, i8** %3
%275 = call i32 @strtoul(i8* %274, i8** %3, i32 16)
%276 = load i8*, i8** %3
%277 = load i8, i8* %276
%278 = call i64 @isspace(i8 signext %277)
%279 = icmp eq i64 %278, 0
br i1 %279, label %286, label %280
280: ; preds = %273, %280
%281 = load i8*, i8** %3
%282 = getelementptr inbounds i8, i8* %281, i64 1
store i8* %282, i8** %3
%283 = load i8, i8* %282
%284 = call i64 @isspace(i8 signext %283)
%285 = icmp eq i64 %284, 0
br i1 %285, label %286, label %280
286: ; preds = %280, %273
%287 = load i8*, i8** %3
%288 = load i8, i8* %287
%289 = icmp eq i8 %288, 0
br i1 %289, label %290, label %293
290: ; preds = %286
%291 = load i32, i32* @stderr
%292 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %291, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0), i32 %23)
br label %67
293: ; preds = %286
%294 = call i64 @new_class(i8* %287, i32 %275)
%295 = icmp eq i64 %294, 0
br i1 %295, label %67, label %296
296: ; preds = %293
%297 = load i32, i32* @stderr
%298 = load i8*, i8** %3
%299 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %297, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.9, i64 0, i64 0), i32 %23, i32 %275, i8* %298)
br label %67
300: ; preds = %253
%301 = icmp eq i8 %32, 65
%302 = icmp eq i8 %35, 84
%303 = select i1 %301, i1 %302, i1 false
br i1 %303, label %304, label %355
304: ; preds = %300
%305 = call i64 @isspace(i8 signext %38)
%306 = icmp eq i64 %305, 0
br i1 %306, label %307, label %310
307: ; preds = %304
%308 = load i8, i8* %4
%309 = load i8, i8* %9
br label %355
310: ; preds = %304
store i8* %11, i8** %3
%311 = load i8, i8* %11
%312 = call i64 @isspace(i8 signext %311)
%313 = icmp eq i64 %312, 0
br i1 %313, label %320, label %314
314: ; preds = %310, %314
%315 = load i8*, i8** %3
%316 = getelementptr inbounds i8, i8* %315, i64 1
store i8* %316, i8** %3
%317 = load i8, i8* %316
%318 = call i64 @isspace(i8 signext %317)
%319 = icmp eq i64 %318, 0
br i1 %319, label %320, label %314
320: ; preds = %314, %310
%321 = load i8*, i8** %3
%322 = load i8, i8* %321
%323 = call i64 @isxdigit(i8 signext %322)
%324 = icmp eq i64 %323, 0
br i1 %324, label %325, label %328
325: ; preds = %320
%326 = load i32, i32* @stderr
%327 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %326, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i32 %23)
br label %67
328: ; preds = %320
%329 = load i8*, i8** %3
%330 = call i32 @strtoul(i8* %329, i8** %3, i32 16)
%331 = load i8*, i8** %3
%332 = load i8, i8* %331
%333 = call i64 @isspace(i8 signext %332)
%334 = icmp eq i64 %333, 0
br i1 %334, label %341, label %335
335: ; preds = %328, %335
%336 = load i8*, i8** %3
%337 = getelementptr inbounds i8, i8* %336, i64 1
store i8* %337, i8** %3
%338 = load i8, i8* %337
%339 = call i64 @isspace(i8 signext %338)
%340 = icmp eq i64 %339, 0
br i1 %340, label %341, label %335
341: ; preds = %335, %328
%342 = load i8*, i8** %3
%343 = load i8, i8* %342
%344 = icmp eq i8 %343, 0
br i1 %344, label %345, label %348
345: ; preds = %341
%346 = load i32, i32* @stderr
%347 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %346, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i32 %23)
br label %67
348: ; preds = %341
%349 = call i64 @new_audioterminal(i8* %342, i32 %330)
%350 = icmp eq i64 %349, 0
br i1 %350, label %67, label %351
351: ; preds = %348
%352 = load i32, i32* @stderr
%353 = load i8*, i8** %3
%354 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %352, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.11, i64 0, i64 0), i32 %23, i32 %330, i8* %353)
br label %67
355: ; preds = %307, %300
%356 = phi i8 [ %309, %307 ], [ %35, %300 ]
%357 = phi i8 [ %308, %307 ], [ %32, %300 ]
%358 = icmp eq i8 %357, 86
%359 = icmp eq i8 %356, 84
%360 = select i1 %358, i1 %359, i1 false
br i1 %360, label %361, label %413
361: ; preds = %355
%362 = load i8, i8* %10
%363 = call i64 @isspace(i8 signext %362)
%364 = icmp eq i64 %363, 0
br i1 %364, label %365, label %368
365: ; preds = %361
%366 = load i8, i8* %4
%367 = load i8, i8* %9
br label %413
368: ; preds = %361
store i8* %11, i8** %3
%369 = load i8, i8* %11
%370 = call i64 @isspace(i8 signext %369)
%371 = icmp eq i64 %370, 0
br i1 %371, label %378, label %372
372: ; preds = %368, %372
%373 = load i8*, i8** %3
%374 = getelementptr inbounds i8, i8* %373, i64 1
store i8* %374, i8** %3
%375 = load i8, i8* %374
%376 = call i64 @isspace(i8 signext %375)
%377 = icmp eq i64 %376, 0
br i1 %377, label %378, label %372
378: ; preds = %372, %368
%379 = load i8*, i8** %3
%380 = load i8, i8* %379
%381 = call i64 @isxdigit(i8 signext %380)
%382 = icmp eq i64 %381, 0
br i1 %382, label %383, label %386
383: ; preds = %378
%384 = load i32, i32* @stderr
%385 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %384, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.12, i64 0, i64 0), i32 %23)
br label %67
386: ; preds = %378
%387 = load i8*, i8** %3
%388 = call i32 @strtoul(i8* %387, i8** %3, i32 16)
%389 = load i8*, i8** %3
%390 = load i8, i8* %389
%391 = call i64 @isspace(i8 signext %390)
%392 = icmp eq i64 %391, 0
br i1 %392, label %399, label %393
393: ; preds = %386, %393
%394 = load i8*, i8** %3
%395 = getelementptr inbounds i8, i8* %394, i64 1
store i8* %395, i8** %3
%396 = load i8, i8* %395
%397 = call i64 @isspace(i8 signext %396)
%398 = icmp eq i64 %397, 0
br i1 %398, label %399, label %393
399: ; preds = %393, %386
%400 = load i8*, i8** %3
%401 = load i8, i8* %400
%402 = icmp eq i8 %401, 0
br i1 %402, label %403, label %406
403: ; preds = %399
%404 = load i32, i32* @stderr
%405 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %404, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.12, i64 0, i64 0), i32 %23)
br label %67
406: ; preds = %399
%407 = call i64 @new_videoterminal(i8* %400, i32 %388)
%408 = icmp eq i64 %407, 0
br i1 %408, label %67, label %409
409: ; preds = %406
%410 = load i32, i32* @stderr
%411 = load i8*, i8** %3
%412 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %410, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 %23, i32 %388, i8* %411)
br label %67
413: ; preds = %365, %355
%414 = phi i8 [ %367, %365 ], [ %356, %355 ]
%415 = phi i8 [ %366, %365 ], [ %357, %355 ]
%416 = icmp eq i8 %415, 72
%417 = icmp eq i8 %414, 67
%418 = select i1 %416, i1 %417, i1 false
%419 = load i8, i8* %10
%420 = icmp eq i8 %419, 67
%421 = select i1 %418, i1 %420, i1 false
br i1 %421, label %422, label %471
422: ; preds = %413
%423 = load i8, i8* %11
%424 = call i64 @isspace(i8 signext %423)
%425 = icmp eq i64 %424, 0
br i1 %425, label %471, label %426
426: ; preds = %422
store i8* %11, i8** %3
%427 = load i8, i8* %11
%428 = call i64 @isspace(i8 signext %427)
%429 = icmp eq i64 %428, 0
br i1 %429, label %436, label %430
430: ; preds = %426, %430
%431 = load i8*, i8** %3
%432 = getelementptr inbounds i8, i8* %431, i64 1
store i8* %432, i8** %3
%433 = load i8, i8* %432
%434 = call i64 @isspace(i8 signext %433)
%435 = icmp eq i64 %434, 0
br i1 %435, label %436, label %430
436: ; preds = %430, %426
%437 = load i8*, i8** %3
%438 = load i8, i8* %437
%439 = call i64 @isxdigit(i8 signext %438)
%440 = icmp eq i64 %439, 0
br i1 %440, label %441, label %444
441: ; preds = %436
%442 = load i32, i32* @stderr
%443 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %442, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.14, i64 0, i64 0), i32 %23)
br label %67
444: ; preds = %436
%445 = load i8*, i8** %3
%446 = call i32 @strtoul(i8* %445, i8** %3, i32 10)
%447 = load i8*, i8** %3
%448 = load i8, i8* %447
%449 = call i64 @isspace(i8 signext %448)
%450 = icmp eq i64 %449, 0
br i1 %450, label %457, label %451
451: ; preds = %444, %451
%452 = load i8*, i8** %3
%453 = getelementptr inbounds i8, i8* %452, i64 1
store i8* %453, i8** %3
%454 = load i8, i8* %453
%455 = call i64 @isspace(i8 signext %454)
%456 = icmp eq i64 %455, 0
br i1 %456, label %457, label %451
457: ; preds = %451, %444
%458 = load i8*, i8** %3
%459 = load i8, i8* %458
%460 = icmp eq i8 %459, 0
br i1 %460, label %461, label %464
461: ; preds = %457
%462 = load i32, i32* @stderr
%463 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %462, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.14, i64 0, i64 0), i32 %23)
br label %67
464: ; preds = %457
%465 = call i64 @new_countrycode(i8* %458, i32 %446)
%466 = icmp eq i64 %465, 0
br i1 %466, label %67, label %467
467: ; preds = %464
%468 = load i32, i32* @stderr
%469 = load i8*, i8** %3
%470 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %468, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.15, i64 0, i64 0), i32 %23, i32 %446, i8* %469)
br label %67
471: ; preds = %422, %413
%472 = load i8*, i8** %3
%473 = load i8, i8* %472
%474 = call i64 @isxdigit(i8 signext %473)
%475 = icmp eq i64 %474, 0
br i1 %475, label %503, label %476
476: ; preds = %471
%477 = load i8*, i8** %3
%478 = call i32 @strtoul(i8* %477, i8** %3, i32 16)
%479 = load i8*, i8** %3
%480 = load i8, i8* %479
%481 = call i64 @isspace(i8 signext %480)
%482 = icmp eq i64 %481, 0
br i1 %482, label %489, label %483
483: ; preds = %476, %483
%484 = load i8*, i8** %3
%485 = getelementptr inbounds i8, i8* %484, i64 1
store i8* %485, i8** %3
%486 = load i8, i8* %485
%487 = call i64 @isspace(i8 signext %486)
%488 = icmp eq i64 %487, 0
br i1 %488, label %489, label %483
489: ; preds = %483, %476
%490 = load i8*, i8** %3
%491 = load i8, i8* %490
%492 = icmp eq i8 %491, 0
br i1 %492, label %493, label %496
493: ; preds = %489
%494 = load i32, i32* @stderr
%495 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %494, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.16, i64 0, i64 0), i32 %23)
br label %67
496: ; preds = %489
%497 = call i64 @new_vendor(i8* %490, i32 %478)
%498 = icmp eq i64 %497, 0
br i1 %498, label %67, label %499
499: ; preds = %496
%500 = load i32, i32* @stderr
%501 = load i8*, i8** %3
%502 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %500, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 %23, i32 %478, i8* %501)
br label %67
503: ; preds = %471
%504 = load i8, i8* %4
%505 = icmp eq i8 %504, 9
%506 = load i8, i8* %9
br i1 %505, label %507, label %616
507: ; preds = %503
%508 = call i64 @isxdigit(i8 signext %506)
%509 = icmp eq i64 %508, 0
br i1 %509, label %570, label %510
510: ; preds = %507
%511 = call i32 @strtoul(i8* %9, i8** %3, i32 16)
%512 = load i8*, i8** %3
%513 = load i8, i8* %512
%514 = call i64 @isspace(i8 signext %513)
%515 = icmp eq i64 %514, 0
br i1 %515, label %522, label %516
516: ; preds = %510, %516
%517 = load i8*, i8** %3
%518 = getelementptr inbounds i8, i8* %517, i64 1
store i8* %518, i8** %3
%519 = load i8, i8* %518
%520 = call i64 @isspace(i8 signext %519)
%521 = icmp eq i64 %520, 0
br i1 %521, label %522, label %516
522: ; preds = %516, %510
%523 = load i8*, i8** %3
%524 = load i8, i8* %523
%525 = icmp eq i8 %524, 0
br i1 %525, label %526, label %529
526: ; preds = %522
%527 = load i32, i32* @stderr
%528 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %527, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.18, i64 0, i64 0), i32 %23)
br label %67
529: ; preds = %522
%530 = icmp eq i32 %21, -1
br i1 %530, label %538, label %531
531: ; preds = %529
%532 = call i64 @new_product(i8* %523, i32 %21, i32 %511)
%533 = icmp eq i64 %532, 0
br i1 %533, label %67, label %534
534: ; preds = %531
%535 = load i32, i32* @stderr
%536 = load i8*, i8** %3
%537 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %535, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.19, i64 0, i64 0), i32 %23, i32 %21, i32 %511, i8* %536)
br label %67
538: ; preds = %529
%539 = icmp eq i32 %20, -1
br i1 %539, label %547, label %540
540: ; preds = %538
%541 = call i64 @new_subclass(i8* %523, i32 %20, i32 %511)
%542 = icmp eq i64 %541, 0
br i1 %542, label %67, label %543
543: ; preds = %540
%544 = load i32, i32* @stderr
%545 = load i8*, i8** %3
%546 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %544, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.20, i64 0, i64 0), i32 %23, i32 %20, i32 %511, i8* %545)
br label %67
547: ; preds = %538
%548 = icmp eq i32 %18, -1
br i1 %548, label %557, label %549
549: ; preds = %547
%550 = shl i32 %18, 16
%551 = add i32 %511, %550
%552 = call i64 @new_hutus(i8* %523, i32 %551)
%553 = icmp eq i64 %552, 0
br i1 %553, label %67, label %554
554: ; preds = %549
%555 = load i32, i32* @stderr
%556 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %555, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.21, i64 0, i64 0), i32 %23)
br label %67
557: ; preds = %547
%558 = icmp eq i32 %17, -1
br i1 %558, label %567, label %559
559: ; preds = %557
%560 = shl i32 %511, 10
%561 = add i32 %560, %17
%562 = call i64 @new_langid(i8* %523, i32 %561)
%563 = icmp eq i64 %562, 0
br i1 %563, label %67, label %564
564: ; preds = %559
%565 = load i32, i32* @stderr
%566 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %565, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.22, i64 0, i64 0), i32 %23)
br label %67
567: ; preds = %557
%568 = load i32, i32* @stderr
%569 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %568, i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.23, i64 0, i64 0), i32 %23)
br label %67
570: ; preds = %507
%571 = load i8, i8* %4
%572 = icmp eq i8 %571, 9
%573 = load i8, i8* %9
%574 = icmp eq i8 %573, 9
%575 = select i1 %572, i1 %574, i1 false
br i1 %575, label %576, label %616
576: ; preds = %570
%577 = load i8, i8* %10
%578 = call i64 @isxdigit(i8 signext %577)
%579 = icmp eq i64 %578, 0
br i1 %579, label %580, label %583
580: ; preds = %576
%581 = load i8, i8* %4
%582 = load i8, i8* %9
br label %616
583: ; preds = %576
%584 = call i32 @strtoul(i8* %10, i8** %3, i32 16)
%585 = load i8*, i8** %3
%586 = load i8, i8* %585
%587 = call i64 @isspace(i8 signext %586)
%588 = icmp eq i64 %587, 0
br i1 %588, label %595, label %589
589: ; preds = %583, %589
%590 = load i8*, i8** %3
%591 = getelementptr inbounds i8, i8* %590, i64 1
store i8* %591, i8** %3
%592 = load i8, i8* %591
%593 = call i64 @isspace(i8 signext %592)
%594 = icmp eq i64 %593, 0
br i1 %594, label %595, label %589
595: ; preds = %589, %583
%596 = load i8*, i8** %3
%597 = load i8, i8* %596
%598 = icmp eq i8 %597, 0
br i1 %598, label %599, label %602
599: ; preds = %595
%600 = load i32, i32* @stderr
%601 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %600, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.24, i64 0, i64 0), i32 %23)
br label %67
602: ; preds = %595
%603 = icmp ne i32 %20, -1
%604 = icmp ne i32 %19, -1
%605 = select i1 %603, i1 %604, i1 false
br i1 %605, label %606, label %613
606: ; preds = %602
%607 = call i64 @new_protocol(i8* %596, i32 %20, i32 %19, i32 %584)
%608 = icmp eq i64 %607, 0
br i1 %608, label %67, label %609
609: ; preds = %606
%610 = load i32, i32* @stderr
%611 = load i8*, i8** %3
%612 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %610, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.25, i64 0, i64 0), i32 %23, i32 %20, i32 %19, i32 %584, i8* %611)
br label %67
613: ; preds = %602
%614 = load i32, i32* @stderr
%615 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %614, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.26, i64 0, i64 0), i32 %23)
br label %67
616: ; preds = %503, %580, %570
%617 = phi i8 [ %582, %580 ], [ %573, %570 ], [ %506, %503 ]
%618 = phi i8 [ %581, %580 ], [ %571, %570 ], [ %504, %503 ]
%619 = icmp eq i8 %618, 72
%620 = icmp eq i8 %617, 73
%621 = select i1 %619, i1 %620, i1 false
%622 = load i8, i8* %10
%623 = icmp eq i8 %622, 68
%624 = select i1 %621, i1 %623, i1 false
%625 = load i8, i8* %11
%626 = icmp eq i8 %625, 32
%627 = select i1 %624, i1 %626, i1 false
br i1 %627, label %628, label %673
628: ; preds = %616
store i8* %12, i8** %3
%629 = load i8, i8* %12
%630 = call i64 @isspace(i8 signext %629)
%631 = icmp eq i64 %630, 0
br i1 %631, label %638, label %632
632: ; preds = %628, %632
%633 = load i8*, i8** %3
%634 = getelementptr inbounds i8, i8* %633, i64 1
store i8* %634, i8** %3
%635 = load i8, i8* %634
%636 = call i64 @isspace(i8 signext %635)
%637 = icmp eq i64 %636, 0
br i1 %637, label %638, label %632
638: ; preds = %632, %628
%639 = load i8*, i8** %3
%640 = load i8, i8* %639
%641 = call i64 @isxdigit(i8 signext %640)
%642 = icmp eq i64 %641, 0
br i1 %642, label %643, label %646
643: ; preds = %638
%644 = load i32, i32* @stderr
%645 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %644, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %23)
br label %67
646: ; preds = %638
%647 = load i8*, i8** %3
%648 = call i32 @strtoul(i8* %647, i8** %3, i32 16)
%649 = load i8*, i8** %3
%650 = load i8, i8* %649
%651 = call i64 @isspace(i8 signext %650)
%652 = icmp eq i64 %651, 0
br i1 %652, label %659, label %653
653: ; preds = %646, %653
%654 = load i8*, i8** %3
%655 = getelementptr inbounds i8, i8* %654, i64 1
store i8* %655, i8** %3
%656 = load i8, i8* %655
%657 = call i64 @isspace(i8 signext %656)
%658 = icmp eq i64 %657, 0
br i1 %658, label %659, label %653
659: ; preds = %653, %646
%660 = load i8*, i8** %3
%661 = load i8, i8* %660
%662 = icmp eq i8 %661, 0
br i1 %662, label %663, label %666
663: ; preds = %659
%664 = load i32, i32* @stderr
%665 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %664, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %23)
br label %67
666: ; preds = %659
%667 = call i64 @new_hid(i8* %660, i32 %648)
%668 = icmp eq i64 %667, 0
br i1 %668, label %67, label %669
669: ; preds = %666
%670 = load i32, i32* @stderr
%671 = load i8*, i8** %3
%672 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %670, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 %23, i32 %648, i8* %671)
br label %67
673: ; preds = %616
%674 = icmp eq i8 %617, 85
%675 = select i1 %619, i1 %674, i1 false
%676 = icmp eq i8 %622, 84
%677 = select i1 %675, i1 %676, i1 false
%678 = select i1 %677, i1 %626, i1 false
br i1 %678, label %679, label %724
679: ; preds = %673
store i8* %12, i8** %3
%680 = load i8, i8* %12
%681 = call i64 @isspace(i8 signext %680)
%682 = icmp eq i64 %681, 0
br i1 %682, label %689, label %683
683: ; preds = %679, %683
%684 = load i8*, i8** %3
%685 = getelementptr inbounds i8, i8* %684, i64 1
store i8* %685, i8** %3
%686 = load i8, i8* %685
%687 = call i64 @isspace(i8 signext %686)
%688 = icmp eq i64 %687, 0
br i1 %688, label %689, label %683
689: ; preds = %683, %679
%690 = load i8*, i8** %3
%691 = load i8, i8* %690
%692 = call i64 @isxdigit(i8 signext %691)
%693 = icmp eq i64 %692, 0
br i1 %693, label %694, label %697
694: ; preds = %689
%695 = load i32, i32* @stderr
%696 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %695, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.29, i64 0, i64 0), i32 %23)
br label %67
697: ; preds = %689
%698 = load i8*, i8** %3
%699 = call i32 @strtoul(i8* %698, i8** %3, i32 16)
%700 = load i8*, i8** %3
%701 = load i8, i8* %700
%702 = call i64 @isspace(i8 signext %701)
%703 = icmp eq i64 %702, 0
br i1 %703, label %710, label %704
704: ; preds = %697, %704
%705 = load i8*, i8** %3
%706 = getelementptr inbounds i8, i8* %705, i64 1
store i8* %706, i8** %3
%707 = load i8, i8* %706
%708 = call i64 @isspace(i8 signext %707)
%709 = icmp eq i64 %708, 0
br i1 %709, label %710, label %704
710: ; preds = %704, %697
%711 = load i8*, i8** %3
%712 = load i8, i8* %711
%713 = icmp eq i8 %712, 0
br i1 %713, label %714, label %717
714: ; preds = %710
%715 = load i32, i32* @stderr
%716 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %715, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.29, i64 0, i64 0), i32 %23)
br label %67
717: ; preds = %710
%718 = call i64 @new_huts(i8* %711, i32 %699)
%719 = icmp eq i64 %718, 0
br i1 %719, label %67, label %720
720: ; preds = %717
%721 = load i32, i32* @stderr
%722 = load i8*, i8** %3
%723 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %721, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 %23, i32 %699, i8* %722)
br label %67
724: ; preds = %673
%725 = icmp eq i8 %618, 82
%726 = icmp eq i8 %617, 32
%727 = select i1 %725, i1 %726, i1 false
br i1 %727, label %728, label %772
728: ; preds = %724
store i8* %10, i8** %3
%729 = call i64 @isspace(i8 signext %622)
%730 = icmp eq i64 %729, 0
br i1 %730, label %737, label %731
731: ; preds = %728, %731
%732 = load i8*, i8** %3
%733 = getelementptr inbounds i8, i8* %732, i64 1
store i8* %733, i8** %3
%734 = load i8, i8* %733
%735 = call i64 @isspace(i8 signext %734)
%736 = icmp eq i64 %735, 0
br i1 %736, label %737, label %731
737: ; preds = %731, %728
%738 = load i8*, i8** %3
%739 = load i8, i8* %738
%740 = call i64 @isxdigit(i8 signext %739)
%741 = icmp eq i64 %740, 0
br i1 %741, label %742, label %745
742: ; preds = %737
%743 = load i32, i32* @stderr
%744 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %743, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.31, i64 0, i64 0), i32 %23)
br label %67
745: ; preds = %737
%746 = load i8*, i8** %3
%747 = call i32 @strtoul(i8* %746, i8** %3, i32 16)
%748 = load i8*, i8** %3
%749 = load i8, i8* %748
%750 = call i64 @isspace(i8 signext %749)
%751 = icmp eq i64 %750, 0
br i1 %751, label %758, label %752
752: ; preds = %745, %752
%753 = load i8*, i8** %3
%754 = getelementptr inbounds i8, i8* %753, i64 1
store i8* %754, i8** %3
%755 = load i8, i8* %754
%756 = call i64 @isspace(i8 signext %755)
%757 = icmp eq i64 %756, 0
br i1 %757, label %758, label %752
758: ; preds = %752, %745
%759 = load i8*, i8** %3
%760 = load i8, i8* %759
%761 = icmp eq i8 %760, 0
br i1 %761, label %762, label %765
762: ; preds = %758
%763 = load i32, i32* @stderr
%764 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %763, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.31, i64 0, i64 0), i32 %23)
br label %67
765: ; preds = %758
%766 = call i64 @new_reporttag(i8* %759, i32 %747)
%767 = icmp eq i64 %766, 0
br i1 %767, label %67, label %768
768: ; preds = %765
%769 = load i32, i32* @stderr
%770 = load i8*, i8** %3
%771 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %769, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.32, i64 0, i64 0), i32 %23, i32 %747, i8* %770)
br label %67
772: ; preds = %724
%773 = load i32, i32* @stderr
%774 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %773, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.33, i64 0, i64 0), i32 %23)
br label %67
775: ; preds = %67, %1
ret void
}