#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);
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, lastclass = -1, lastsubclass = -1, lasthut = -1,
      lastlang = -1;
  unsigned int u;
  while (fgets(buf, sizeof(buf), f)) {
    linectr++;
    if ((cp = strchr(buf, 13)))
      *cp = 0;
    if ((cp = strchr(buf, 10)))
      *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] == '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;
    }
    if (buf[0] == 'V' && buf[1] == 'T') {
      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     2823 <parse+0x15e3>
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)
cmp    $0x0,%rax
je     12e5 <parse+0xa5>
mov    -0x218(%rbp),%rax
movb   $0x0,(%rax)
lea    -0x210(%rbp),%rdi
mov    $0xa,%esi
call   1080 <strchr@plt>
mov    %rax,-0x218(%rbp)
cmp    $0x0,%rax
je     1311 <parse+0xd1>
mov    -0x218(%rbp),%rax
movb   $0x0,(%rax)
movsbl -0x210(%rbp),%eax
cmp    $0x23,%eax
je     132e <parse+0xee>
cmpb   $0x0,-0x210(%rbp)
jne    1333 <parse+0xf3>
jmp    128b <parse+0x4b>
lea    -0x210(%rbp),%rax
mov    %rax,-0x218(%rbp)
movsbl -0x210(%rbp),%eax
cmp    $0x50,%eax
jne    1509 <parse+0x2c9>
movsbl -0x20f(%rbp),%eax
cmp    $0x48,%eax
jne    1509 <parse+0x2c9>
movsbl -0x20e(%rbp),%eax
cmp    $0x59,%eax
jne    1509 <parse+0x2c9>
movsbl -0x20d(%rbp),%eax
cmp    $0x53,%eax
jne    1509 <parse+0x2c9>
movsbl -0x20c(%rbp),%eax
cmp    $0x44,%eax
jne    1509 <parse+0x2c9>
movsbl -0x20b(%rbp),%eax
cmp    $0x45,%eax
jne    1509 <parse+0x2c9>
movsbl -0x20a(%rbp),%eax
cmp    $0x53,%eax
jne    1509 <parse+0x2c9>
movsbl -0x209(%rbp),%eax
cmp    $0x20,%eax
jne    1509 <parse+0x2c9>
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     1403 <parse+0x1c3>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    13d3 <parse+0x193>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    143e <parse+0x1fe>
mov    0x3bbd(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1bce(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     148c <parse+0x24c>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    145c <parse+0x21c>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    14be <parse+0x27e>
mov    0x3b3d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1b4e(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1040 <new_physdes@plt>
cmp    $0x0,%rax
je     1504 <parse+0x2c4>
mov    0x3aff(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1b24(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x50,%eax
jne    1691 <parse+0x451>
movsbl -0x20f(%rbp),%eax
cmp    $0x48,%eax
jne    1691 <parse+0x451>
movsbl -0x20e(%rbp),%eax
cmp    $0x59,%eax
jne    1691 <parse+0x451>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    1691 <parse+0x451>
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     158b <parse+0x34b>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    155b <parse+0x31b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    15c6 <parse+0x386>
mov    0x3a35(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1aa6(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1614 <parse+0x3d4>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    15e4 <parse+0x3a4>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1646 <parse+0x406>
mov    0x39b5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1a26(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1040 <new_physdes@plt>
cmp    $0x0,%rax
je     168c <parse+0x44c>
mov    0x3977(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x19f8(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x42,%eax
jne    1829 <parse+0x5e9>
movsbl -0x20f(%rbp),%eax
cmp    $0x49,%eax
jne    1829 <parse+0x5e9>
movsbl -0x20e(%rbp),%eax
cmp    $0x41,%eax
jne    1829 <parse+0x5e9>
movsbl -0x20d(%rbp),%eax
cmp    $0x53,%eax
jne    1829 <parse+0x5e9>
movsbl -0x20c(%rbp),%eax
cmp    $0x20,%eax
jne    1829 <parse+0x5e9>
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     1723 <parse+0x4e3>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    16f3 <parse+0x4b3>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    175e <parse+0x51e>
mov    0x389d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1965(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     17ac <parse+0x56c>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    177c <parse+0x53c>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    17de <parse+0x59e>
mov    0x381d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x18e5(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1070 <new_bias@plt>
cmp    $0x0,%rax
je     1824 <parse+0x5e4>
mov    0x37df(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x18b8(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x4c,%eax
jne    19c5 <parse+0x785>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    19c5 <parse+0x785>
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     188b <parse+0x64b>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    185b <parse+0x61b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    18c6 <parse+0x686>
mov    0x3735(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1857(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1914 <parse+0x6d4>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    18e4 <parse+0x6a4>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1946 <parse+0x706>
mov    0x36b5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x17d7(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1050 <new_langid@plt>
cmp    $0x0,%rax
je     198c <parse+0x74c>
mov    0x3677(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x17ac(%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    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x43,%eax
jne    1b61 <parse+0x921>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    1b61 <parse+0x921>
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     1a27 <parse+0x7e7>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    19f7 <parse+0x7b7>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    1a62 <parse+0x822>
mov    0x3599(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1711(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1ab0 <parse+0x870>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1a80 <parse+0x840>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1ae2 <parse+0x8a2>
mov    0x3519(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1691(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1120 <new_class@plt>
cmp    $0x0,%rax
je     1b28 <parse+0x8e8>
mov    0x34db(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1665(%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    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x41,%eax
jne    1cdf <parse+0xa9f>
movsbl -0x20f(%rbp),%eax
cmp    $0x54,%eax
jne    1cdf <parse+0xa9f>
movsbl -0x20e(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1cdf <parse+0xa9f>
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     1bd9 <parse+0x999>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1ba9 <parse+0x969>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    1c14 <parse+0x9d4>
mov    0x33e7(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x15ad(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1c62 <parse+0xa22>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1c32 <parse+0x9f2>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1c94 <parse+0xa54>
mov    0x3367(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x152d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   10c0 <new_audioterminal@plt>
cmp    $0x0,%rax
je     1cda <parse+0xa9a>
mov    0x3329(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x150a(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    1e6d <parse+0xc2d>
movsbl -0x20f(%rbp),%eax
cmp    $0x43,%eax
jne    1e6d <parse+0xc2d>
movsbl -0x20e(%rbp),%eax
cmp    $0x43,%eax
jne    1e6d <parse+0xc2d>
movsbl -0x20d(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1e6d <parse+0xc2d>
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     1d67 <parse+0xb27>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1d37 <parse+0xaf7>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    1da2 <parse+0xb62>
mov    0x3259(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x148c(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0xa,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1df0 <parse+0xbb0>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1dc0 <parse+0xb80>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1e22 <parse+0xbe2>
mov    0x31d9(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x140c(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1140 <new_countrycode@plt>
cmp    $0x0,%rax
je     1e68 <parse+0xc28>
mov    0x319b(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x13e6(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
je     1f85 <parse+0xd45>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1ed4 <parse+0xc94>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1ea4 <parse+0xc64>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1f06 <parse+0xcc6>
mov    0x30f5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1384(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1100 <new_vendor@plt>
cmp    $0x0,%rax
je     1f4c <parse+0xd0c>
mov    0x30b7(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1359(%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    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x9,%eax
jne    21d1 <parse+0xf91>
movsbl -0x20f(%rbp),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
je     21d1 <parse+0xf91>
lea    -0x210(%rbp),%rdi
add    $0x1,%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1ffd <parse+0xdbd>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1fcd <parse+0xd8d>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    202f <parse+0xdef>
mov    0x2fcc(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x12ac(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
cmpl   $0xffffffff,-0x220(%rbp)
je     2094 <parse+0xe54>
mov    -0x218(%rbp),%rdi
mov    -0x220(%rbp),%esi
mov    -0x234(%rbp),%edx
call   1030 <new_product@plt>
cmp    $0x0,%rax
je     208f <parse+0xe4f>
mov    0x2f7b(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x220(%rbp),%ecx
mov    -0x234(%rbp),%r8d
mov    -0x218(%rbp),%r9
lea    0x1271(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
cmpl   $0xffffffff,-0x224(%rbp)
je     2105 <parse+0xec5>
mov    -0x218(%rbp),%rdi
mov    -0x224(%rbp),%esi
mov    -0x234(%rbp),%edx
call   1150 <new_subclass@plt>
cmp    $0x0,%rax
je     20f4 <parse+0xeb4>
mov    0x2f16(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x224(%rbp),%ecx
mov    -0x234(%rbp),%r8d
mov    -0x218(%rbp),%r9
lea    0x1244(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
mov    -0x234(%rbp),%eax
mov    %eax,-0x228(%rbp)
jmp    128b <parse+0x4b>
cmpl   $0xffffffff,-0x22c(%rbp)
je     2159 <parse+0xf19>
mov    -0x218(%rbp),%rdi
mov    -0x22c(%rbp),%esi
shl    $0x10,%esi
add    -0x234(%rbp),%esi
call   10b0 <new_hutus@plt>
cmp    $0x0,%rax
je     2154 <parse+0xf14>
mov    0x2ea2(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x121b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
cmpl   $0xffffffff,-0x230(%rbp)
je     21af <parse+0xf6f>
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     21aa <parse+0xf6a>
mov    0x2e4c(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x11ea(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    0x2e2a(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x11f0(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x9,%eax
jne    2330 <parse+0x10f0>
movsbl -0x20f(%rbp),%eax
cmp    $0x9,%eax
jne    2330 <parse+0x10f0>
movsbl -0x20e(%rbp),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
je     2330 <parse+0x10f0>
lea    -0x210(%rbp),%rdi
add    $0x2,%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2259 <parse+0x1019>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2229 <parse+0xfe9>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    228b <parse+0x104b>
mov    0x2d70(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1178(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
cmpl   $0xffffffff,-0x224(%rbp)
je     230e <parse+0x10ce>
cmpl   $0xffffffff,-0x228(%rbp)
je     230e <parse+0x10ce>
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     2309 <parse+0x10c9>
mov    0x2d0c(%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    0x111b(%rip),%rsi
mov    %rax,(%rsp)
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    0x2ccb(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1131(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    24b8 <parse+0x1278>
movsbl -0x20f(%rbp),%eax
cmp    $0x49,%eax
jne    24b8 <parse+0x1278>
movsbl -0x20e(%rbp),%eax
cmp    $0x44,%eax
jne    24b8 <parse+0x1278>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    24b8 <parse+0x1278>
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     23b2 <parse+0x1172>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2382 <parse+0x1142>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    23ed <parse+0x11ad>
mov    0x2c0e(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10b4(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     243b <parse+0x11fb>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    240b <parse+0x11cb>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    246d <parse+0x122d>
mov    0x2b8e(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1034(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1160 <new_hid@plt>
cmp    $0x0,%rax
je     24b3 <parse+0x1273>
mov    0x2b50(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1006(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    2674 <parse+0x1434>
movsbl -0x20f(%rbp),%eax
cmp    $0x55,%eax
jne    2674 <parse+0x1434>
movsbl -0x20e(%rbp),%eax
cmp    $0x54,%eax
jne    2674 <parse+0x1434>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    2674 <parse+0x1434>
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     253a <parse+0x12fa>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    250a <parse+0x12ca>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    2575 <parse+0x1335>
mov    0x2a86(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xf83(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     25c3 <parse+0x1383>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2593 <parse+0x1353>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    25f5 <parse+0x13b5>
mov    0x2a06(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xf03(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   10f0 <new_huts@plt>
cmp    $0x0,%rax
je     263b <parse+0x13fb>
mov    0x29c8(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xed5(%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    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x52,%eax
jne    27dc <parse+0x159c>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    27dc <parse+0x159c>
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     26d6 <parse+0x1496>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    26a6 <parse+0x1466>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
cmp    $0x0,%rax
jne    2711 <parse+0x14d1>
mov    0x28ea(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xe3e(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     275f <parse+0x151f>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    272f <parse+0x14ef>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2791 <parse+0x1551>
mov    0x286a(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xdbe(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1060 <new_reporttag@plt>
cmp    $0x0,%rax
je     27d7 <parse+0x1597>
mov    0x282c(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xd93(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x56,%eax
jne    2801 <parse+0x15c1>
movsbl -0x20f(%rbp),%eax
cmp    $0x54,%eax
jne    2801 <parse+0x15c1>
jmp    128b <parse+0x4b>
mov    0x27d8(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xd89(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    128b <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     2192 <parse+0xf52>
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    12d9 <parse+0x99>
mov    0x3d35(%rip),%rax
mov    (%rax),%edi
lea    0x1d4c(%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     2192 <parse+0xf52>
mov    %r13,%rdi
mov    $0xd,%esi
call   1080 <strchr@plt>
test   %rax,%rax
je     12ee <parse+0xae>
movb   $0x0,(%rax)
mov    %r13,%rdi
mov    $0xa,%esi
call   1080 <strchr@plt>
mov    %rax,0x10(%rsp)
test   %rax,%rax
je     1308 <parse+0xc8>
movb   $0x0,(%rax)
add    $0x1,%r15d
mov    0x30(%rsp),%cl
test   %cl,%cl
je     12c0 <parse+0x80>
cmp    $0x23,%cl
je     12c0 <parse+0x80>
mov    %r13,0x10(%rsp)
mov    %ecx,%eax
xor    $0x50,%al
mov    0x31(%rsp),%r8b
mov    0x32(%rsp),%dil
mov    %r8d,%edx
xor    $0x48,%dl
or     %al,%dl
mov    %edi,%eax
xor    $0x59,%al
or     %dl,%al
sete   %al
mov    0x33(%rsp),%bl
movd   0x34(%rsp),%xmm0
movd   %xmm0,%esi
cmp    $0x20534544,%esi
jne    138e <parse+0x14e>
test   %al,%al
je     138e <parse+0x14e>
cmp    $0x53,%bl
jne    138e <parse+0x14e>
lea    0x38(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x38(%rsp),%edi
nopl   0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     13d2 <parse+0x192>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1370 <parse+0x130>
cmp    $0x20,%bl
sete   %dl
and    %dl,%al
cmp    $0x1,%al
jne    1466 <parse+0x226>
lea    0x34(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl %sil,%edi
nopl   0x0(%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     14d2 <parse+0x292>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    13b0 <parse+0x170>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     12a4 <parse+0x64>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     142e <parse+0x1ee>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1410 <parse+0x1d0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     12a4 <parse+0x64>
mov    %ebp,%esi
call   1040 <new_physdes@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x3b8d(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1bc0(%rip),%rsi
jmp    164d <parse+0x40d>
cmp    $0x42,%cl
jne    1577 <parse+0x337>
cmp    $0x49,%r8b
jne    1577 <parse+0x337>
cmp    $0x41,%dil
jne    1577 <parse+0x337>
cmp    $0x53,%bl
jne    1577 <parse+0x337>
cmp    $0x20,%sil
jne    1577 <parse+0x337>
lea    0x35(%rsp),%rax
mov    %rax,0x10(%rsp)
shr    $0x8,%esi
movsbl %sil,%edi
nopw   0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     15c2 <parse+0x382>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    14b0 <parse+0x270>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1562 <parse+0x322>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     152e <parse+0x2ee>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1510 <parse+0x2d0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1562 <parse+0x322>
mov    %ebp,%esi
call   1040 <new_physdes@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x3a91(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1b20(%rip),%rsi
jmp    164d <parse+0x40d>
mov    0x3a77(%rip),%rax
mov    (%rax),%edi
lea    0x1aee(%rip),%rsi
jmp    12b4 <parse+0x74>
cmp    $0x4c,%cl
jne    1673 <parse+0x433>
cmp    $0x20,%r8b
jne    1673 <parse+0x433>
mov    %r12,0x10(%rsp)
movsbl %dil,%edi
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     16b2 <parse+0x472>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    15a0 <parse+0x360>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     165e <parse+0x41e>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     161e <parse+0x3de>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1600 <parse+0x3c0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     165e <parse+0x41e>
mov    %ebp,%esi
call   1070 <new_bias@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x39a1(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1a88(%rip),%rsi
mov    %r15d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
jmp    12c0 <parse+0x80>
mov    0x397b(%rip),%rax
mov    (%rax),%edi
lea    0x1a49(%rip),%rsi
jmp    12b4 <parse+0x74>
cmp    $0x43,%cl
jne    1778 <parse+0x538>
cmp    $0x20,%r8b
jne    1778 <parse+0x538>
mov    %r12,0x10(%rsp)
movsbl %dil,%edi
nop
call   10a0 <isspace@plt>
test   %rax,%rax
je     17d2 <parse+0x592>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1690 <parse+0x450>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     182e <parse+0x5ee>
mov    %r12,%rbx
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     170e <parse+0x4ce>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    16f0 <parse+0x4b0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     18a0 <parse+0x660>
mov    %r12d,%esi
call   1050 <new_langid@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     1753 <parse+0x513>
mov    0x38a8(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x19eb(%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    12c0 <parse+0x80>
cmp    $0x41,%cl
jne    1975 <parse+0x735>
cmp    $0x54,%r8b
jne    1975 <parse+0x735>
movsbl %dil,%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1967 <parse+0x727>
lea    0x33(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x33(%rsp),%edi
nopl   0x0(%rax)
call   10a0 <isspace@plt>
test   %rax,%rax
je     18c2 <parse+0x682>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    17b0 <parse+0x570>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     188b <parse+0x64b>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     1843 <parse+0x603>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1810 <parse+0x5d0>
mov    0x37ab(%rip),%rax
mov    (%rax),%edi
lea    0x18d3(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     188b <parse+0x64b>
mov    %ebp,%esi
call   1120 <new_class@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     1882 <parse+0x642>
mov    0x3778(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1910(%rip),%rsi
mov    %r15d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %ebp,0x1c(%rsp)
jmp    1a75 <parse+0x835>
mov    0x374e(%rip),%rax
mov    (%rax),%edi
lea    0x18cc(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x3739(%rip),%rax
mov    (%rax),%edi
lea    0x1861(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %rbx,%r12
jmp    12c0 <parse+0x80>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1952 <parse+0x712>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     191e <parse+0x6de>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1900 <parse+0x6c0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1952 <parse+0x712>
mov    %ebp,%esi
call   10c0 <new_audioterminal@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x36a1(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1890(%rip),%rsi
jmp    164d <parse+0x40d>
mov    0x3687(%rip),%rax
mov    (%rax),%edi
lea    0x1853(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%r8b
mov    0x32(%rsp),%dil
cmp    $0x48,%cl
jne    19d2 <parse+0x792>
cmp    $0x43,%r8b
jne    19d2 <parse+0x792>
cmp    $0x43,%dil
jne    19d2 <parse+0x792>
movsbl 0x33(%rsp),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     19d2 <parse+0x792>
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     1a92 <parse+0x852>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    19b0 <parse+0x770>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1aee <parse+0x8ae>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <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     1a2e <parse+0x7ee>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1a10 <parse+0x7d0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1b97 <parse+0x957>
mov    %ebp,%esi
call   1100 <new_vendor@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
test   %rax,%rax
je     1a71 <parse+0x831>
mov    0x3589(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1839(%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    12c0 <parse+0x80>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1b82 <parse+0x942>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0xa,%edx
call   1110 <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     1b4e <parse+0x90e>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1ad0 <parse+0x890>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%al
cmp    $0x9,%cl
jne    1d4c <parse+0xb0c>
movsbl %al,%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1c02 <parse+0x9c2>
lea    0x31(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
xchg   %ax,%ax
call   10a0 <isspace@plt>
test   %rax,%rax
je     1bac <parse+0x96c>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1b30 <parse+0x8f0>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1b82 <parse+0x942>
mov    %ebp,%esi
call   1140 <new_countrycode@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x3471(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x16ca(%rip),%rsi
jmp    164d <parse+0x40d>
mov    0x3457(%rip),%rax
mov    (%rax),%edi
lea    0x1690(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x3442(%rip),%rax
mov    (%rax),%edi
lea    0x16d7(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1c69 <parse+0xa29>
mov    0x2c(%rsp),%ebx
cmp    $0xffffffff,%ebx
je     1c7e <parse+0xa3e>
mov    %ebx,%esi
mov    %ebp,%edx
call   1030 <new_product@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x3400(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r9
lea    0x170b(%rip),%rsi
mov    %r15d,%edx
mov    %ebx,%ecx
mov    %ebp,%r8d
xor    %eax,%eax
call   10e0 <fprintf@plt>
jmp    12c0 <parse+0x80>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%al
cmp    $0x9,%cl
jne    1d4c <parse+0xb0c>
cmp    $0x9,%al
jne    1d4c <parse+0xb0c>
movsbl 0x32(%rsp),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1d44 <parse+0xb04>
mov    %r12,%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,%r12d
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1cd2 <parse+0xa92>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1c4b <parse+0xa0b>
mov    0x3370(%rip),%rax
mov    (%rax),%edi
lea    0x1656(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x1c(%rsp),%ebx
cmp    $0xffffffff,%ebx
je     206b <parse+0xe2b>
mov    %ebx,%esi
mov    %ebp,%edx
call   1150 <new_subclass@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     20f2 <parse+0xeb2>
mov    0x3334(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r9
lea    0x1677(%rip),%rsi
mov    %r15d,%edx
mov    %ebx,%ecx
mov    %ebp,%r8d
xor    %eax,%eax
call   10e0 <fprintf@plt>
mov    %ebp,0x24(%rsp)
jmp    12c0 <parse+0x80>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     20bc <parse+0xe7c>
mov    0x1c(%rsp),%ebx
cmp    $0xffffffff,%ebx
mov    0x24(%rsp),%ebp
je     20ce <parse+0xe8e>
cmp    $0xffffffff,%ebp
je     20ce <parse+0xe8e>
mov    %ebx,%esi
mov    %ebp,%edx
mov    %r12d,%ecx
call   1090 <new_protocol@plt>
test   %rax,%rax
je     214c <parse+0xf0c>
mov    0x32ca(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%rax
mov    %rax,(%rsp)
lea    0x16f1(%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    12c0 <parse+0x80>
mov    0x30(%rsp),%cl
mov    0x31(%rsp),%al
mov    0x32(%rsp),%dl
mov    0x33(%rsp),%bl
cmp    $0x48,%cl
jne    1d9e <parse+0xb5e>
cmp    $0x49,%al
jne    1d9e <parse+0xb5e>
cmp    $0x44,%dl
jne    1d9e <parse+0xb5e>
cmp    $0x20,%bl
jne    1d9e <parse+0xb5e>
lea    0x34(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x34(%rsp),%edi
cs nopw 0x0(%rax,%rax,1)
call   10a0 <isspace@plt>
test   %rax,%rax
je     1df2 <parse+0xbb2>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1d80 <parse+0xb40>
cmp    $0x48,%cl
jne    1e89 <parse+0xc49>
cmp    $0x55,%al
jne    1e89 <parse+0xc49>
cmp    $0x54,%dl
jne    1e89 <parse+0xc49>
cmp    $0x20,%bl
jne    1e89 <parse+0xc49>
lea    0x34(%rsp),%rax
mov    %rax,0x10(%rsp)
movsbl 0x34(%rsp),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1ec4 <parse+0xc84>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1dd0 <parse+0xb90>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1e74 <parse+0xc34>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1e40 <parse+0xc00>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1e22 <parse+0xbe2>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     1e74 <parse+0xc34>
mov    %ebp,%esi
call   1160 <new_hid@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x317f(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1643(%rip),%rsi
jmp    164d <parse+0x40d>
mov    0x3165(%rip),%rax
mov    (%rax),%edi
lea    0x1611(%rip),%rsi
jmp    12b4 <parse+0x74>
cmp    $0x52,%cl
jne    1f84 <parse+0xd44>
cmp    $0x20,%al
jne    1f84 <parse+0xd44>
mov    %r12,0x10(%rsp)
movsbl %dl,%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1fa6 <parse+0xd66>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1ea2 <parse+0xc62>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     1ff8 <parse+0xdb8>
mov    %r12,%rbx
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,%r12d
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     1f1a <parse+0xcda>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1efc <parse+0xcbc>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     2056 <parse+0xe16>
mov    %r12d,%esi
call   10f0 <new_huts@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     1f5f <parse+0xd1f>
mov    0x309c(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x15b7(%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    12c0 <parse+0x80>
cmp    $0x56,%cl
jne    1f91 <parse+0xd51>
cmp    $0x54,%al
je     12c0 <parse+0x80>
mov    0x3048(%rip),%rax
mov    (%rax),%edi
lea    0x15ff(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   1130 <isxdigit@plt>
test   %rax,%rax
je     2041 <parse+0xe01>
mov    0x10(%rsp),%rdi
lea    0x10(%rsp),%rsi
mov    $0x10,%edx
call   1110 <strtoul@plt>
mov    %eax,%ebp
mov    0x10(%rsp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
test   %rax,%rax
je     200d <parse+0xdcd>
mov    0x10(%rsp),%rax
lea    0x1(%rax),%rcx
mov    %rcx,0x10(%rsp)
movsbl 0x1(%rax),%edi
jmp    1fda <parse+0xd9a>
mov    0x2fe1(%rip),%rax
mov    (%rax),%edi
lea    0x14e4(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x10(%rsp),%rdi
cmpb   $0x0,(%rdi)
je     2041 <parse+0xe01>
mov    %ebp,%esi
call   1060 <new_reporttag@plt>
test   %rax,%rax
je     12c0 <parse+0x80>
mov    0x2fb2(%rip),%rax
mov    (%rax),%edi
mov    0x10(%rsp),%r8
lea    0x1527(%rip),%rsi
jmp    164d <parse+0x40d>
mov    0x2f98(%rip),%rax
mov    (%rax),%edi
lea    0x14f2(%rip),%rsi
jmp    12b4 <parse+0x74>
mov    0x2f83(%rip),%rax
mov    (%rax),%edi
lea    0x1486(%rip),%rsi
jmp    18b0 <parse+0x670>
mov    0x20(%rsp),%eax
cmp    $0xffffffff,%eax
je     20fb <parse+0xebb>
shl    $0x10,%eax
add    %eax,%ebp
mov    %ebp,%esi
call   10b0 <new_hutus@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     2156 <parse+0xf16>
mov    0x2f44(%rip),%rax
mov    (%rax),%edi
lea    0x12c3(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
jmp    12c0 <parse+0x80>
mov    0x2f1d(%rip),%rax
mov    (%rax),%edi
lea    0x132b(%rip),%rsi
jmp    20de <parse+0xe9e>
mov    0x2f0b(%rip),%rax
mov    (%rax),%edi
lea    0x1377(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
lea    0x32(%rsp),%r12
jmp    12c0 <parse+0x80>
mov    %ebp,0x24(%rsp)
jmp    12c0 <parse+0x80>
mov    0x28(%rsp),%eax
cmp    $0xffffffff,%eax
je     2163 <parse+0xf23>
shl    $0xa,%ebp
add    %eax,%ebp
mov    %ebp,%esi
call   1050 <new_langid@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
test   %rax,%rax
je     2137 <parse+0xef7>
mov    0x2ebc(%rip),%rax
mov    (%rax),%edi
lea    0x1260(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x1c(%rsp)
ff
movl   $0xffffffff,0x20(%rsp)
ff
jmp    12c0 <parse+0x80>
lea    0x32(%rsp),%r12
jmp    12c0 <parse+0x80>
movl   $0xffffffff,0x1c(%rsp)
ff
jmp    12c0 <parse+0x80>
mov    0x2e76(%rip),%rax
mov    (%rax),%edi
lea    0x1242(%rip),%rsi
mov    %r15d,%edx
xor    %eax,%eax
call   10e0 <fprintf@plt>
movl   $0xffffffff,0x2c(%rsp)
ff
movl   $0xffffffff,0x1c(%rsp)
ff
jmp    1a7d <parse+0x83d>
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 = [37 x i8] c"Invalid HID country code at line %u\0A\00"
@.str.13 = [55 x i8] c"Duplicate HID country code at line %u country %02u %s\0A\00"
@.str.14 = [32 x i8] c"Invalid vendor spec at line %u\0A\00"
@.str.15 = [49 x i8] c"Duplicate vendor spec at line %u vendor %04x %s\0A\00"
@.str.16 = [42 x i8] c"Invalid product/subclass spec at line %u\0A\00"
@.str.17 = [56 x i8] c"Duplicate product spec at line %u product %04x:%04x %s\0A\00"
@.str.18 = [55 x i8] c"Duplicate subclass spec at line %u class %02x:%02x %s\0A\00"
@.str.19 = [37 x i8] c"Duplicate HUT Usage Spec at line %u\0A\00"
@.str.20 = [40 x i8] c"Duplicate LANGID Usage Spec at line %u\0A\00"
@.str.21 = [66 x i8] c"Product/Subclass spec without prior Vendor/Class spec at line %u\0A\00"
@.str.22 = [34 x i8] c"Invalid protocol spec at line %u\0A\00"
@.str.23 = [60 x i8] c"Duplicate protocol spec at line %u class %02x:%02x:%02x %s\0A\00"
@.str.24 = [64 x i8] c"Protocol spec without prior Class and Subclass spec at line %u\0A\00"
@.str.25 = [29 x i8] c"Invalid HID type at line %u\0A\00"
@.str.26 = [58 x i8] c"Duplicate HID type spec at line %u terminal type %04x %s\0A\00"
@.str.27 = [29 x i8] c"Invalid HUT type at line %u\0A\00"
@.str.28 = [58 x i8] c"Duplicate HUT type spec at line %u terminal type %04x %s\0A\00"
@.str.29 = [32 x i8] c"Invalid Report type at line %u\0A\00"
@.str.30 = [61 x i8] c"Duplicate Report type spec at line %u terminal type %04x %s\0A\00"
@.str.31 = [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 = %955, %954, %943, %928, %909, %881, %866, %847, %810, %795, %776, %736, %735, %710, %675, %674, %658, %641, %624, %604, %576, %561, %540, %525, %506, %469, %454, %435, %402, %387, %368, %340, %325, %306, %279, %264, %245, %203, %188, %169, %132, %117, %98, %40, %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 %959
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 = icmp ne i8* %21, null
br i1 %22, label %23, label %25
23: ; preds = %17
%24 = load i8*, i8** %4
store i8 0, i8* %24
br label %25
25: ; preds = %23, %17
%26 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%27 = call i8* @strchr(i8* %26, i32 10)
store i8* %27, i8** %4
%28 = icmp ne i8* %27, null
br i1 %28, label %29, label %31
29: ; preds = %25
%30 = load i8*, i8** %4
store i8 0, i8* %30
br label %31
31: ; preds = %29, %25
%32 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%33 = load i8, i8* %32
%34 = sext i8 %33 to i32
%35 = icmp eq i32 %34, 35
br i1 %35, label %40, label %36
36: ; preds = %31
%37 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%38 = load i8, i8* %37
%39 = icmp ne i8 %38, 0
br i1 %39, label %41, label %40
40: ; preds = %36, %31
br label %12
41: ; preds = %36
%42 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
store i8* %42, i8** %4
%43 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%44 = load i8, i8* %43
%45 = sext i8 %44 to i32
%46 = icmp eq i32 %45, 80
br i1 %46, label %47, label %133
47: ; preds = %41
%48 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%49 = load i8, i8* %48
%50 = sext i8 %49 to i32
%51 = icmp eq i32 %50, 72
br i1 %51, label %52, label %133
52: ; preds = %47
%53 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%54 = load i8, i8* %53
%55 = sext i8 %54 to i32
%56 = icmp eq i32 %55, 89
br i1 %56, label %57, label %133
57: ; preds = %52
%58 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%59 = load i8, i8* %58
%60 = sext i8 %59 to i32
%61 = icmp eq i32 %60, 83
br i1 %61, label %62, label %133
62: ; preds = %57
%63 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 4
%64 = load i8, i8* %63
%65 = sext i8 %64 to i32
%66 = icmp eq i32 %65, 68
br i1 %66, label %67, label %133
67: ; preds = %62
%68 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 5
%69 = load i8, i8* %68
%70 = sext i8 %69 to i32
%71 = icmp eq i32 %70, 69
br i1 %71, label %72, label %133
72: ; preds = %67
%73 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 6
%74 = load i8, i8* %73
%75 = sext i8 %74 to i32
%76 = icmp eq i32 %75, 83
br i1 %76, label %77, label %133
77: ; preds = %72
%78 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 7
%79 = load i8, i8* %78
%80 = sext i8 %79 to i32
%81 = icmp eq i32 %80, 32
br i1 %81, label %82, label %133
82: ; preds = %77
%83 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%84 = getelementptr inbounds i8, i8* %83, i64 8
store i8* %84, i8** %4
br label %85
85: ; preds = %90, %82
%86 = load i8*, i8** %4
%87 = load i8, i8* %86
%88 = call i64 @isspace(i8 signext %87)
%89 = icmp ne i64 %88, 0
br i1 %89, label %90, label %93
90: ; preds = %85
%91 = load i8*, i8** %4
%92 = getelementptr inbounds i8, i8* %91, i32 1
store i8* %92, i8** %4
br label %85
93: ; preds = %85
%94 = load i8*, i8** %4
%95 = load i8, i8* %94
%96 = call i64 @isxdigit(i8 signext %95)
%97 = icmp ne i64 %96, 0
br i1 %97, label %102, label %98
98: ; preds = %93
%99 = load i32, i32* @stderr
%100 = load i32, i32* %5
%101 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %99, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i64 0, i64 0), i32 %100)
br label %12
102: ; preds = %93
%103 = load i8*, i8** %4
%104 = call i32 @strtoul(i8* %103, i8** %4, i32 16)
store i32 %104, i32* %11
br label %105
105: ; preds = %110, %102
%106 = load i8*, i8** %4
%107 = load i8, i8* %106
%108 = call i64 @isspace(i8 signext %107)
%109 = icmp ne i64 %108, 0
br i1 %109, label %110, label %113
110: ; preds = %105
%111 = load i8*, i8** %4
%112 = getelementptr inbounds i8, i8* %111, i32 1
store i8* %112, i8** %4
br label %105
113: ; preds = %105
%114 = load i8*, i8** %4
%115 = load i8, i8* %114
%116 = icmp ne i8 %115, 0
br i1 %116, label %121, label %117
117: ; preds = %113
%118 = load i32, i32* @stderr
%119 = load i32, i32* %5
%120 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %118, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i64 0, i64 0), i32 %119)
br label %12
121: ; preds = %113
%122 = load i8*, i8** %4
%123 = load i32, i32* %11
%124 = call i64 @new_physdes(i8* %122, i32 %123)
%125 = icmp ne i64 %124, 0
br i1 %125, label %126, label %132
126: ; preds = %121
%127 = load i32, i32* @stderr
%128 = load i32, i32* %5
%129 = load i32, i32* %11
%130 = load i8*, i8** %4
%131 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %127, i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.1, i64 0, i64 0), i32 %128, i32 %129, i8* %130)
br label %132
132: ; preds = %126, %121
br label %12
133: ; preds = %77, %72, %67, %62, %57, %52, %47, %41
%134 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%135 = load i8, i8* %134
%136 = sext i8 %135 to i32
%137 = icmp eq i32 %136, 80
br i1 %137, label %138, label %204
138: ; preds = %133
%139 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%140 = load i8, i8* %139
%141 = sext i8 %140 to i32
%142 = icmp eq i32 %141, 72
br i1 %142, label %143, label %204
143: ; preds = %138
%144 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%145 = load i8, i8* %144
%146 = sext i8 %145 to i32
%147 = icmp eq i32 %146, 89
br i1 %147, label %148, label %204
148: ; preds = %143
%149 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%150 = load i8, i8* %149
%151 = sext i8 %150 to i32
%152 = icmp eq i32 %151, 32
br i1 %152, label %153, label %204
153: ; preds = %148
%154 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%155 = getelementptr inbounds i8, i8* %154, i64 4
store i8* %155, i8** %4
br label %156
156: ; preds = %161, %153
%157 = load i8*, i8** %4
%158 = load i8, i8* %157
%159 = call i64 @isspace(i8 signext %158)
%160 = icmp ne i64 %159, 0
br i1 %160, label %161, label %164
161: ; preds = %156
%162 = load i8*, i8** %4
%163 = getelementptr inbounds i8, i8* %162, i32 1
store i8* %163, i8** %4
br label %156
164: ; preds = %156
%165 = load i8*, i8** %4
%166 = load i8, i8* %165
%167 = call i64 @isxdigit(i8 signext %166)
%168 = icmp ne i64 %167, 0
br i1 %168, label %173, label %169
169: ; preds = %164
%170 = load i32, i32* @stderr
%171 = load i32, i32* %5
%172 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %170, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0), i32 %171)
br label %12
173: ; preds = %164
%174 = load i8*, i8** %4
%175 = call i32 @strtoul(i8* %174, i8** %4, i32 16)
store i32 %175, i32* %11
br label %176
176: ; preds = %181, %173
%177 = load i8*, i8** %4
%178 = load i8, i8* %177
%179 = call i64 @isspace(i8 signext %178)
%180 = icmp ne i64 %179, 0
br i1 %180, label %181, label %184
181: ; preds = %176
%182 = load i8*, i8** %4
%183 = getelementptr inbounds i8, i8* %182, i32 1
store i8* %183, i8** %4
br label %176
184: ; preds = %176
%185 = load i8*, i8** %4
%186 = load i8, i8* %185
%187 = icmp ne i8 %186, 0
br i1 %187, label %192, label %188
188: ; preds = %184
%189 = load i32, i32* @stderr
%190 = load i32, i32* %5
%191 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %189, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.2, i64 0, i64 0), i32 %190)
br label %12
192: ; preds = %184
%193 = load i8*, i8** %4
%194 = load i32, i32* %11
%195 = call i64 @new_physdes(i8* %193, i32 %194)
%196 = icmp ne i64 %195, 0
br i1 %196, label %197, label %203
197: ; preds = %192
%198 = load i32, i32* @stderr
%199 = load i32, i32* %5
%200 = load i32, i32* %11
%201 = load i8*, i8** %4
%202 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %198, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.3, i64 0, i64 0), i32 %199, i32 %200, i8* %201)
br label %203
203: ; preds = %197, %192
br label %12
204: ; preds = %148, %143, %138, %133
%205 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%206 = load i8, i8* %205
%207 = sext i8 %206 to i32
%208 = icmp eq i32 %207, 66
br i1 %208, label %209, label %280
209: ; preds = %204
%210 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%211 = load i8, i8* %210
%212 = sext i8 %211 to i32
%213 = icmp eq i32 %212, 73
br i1 %213, label %214, label %280
214: ; preds = %209
%215 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%216 = load i8, i8* %215
%217 = sext i8 %216 to i32
%218 = icmp eq i32 %217, 65
br i1 %218, label %219, label %280
219: ; preds = %214
%220 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%221 = load i8, i8* %220
%222 = sext i8 %221 to i32
%223 = icmp eq i32 %222, 83
br i1 %223, label %224, label %280
224: ; preds = %219
%225 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 4
%226 = load i8, i8* %225
%227 = sext i8 %226 to i32
%228 = icmp eq i32 %227, 32
br i1 %228, label %229, label %280
229: ; preds = %224
%230 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%231 = getelementptr inbounds i8, i8* %230, i64 5
store i8* %231, i8** %4
br label %232
232: ; preds = %237, %229
%233 = load i8*, i8** %4
%234 = load i8, i8* %233
%235 = call i64 @isspace(i8 signext %234)
%236 = icmp ne i64 %235, 0
br i1 %236, label %237, label %240
237: ; preds = %232
%238 = load i8*, i8** %4
%239 = getelementptr inbounds i8, i8* %238, i32 1
store i8* %239, i8** %4
br label %232
240: ; preds = %232
%241 = load i8*, i8** %4
%242 = load i8, i8* %241
%243 = call i64 @isxdigit(i8 signext %242)
%244 = icmp ne i64 %243, 0
br i1 %244, label %249, label %245
245: ; preds = %240
%246 = load i32, i32* @stderr
%247 = load i32, i32* %5
%248 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %246, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0), i32 %247)
br label %12
249: ; preds = %240
%250 = load i8*, i8** %4
%251 = call i32 @strtoul(i8* %250, i8** %4, i32 16)
store i32 %251, i32* %11
br label %252
252: ; preds = %257, %249
%253 = load i8*, i8** %4
%254 = load i8, i8* %253
%255 = call i64 @isspace(i8 signext %254)
%256 = icmp ne i64 %255, 0
br i1 %256, label %257, label %260
257: ; preds = %252
%258 = load i8*, i8** %4
%259 = getelementptr inbounds i8, i8* %258, i32 1
store i8* %259, i8** %4
br label %252
260: ; preds = %252
%261 = load i8*, i8** %4
%262 = load i8, i8* %261
%263 = icmp ne i8 %262, 0
br i1 %263, label %268, label %264
264: ; preds = %260
%265 = load i32, i32* @stderr
%266 = load i32, i32* %5
%267 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %265, i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.4, i64 0, i64 0), i32 %266)
br label %12
268: ; preds = %260
%269 = load i8*, i8** %4
%270 = load i32, i32* %11
%271 = call i64 @new_bias(i8* %269, i32 %270)
%272 = icmp ne i64 %271, 0
br i1 %272, label %273, label %279
273: ; preds = %268
%274 = load i32, i32* @stderr
%275 = load i32, i32* %5
%276 = load i32, i32* %11
%277 = load i8*, i8** %4
%278 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %274, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.5, i64 0, i64 0), i32 %275, i32 %276, i8* %277)
br label %279
279: ; preds = %273, %268
br label %12
280: ; preds = %224, %219, %214, %209, %204
%281 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%282 = load i8, i8* %281
%283 = sext i8 %282 to i32
%284 = icmp eq i32 %283, 76
br i1 %284, label %285, label %342
285: ; preds = %280
%286 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%287 = load i8, i8* %286
%288 = sext i8 %287 to i32
%289 = icmp eq i32 %288, 32
br i1 %289, label %290, label %342
290: ; preds = %285
%291 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%292 = getelementptr inbounds i8, i8* %291, i64 2
store i8* %292, i8** %4
br label %293
293: ; preds = %298, %290
%294 = load i8*, i8** %4
%295 = load i8, i8* %294
%296 = call i64 @isspace(i8 signext %295)
%297 = icmp ne i64 %296, 0
br i1 %297, label %298, label %301
298: ; preds = %293
%299 = load i8*, i8** %4
%300 = getelementptr inbounds i8, i8* %299, i32 1
store i8* %300, i8** %4
br label %293
301: ; preds = %293
%302 = load i8*, i8** %4
%303 = load i8, i8* %302
%304 = call i64 @isxdigit(i8 signext %303)
%305 = icmp ne i64 %304, 0
br i1 %305, label %310, label %306
306: ; preds = %301
%307 = load i32, i32* @stderr
%308 = load i32, i32* %5
%309 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %307, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 %308)
br label %12
310: ; preds = %301
%311 = load i8*, i8** %4
%312 = call i32 @strtoul(i8* %311, i8** %4, i32 16)
store i32 %312, i32* %11
br label %313
313: ; preds = %318, %310
%314 = load i8*, i8** %4
%315 = load i8, i8* %314
%316 = call i64 @isspace(i8 signext %315)
%317 = icmp ne i64 %316, 0
br i1 %317, label %318, label %321
318: ; preds = %313
%319 = load i8*, i8** %4
%320 = getelementptr inbounds i8, i8* %319, i32 1
store i8* %320, i8** %4
br label %313
321: ; preds = %313
%322 = load i8*, i8** %4
%323 = load i8, i8* %322
%324 = icmp ne i8 %323, 0
br i1 %324, label %329, label %325
325: ; preds = %321
%326 = load i32, i32* @stderr
%327 = load i32, i32* %5
%328 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %326, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i32 %327)
br label %12
329: ; preds = %321
%330 = load i8*, i8** %4
%331 = load i32, i32* %11
%332 = call i64 @new_langid(i8* %330, i32 %331)
%333 = icmp ne i64 %332, 0
br i1 %333, label %334, label %340
334: ; preds = %329
%335 = load i32, i32* @stderr
%336 = load i32, i32* %5
%337 = load i32, i32* %11
%338 = load i8*, i8** %4
%339 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %335, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.7, i64 0, i64 0), i32 %336, i32 %337, i8* %338)
br label %340
340: ; preds = %334, %329
store i32 -1, i32* %8
store i32 -1, i32* %6
store i32 -1, i32* %7
store i32 -1, i32* %9
%341 = load i32, i32* %11
store i32 %341, i32* %10
br label %12
342: ; preds = %285, %280
%343 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%344 = load i8, i8* %343
%345 = sext i8 %344 to i32
%346 = icmp eq i32 %345, 67
br i1 %346, label %347, label %404
347: ; preds = %342
%348 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%349 = load i8, i8* %348
%350 = sext i8 %349 to i32
%351 = icmp eq i32 %350, 32
br i1 %351, label %352, label %404
352: ; preds = %347
%353 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%354 = getelementptr inbounds i8, i8* %353, i64 2
store i8* %354, i8** %4
br label %355
355: ; preds = %360, %352
%356 = load i8*, i8** %4
%357 = load i8, i8* %356
%358 = call i64 @isspace(i8 signext %357)
%359 = icmp ne i64 %358, 0
br i1 %359, label %360, label %363
360: ; preds = %355
%361 = load i8*, i8** %4
%362 = getelementptr inbounds i8, i8* %361, i32 1
store i8* %362, i8** %4
br label %355
363: ; preds = %355
%364 = load i8*, i8** %4
%365 = load i8, i8* %364
%366 = call i64 @isxdigit(i8 signext %365)
%367 = icmp ne i64 %366, 0
br i1 %367, label %372, label %368
368: ; preds = %363
%369 = load i32, i32* @stderr
%370 = load i32, i32* %5
%371 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %369, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0), i32 %370)
br label %12
372: ; preds = %363
%373 = load i8*, i8** %4
%374 = call i32 @strtoul(i8* %373, i8** %4, i32 16)
store i32 %374, i32* %11
br label %375
375: ; preds = %380, %372
%376 = load i8*, i8** %4
%377 = load i8, i8* %376
%378 = call i64 @isspace(i8 signext %377)
%379 = icmp ne i64 %378, 0
br i1 %379, label %380, label %383
380: ; preds = %375
%381 = load i8*, i8** %4
%382 = getelementptr inbounds i8, i8* %381, i32 1
store i8* %382, i8** %4
br label %375
383: ; preds = %375
%384 = load i8*, i8** %4
%385 = load i8, i8* %384
%386 = icmp ne i8 %385, 0
br i1 %386, label %391, label %387
387: ; preds = %383
%388 = load i32, i32* @stderr
%389 = load i32, i32* %5
%390 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %388, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.8, i64 0, i64 0), i32 %389)
br label %12
391: ; preds = %383
%392 = load i8*, i8** %4
%393 = load i32, i32* %11
%394 = call i64 @new_class(i8* %392, i32 %393)
%395 = icmp ne i64 %394, 0
br i1 %395, label %396, label %402
396: ; preds = %391
%397 = load i32, i32* @stderr
%398 = load i32, i32* %5
%399 = load i32, i32* %11
%400 = load i8*, i8** %4
%401 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %397, i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.9, i64 0, i64 0), i32 %398, i32 %399, i8* %400)
br label %402
402: ; preds = %396, %391
store i32 -1, i32* %8
store i32 -1, i32* %6
store i32 -1, i32* %10
store i32 -1, i32* %9
%403 = load i32, i32* %11
store i32 %403, i32* %7
br label %12
404: ; preds = %347, %342
%405 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%406 = load i8, i8* %405
%407 = sext i8 %406 to i32
%408 = icmp eq i32 %407, 65
br i1 %408, label %409, label %470
409: ; preds = %404
%410 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%411 = load i8, i8* %410
%412 = sext i8 %411 to i32
%413 = icmp eq i32 %412, 84
br i1 %413, label %414, label %470
414: ; preds = %409
%415 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%416 = load i8, i8* %415
%417 = call i64 @isspace(i8 signext %416)
%418 = icmp ne i64 %417, 0
br i1 %418, label %419, label %470
419: ; preds = %414
%420 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%421 = getelementptr inbounds i8, i8* %420, i64 3
store i8* %421, i8** %4
br label %422
422: ; preds = %427, %419
%423 = load i8*, i8** %4
%424 = load i8, i8* %423
%425 = call i64 @isspace(i8 signext %424)
%426 = icmp ne i64 %425, 0
br i1 %426, label %427, label %430
427: ; preds = %422
%428 = load i8*, i8** %4
%429 = getelementptr inbounds i8, i8* %428, i32 1
store i8* %429, i8** %4
br label %422
430: ; preds = %422
%431 = load i8*, i8** %4
%432 = load i8, i8* %431
%433 = call i64 @isxdigit(i8 signext %432)
%434 = icmp ne i64 %433, 0
br i1 %434, label %439, label %435
435: ; preds = %430
%436 = load i32, i32* @stderr
%437 = load i32, i32* %5
%438 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %436, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i32 %437)
br label %12
439: ; preds = %430
%440 = load i8*, i8** %4
%441 = call i32 @strtoul(i8* %440, i8** %4, i32 16)
store i32 %441, i32* %11
br label %442
442: ; preds = %447, %439
%443 = load i8*, i8** %4
%444 = load i8, i8* %443
%445 = call i64 @isspace(i8 signext %444)
%446 = icmp ne i64 %445, 0
br i1 %446, label %447, label %450
447: ; preds = %442
%448 = load i8*, i8** %4
%449 = getelementptr inbounds i8, i8* %448, i32 1
store i8* %449, i8** %4
br label %442
450: ; preds = %442
%451 = load i8*, i8** %4
%452 = load i8, i8* %451
%453 = icmp ne i8 %452, 0
br i1 %453, label %458, label %454
454: ; preds = %450
%455 = load i32, i32* @stderr
%456 = load i32, i32* %5
%457 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %455, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i32 %456)
br label %12
458: ; preds = %450
%459 = load i8*, i8** %4
%460 = load i32, i32* %11
%461 = call i64 @new_audioterminal(i8* %459, i32 %460)
%462 = icmp ne i64 %461, 0
br i1 %462, label %463, label %469
463: ; preds = %458
%464 = load i32, i32* @stderr
%465 = load i32, i32* %5
%466 = load i32, i32* %11
%467 = load i8*, i8** %4
%468 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %464, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.11, i64 0, i64 0), i32 %465, i32 %466, i8* %467)
br label %469
469: ; preds = %463, %458
br label %12
470: ; preds = %414, %409, %404
%471 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%472 = load i8, i8* %471
%473 = sext i8 %472 to i32
%474 = icmp eq i32 %473, 72
br i1 %474, label %475, label %541
475: ; preds = %470
%476 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%477 = load i8, i8* %476
%478 = sext i8 %477 to i32
%479 = icmp eq i32 %478, 67
br i1 %479, label %480, label %541
480: ; preds = %475
%481 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%482 = load i8, i8* %481
%483 = sext i8 %482 to i32
%484 = icmp eq i32 %483, 67
br i1 %484, label %485, label %541
485: ; preds = %480
%486 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%487 = load i8, i8* %486
%488 = call i64 @isspace(i8 signext %487)
%489 = icmp ne i64 %488, 0
br i1 %489, label %490, label %541
490: ; preds = %485
%491 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%492 = getelementptr inbounds i8, i8* %491, i64 3
store i8* %492, i8** %4
br label %493
493: ; preds = %498, %490
%494 = load i8*, i8** %4
%495 = load i8, i8* %494
%496 = call i64 @isspace(i8 signext %495)
%497 = icmp ne i64 %496, 0
br i1 %497, label %498, label %501
498: ; preds = %493
%499 = load i8*, i8** %4
%500 = getelementptr inbounds i8, i8* %499, i32 1
store i8* %500, i8** %4
br label %493
501: ; preds = %493
%502 = load i8*, i8** %4
%503 = load i8, i8* %502
%504 = call i64 @isxdigit(i8 signext %503)
%505 = icmp ne i64 %504, 0
br i1 %505, label %510, label %506
506: ; preds = %501
%507 = load i32, i32* @stderr
%508 = load i32, i32* %5
%509 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %507, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i32 %508)
br label %12
510: ; preds = %501
%511 = load i8*, i8** %4
%512 = call i32 @strtoul(i8* %511, i8** %4, i32 10)
store i32 %512, i32* %11
br label %513
513: ; preds = %518, %510
%514 = load i8*, i8** %4
%515 = load i8, i8* %514
%516 = call i64 @isspace(i8 signext %515)
%517 = icmp ne i64 %516, 0
br i1 %517, label %518, label %521
518: ; preds = %513
%519 = load i8*, i8** %4
%520 = getelementptr inbounds i8, i8* %519, i32 1
store i8* %520, i8** %4
br label %513
521: ; preds = %513
%522 = load i8*, i8** %4
%523 = load i8, i8* %522
%524 = icmp ne i8 %523, 0
br i1 %524, label %529, label %525
525: ; preds = %521
%526 = load i32, i32* @stderr
%527 = load i32, i32* %5
%528 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %526, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i32 %527)
br label %12
529: ; preds = %521
%530 = load i8*, i8** %4
%531 = load i32, i32* %11
%532 = call i64 @new_countrycode(i8* %530, i32 %531)
%533 = icmp ne i64 %532, 0
br i1 %533, label %534, label %540
534: ; preds = %529
%535 = load i32, i32* @stderr
%536 = load i32, i32* %5
%537 = load i32, i32* %11
%538 = load i8*, i8** %4
%539 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %535, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.13, i64 0, i64 0), i32 %536, i32 %537, i8* %538)
br label %540
540: ; preds = %534, %529
br label %12
541: ; preds = %485, %480, %475, %470
%542 = load i8*, i8** %4
%543 = load i8, i8* %542
%544 = call i64 @isxdigit(i8 signext %543)
%545 = icmp ne i64 %544, 0
br i1 %545, label %546, label %578
546: ; preds = %541
%547 = load i8*, i8** %4
%548 = call i32 @strtoul(i8* %547, i8** %4, i32 16)
store i32 %548, i32* %11
br label %549
549: ; preds = %554, %546
%550 = load i8*, i8** %4
%551 = load i8, i8* %550
%552 = call i64 @isspace(i8 signext %551)
%553 = icmp ne i64 %552, 0
br i1 %553, label %554, label %557
554: ; preds = %549
%555 = load i8*, i8** %4
%556 = getelementptr inbounds i8, i8* %555, i32 1
store i8* %556, i8** %4
br label %549
557: ; preds = %549
%558 = load i8*, i8** %4
%559 = load i8, i8* %558
%560 = icmp ne i8 %559, 0
br i1 %560, label %565, label %561
561: ; preds = %557
%562 = load i32, i32* @stderr
%563 = load i32, i32* %5
%564 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %562, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.14, i64 0, i64 0), i32 %563)
br label %12
565: ; preds = %557
%566 = load i8*, i8** %4
%567 = load i32, i32* %11
%568 = call i64 @new_vendor(i8* %566, i32 %567)
%569 = icmp ne i64 %568, 0
br i1 %569, label %570, label %576
570: ; preds = %565
%571 = load i32, i32* @stderr
%572 = load i32, i32* %5
%573 = load i32, i32* %11
%574 = load i8*, i8** %4
%575 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %571, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0), i32 %572, i32 %573, i8* %574)
br label %576
576: ; preds = %570, %565
%577 = load i32, i32* %11
store i32 %577, 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
578: ; preds = %541
%579 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%580 = load i8, i8* %579
%581 = sext i8 %580 to i32
%582 = icmp eq i32 %581, 9
br i1 %582, label %583, label %679
583: ; preds = %578
%584 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%585 = load i8, i8* %584
%586 = call i64 @isxdigit(i8 signext %585)
%587 = icmp ne i64 %586, 0
br i1 %587, label %588, label %679
588: ; preds = %583
%589 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%590 = getelementptr inbounds i8, i8* %589, i64 1
%591 = call i32 @strtoul(i8* %590, i8** %4, i32 16)
store i32 %591, i32* %11
br label %592
592: ; preds = %597, %588
%593 = load i8*, i8** %4
%594 = load i8, i8* %593
%595 = call i64 @isspace(i8 signext %594)
%596 = icmp ne i64 %595, 0
br i1 %596, label %597, label %600
597: ; preds = %592
%598 = load i8*, i8** %4
%599 = getelementptr inbounds i8, i8* %598, i32 1
store i8* %599, i8** %4
br label %592
600: ; preds = %592
%601 = load i8*, i8** %4
%602 = load i8, i8* %601
%603 = icmp ne i8 %602, 0
br i1 %603, label %608, label %604
604: ; preds = %600
%605 = load i32, i32* @stderr
%606 = load i32, i32* %5
%607 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %605, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.16, i64 0, i64 0), i32 %606)
br label %12
608: ; preds = %600
%609 = load i32, i32* %6
%610 = icmp ne i32 %609, -1
br i1 %610, label %611, label %625
611: ; preds = %608
%612 = load i8*, i8** %4
%613 = load i32, i32* %6
%614 = load i32, i32* %11
%615 = call i64 @new_product(i8* %612, i32 %613, i32 %614)
%616 = icmp ne i64 %615, 0
br i1 %616, label %617, label %624
617: ; preds = %611
%618 = load i32, i32* @stderr
%619 = load i32, i32* %5
%620 = load i32, i32* %6
%621 = load i32, i32* %11
%622 = load i8*, i8** %4
%623 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %618, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.17, i64 0, i64 0), i32 %619, i32 %620, i32 %621, i8* %622)
br label %624
624: ; preds = %617, %611
br label %12
625: ; preds = %608
%626 = load i32, i32* %7
%627 = icmp ne i32 %626, -1
br i1 %627, label %628, label %643
628: ; preds = %625
%629 = load i8*, i8** %4
%630 = load i32, i32* %7
%631 = load i32, i32* %11
%632 = call i64 @new_subclass(i8* %629, i32 %630, i32 %631)
%633 = icmp ne i64 %632, 0
br i1 %633, label %634, label %641
634: ; preds = %628
%635 = load i32, i32* @stderr
%636 = load i32, i32* %5
%637 = load i32, i32* %7
%638 = load i32, i32* %11
%639 = load i8*, i8** %4
%640 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %635, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.18, i64 0, i64 0), i32 %636, i32 %637, i32 %638, i8* %639)
br label %641
641: ; preds = %634, %628
%642 = load i32, i32* %11
store i32 %642, i32* %8
br label %12
643: ; preds = %625
%644 = load i32, i32* %9
%645 = icmp ne i32 %644, -1
br i1 %645, label %646, label %659
646: ; preds = %643
%647 = load i8*, i8** %4
%648 = load i32, i32* %9
%649 = shl i32 %648, 16
%650 = load i32, i32* %11
%651 = add i32 %649, %650
%652 = call i64 @new_hutus(i8* %647, i32 %651)
%653 = icmp ne i64 %652, 0
br i1 %653, label %654, label %658
654: ; preds = %646
%655 = load i32, i32* @stderr
%656 = load i32, i32* %5
%657 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %655, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.19, i64 0, i64 0), i32 %656)
br label %658
658: ; preds = %654, %646
br label %12
659: ; preds = %643
%660 = load i32, i32* %10
%661 = icmp ne i32 %660, -1
br i1 %661, label %662, label %675
662: ; preds = %659
%663 = load i8*, i8** %4
%664 = load i32, i32* %10
%665 = load i32, i32* %11
%666 = shl i32 %665, 10
%667 = add i32 %664, %666
%668 = call i64 @new_langid(i8* %663, i32 %667)
%669 = icmp ne i64 %668, 0
br i1 %669, label %670, label %674
670: ; preds = %662
%671 = load i32, i32* @stderr
%672 = load i32, i32* %5
%673 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %671, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.20, i64 0, i64 0), i32 %672)
br label %674
674: ; preds = %670, %662
br label %12
675: ; preds = %659
%676 = load i32, i32* @stderr
%677 = load i32, i32* %5
%678 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %676, i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.21, i64 0, i64 0), i32 %677)
br label %12
679: ; preds = %583, %578
%680 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%681 = load i8, i8* %680
%682 = sext i8 %681 to i32
%683 = icmp eq i32 %682, 9
br i1 %683, label %684, label %740
684: ; preds = %679
%685 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%686 = load i8, i8* %685
%687 = sext i8 %686 to i32
%688 = icmp eq i32 %687, 9
br i1 %688, label %689, label %740
689: ; preds = %684
%690 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%691 = load i8, i8* %690
%692 = call i64 @isxdigit(i8 signext %691)
%693 = icmp ne i64 %692, 0
br i1 %693, label %694, label %740
694: ; preds = %689
%695 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%696 = getelementptr inbounds i8, i8* %695, i64 2
%697 = call i32 @strtoul(i8* %696, i8** %4, i32 16)
store i32 %697, i32* %11
br label %698
698: ; preds = %703, %694
%699 = load i8*, i8** %4
%700 = load i8, i8* %699
%701 = call i64 @isspace(i8 signext %700)
%702 = icmp ne i64 %701, 0
br i1 %702, label %703, label %706
703: ; preds = %698
%704 = load i8*, i8** %4
%705 = getelementptr inbounds i8, i8* %704, i32 1
store i8* %705, i8** %4
br label %698
706: ; preds = %698
%707 = load i8*, i8** %4
%708 = load i8, i8* %707
%709 = icmp ne i8 %708, 0
br i1 %709, label %714, label %710
710: ; preds = %706
%711 = load i32, i32* @stderr
%712 = load i32, i32* %5
%713 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %711, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.22, i64 0, i64 0), i32 %712)
br label %12
714: ; preds = %706
%715 = load i32, i32* %7
%716 = icmp ne i32 %715, -1
br i1 %716, label %717, label %736
717: ; preds = %714
%718 = load i32, i32* %8
%719 = icmp ne i32 %718, -1
br i1 %719, label %720, label %736
720: ; preds = %717
%721 = load i8*, i8** %4
%722 = load i32, i32* %7
%723 = load i32, i32* %8
%724 = load i32, i32* %11
%725 = call i64 @new_protocol(i8* %721, i32 %722, i32 %723, i32 %724)
%726 = icmp ne i64 %725, 0
br i1 %726, label %727, label %735
727: ; preds = %720
%728 = load i32, i32* @stderr
%729 = load i32, i32* %5
%730 = load i32, i32* %7
%731 = load i32, i32* %8
%732 = load i32, i32* %11
%733 = load i8*, i8** %4
%734 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %728, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.23, i64 0, i64 0), i32 %729, i32 %730, i32 %731, i32 %732, i8* %733)
br label %735
735: ; preds = %727, %720
br label %12
736: ; preds = %717, %714
%737 = load i32, i32* @stderr
%738 = load i32, i32* %5
%739 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %737, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.24, i64 0, i64 0), i32 %738)
br label %12
740: ; preds = %689, %684, %679
%741 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%742 = load i8, i8* %741
%743 = sext i8 %742 to i32
%744 = icmp eq i32 %743, 72
br i1 %744, label %745, label %811
745: ; preds = %740
%746 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%747 = load i8, i8* %746
%748 = sext i8 %747 to i32
%749 = icmp eq i32 %748, 73
br i1 %749, label %750, label %811
750: ; preds = %745
%751 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%752 = load i8, i8* %751
%753 = sext i8 %752 to i32
%754 = icmp eq i32 %753, 68
br i1 %754, label %755, label %811
755: ; preds = %750
%756 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%757 = load i8, i8* %756
%758 = sext i8 %757 to i32
%759 = icmp eq i32 %758, 32
br i1 %759, label %760, label %811
760: ; preds = %755
%761 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%762 = getelementptr inbounds i8, i8* %761, i64 4
store i8* %762, i8** %4
br label %763
763: ; preds = %768, %760
%764 = load i8*, i8** %4
%765 = load i8, i8* %764
%766 = call i64 @isspace(i8 signext %765)
%767 = icmp ne i64 %766, 0
br i1 %767, label %768, label %771
768: ; preds = %763
%769 = load i8*, i8** %4
%770 = getelementptr inbounds i8, i8* %769, i32 1
store i8* %770, i8** %4
br label %763
771: ; preds = %763
%772 = load i8*, i8** %4
%773 = load i8, i8* %772
%774 = call i64 @isxdigit(i8 signext %773)
%775 = icmp ne i64 %774, 0
br i1 %775, label %780, label %776
776: ; preds = %771
%777 = load i32, i32* @stderr
%778 = load i32, i32* %5
%779 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %777, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0), i32 %778)
br label %12
780: ; preds = %771
%781 = load i8*, i8** %4
%782 = call i32 @strtoul(i8* %781, i8** %4, i32 16)
store i32 %782, i32* %11
br label %783
783: ; preds = %788, %780
%784 = load i8*, i8** %4
%785 = load i8, i8* %784
%786 = call i64 @isspace(i8 signext %785)
%787 = icmp ne i64 %786, 0
br i1 %787, label %788, label %791
788: ; preds = %783
%789 = load i8*, i8** %4
%790 = getelementptr inbounds i8, i8* %789, i32 1
store i8* %790, i8** %4
br label %783
791: ; preds = %783
%792 = load i8*, i8** %4
%793 = load i8, i8* %792
%794 = icmp ne i8 %793, 0
br i1 %794, label %799, label %795
795: ; preds = %791
%796 = load i32, i32* @stderr
%797 = load i32, i32* %5
%798 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %796, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0), i32 %797)
br label %12
799: ; preds = %791
%800 = load i8*, i8** %4
%801 = load i32, i32* %11
%802 = call i64 @new_hid(i8* %800, i32 %801)
%803 = icmp ne i64 %802, 0
br i1 %803, label %804, label %810
804: ; preds = %799
%805 = load i32, i32* @stderr
%806 = load i32, i32* %5
%807 = load i32, i32* %11
%808 = load i8*, i8** %4
%809 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %805, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.26, i64 0, i64 0), i32 %806, i32 %807, i8* %808)
br label %810
810: ; preds = %804, %799
br label %12
811: ; preds = %755, %750, %745, %740
%812 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%813 = load i8, i8* %812
%814 = sext i8 %813 to i32
%815 = icmp eq i32 %814, 72
br i1 %815, label %816, label %883
816: ; preds = %811
%817 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%818 = load i8, i8* %817
%819 = sext i8 %818 to i32
%820 = icmp eq i32 %819, 85
br i1 %820, label %821, label %883
821: ; preds = %816
%822 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%823 = load i8, i8* %822
%824 = sext i8 %823 to i32
%825 = icmp eq i32 %824, 84
br i1 %825, label %826, label %883
826: ; preds = %821
%827 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%828 = load i8, i8* %827
%829 = sext i8 %828 to i32
%830 = icmp eq i32 %829, 32
br i1 %830, label %831, label %883
831: ; preds = %826
%832 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%833 = getelementptr inbounds i8, i8* %832, i64 4
store i8* %833, i8** %4
br label %834
834: ; preds = %839, %831
%835 = load i8*, i8** %4
%836 = load i8, i8* %835
%837 = call i64 @isspace(i8 signext %836)
%838 = icmp ne i64 %837, 0
br i1 %838, label %839, label %842
839: ; preds = %834
%840 = load i8*, i8** %4
%841 = getelementptr inbounds i8, i8* %840, i32 1
store i8* %841, i8** %4
br label %834
842: ; preds = %834
%843 = load i8*, i8** %4
%844 = load i8, i8* %843
%845 = call i64 @isxdigit(i8 signext %844)
%846 = icmp ne i64 %845, 0
br i1 %846, label %851, label %847
847: ; preds = %842
%848 = load i32, i32* @stderr
%849 = load i32, i32* %5
%850 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %848, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %849)
br label %12
851: ; preds = %842
%852 = load i8*, i8** %4
%853 = call i32 @strtoul(i8* %852, i8** %4, i32 16)
store i32 %853, i32* %11
br label %854
854: ; preds = %859, %851
%855 = load i8*, i8** %4
%856 = load i8, i8* %855
%857 = call i64 @isspace(i8 signext %856)
%858 = icmp ne i64 %857, 0
br i1 %858, label %859, label %862
859: ; preds = %854
%860 = load i8*, i8** %4
%861 = getelementptr inbounds i8, i8* %860, i32 1
store i8* %861, i8** %4
br label %854
862: ; preds = %854
%863 = load i8*, i8** %4
%864 = load i8, i8* %863
%865 = icmp ne i8 %864, 0
br i1 %865, label %870, label %866
866: ; preds = %862
%867 = load i32, i32* @stderr
%868 = load i32, i32* %5
%869 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %867, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %868)
br label %12
870: ; preds = %862
%871 = load i8*, i8** %4
%872 = load i32, i32* %11
%873 = call i64 @new_huts(i8* %871, i32 %872)
%874 = icmp ne i64 %873, 0
br i1 %874, label %875, label %881
875: ; preds = %870
%876 = load i32, i32* @stderr
%877 = load i32, i32* %5
%878 = load i32, i32* %11
%879 = load i8*, i8** %4
%880 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %876, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 %877, i32 %878, i8* %879)
br label %881
881: ; preds = %875, %870
store i32 -1, i32* %8
store i32 -1, i32* %6
store i32 -1, i32* %7
store i32 -1, i32* %10
%882 = load i32, i32* %11
store i32 %882, i32* %9
br label %12
883: ; preds = %826, %821, %816, %811
%884 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%885 = load i8, i8* %884
%886 = sext i8 %885 to i32
%887 = icmp eq i32 %886, 82
br i1 %887, label %888, label %944
888: ; preds = %883
%889 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%890 = load i8, i8* %889
%891 = sext i8 %890 to i32
%892 = icmp eq i32 %891, 32
br i1 %892, label %893, label %944
893: ; preds = %888
%894 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%895 = getelementptr inbounds i8, i8* %894, i64 2
store i8* %895, i8** %4
br label %896
896: ; preds = %901, %893
%897 = load i8*, i8** %4
%898 = load i8, i8* %897
%899 = call i64 @isspace(i8 signext %898)
%900 = icmp ne i64 %899, 0
br i1 %900, label %901, label %904
901: ; preds = %896
%902 = load i8*, i8** %4
%903 = getelementptr inbounds i8, i8* %902, i32 1
store i8* %903, i8** %4
br label %896
904: ; preds = %896
%905 = load i8*, i8** %4
%906 = load i8, i8* %905
%907 = call i64 @isxdigit(i8 signext %906)
%908 = icmp ne i64 %907, 0
br i1 %908, label %913, label %909
909: ; preds = %904
%910 = load i32, i32* @stderr
%911 = load i32, i32* %5
%912 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %910, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.29, i64 0, i64 0), i32 %911)
br label %12
913: ; preds = %904
%914 = load i8*, i8** %4
%915 = call i32 @strtoul(i8* %914, i8** %4, i32 16)
store i32 %915, i32* %11
br label %916
916: ; preds = %921, %913
%917 = load i8*, i8** %4
%918 = load i8, i8* %917
%919 = call i64 @isspace(i8 signext %918)
%920 = icmp ne i64 %919, 0
br i1 %920, label %921, label %924
921: ; preds = %916
%922 = load i8*, i8** %4
%923 = getelementptr inbounds i8, i8* %922, i32 1
store i8* %923, i8** %4
br label %916
924: ; preds = %916
%925 = load i8*, i8** %4
%926 = load i8, i8* %925
%927 = icmp ne i8 %926, 0
br i1 %927, label %932, label %928
928: ; preds = %924
%929 = load i32, i32* @stderr
%930 = load i32, i32* %5
%931 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %929, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.29, i64 0, i64 0), i32 %930)
br label %12
932: ; preds = %924
%933 = load i8*, i8** %4
%934 = load i32, i32* %11
%935 = call i64 @new_reporttag(i8* %933, i32 %934)
%936 = icmp ne i64 %935, 0
br i1 %936, label %937, label %943
937: ; preds = %932
%938 = load i32, i32* @stderr
%939 = load i32, i32* %5
%940 = load i32, i32* %11
%941 = load i8*, i8** %4
%942 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %938, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.30, i64 0, i64 0), i32 %939, i32 %940, i8* %941)
br label %943
943: ; preds = %937, %932
br label %12
944: ; preds = %888, %883
%945 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%946 = load i8, i8* %945
%947 = sext i8 %946 to i32
%948 = icmp eq i32 %947, 86
br i1 %948, label %949, label %955
949: ; preds = %944
%950 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%951 = load i8, i8* %950
%952 = sext i8 %951 to i32
%953 = icmp eq i32 %952, 84
br i1 %953, label %954, label %955
954: ; preds = %949
br label %12
955: ; preds = %949, %944
%956 = load i32, i32* @stderr
%957 = load i32, i32* %5
%958 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %956, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.31, i64 0, i64 0), i32 %957)
br label %12
959: ; 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 = [37 x i8] c"Invalid HID country code at line %u\0A\00"
@.str.13 = [55 x i8] c"Duplicate HID country code at line %u country %02u %s\0A\00"
@.str.14 = [32 x i8] c"Invalid vendor spec at line %u\0A\00"
@.str.15 = [49 x i8] c"Duplicate vendor spec at line %u vendor %04x %s\0A\00"
@.str.16 = [42 x i8] c"Invalid product/subclass spec at line %u\0A\00"
@.str.17 = [56 x i8] c"Duplicate product spec at line %u product %04x:%04x %s\0A\00"
@.str.18 = [55 x i8] c"Duplicate subclass spec at line %u class %02x:%02x %s\0A\00"
@.str.19 = [37 x i8] c"Duplicate HUT Usage Spec at line %u\0A\00"
@.str.20 = [40 x i8] c"Duplicate LANGID Usage Spec at line %u\0A\00"
@.str.21 = [66 x i8] c"Product/Subclass spec without prior Vendor/Class spec at line %u\0A\00"
@.str.22 = [34 x i8] c"Invalid protocol spec at line %u\0A\00"
@.str.23 = [60 x i8] c"Duplicate protocol spec at line %u class %02x:%02x:%02x %s\0A\00"
@.str.24 = [64 x i8] c"Protocol spec without prior Class and Subclass spec at line %u\0A\00"
@.str.25 = [29 x i8] c"Invalid HID type at line %u\0A\00"
@.str.26 = [58 x i8] c"Duplicate HID type spec at line %u terminal type %04x %s\0A\00"
@.str.27 = [29 x i8] c"Invalid HUT type at line %u\0A\00"
@.str.28 = [58 x i8] c"Duplicate HUT type spec at line %u terminal type %04x %s\0A\00"
@.str.29 = [32 x i8] c"Invalid Report type at line %u\0A\00"
@.str.30 = [61 x i8] c"Duplicate Report type spec at line %u terminal type %04x %s\0A\00"
@.str.31 = [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 %722, 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 = %708, %711, %660, %663, %609, %612, %549, %552, %502, %507, %492, %497, %483, %486, %474, %477, %439, %442, %407, %410, %349, %352, %293, %296, %246, %249, %198, %201, %143, %146, %95, %98, %64, %92, %120, %140, %175, %195, %223, %243, %270, %290, %326, %346, %384, %404, %436, %469, %510, %542, %556, %586, %606, %637, %657, %685, %705, %719, %715, %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, %346 ], [ %21, %326 ], [ %21, %404 ], [ %21, %384 ], [ %21, %436 ], [ -1, %510 ], [ %21, %469 ], [ %21, %556 ], [ %21, %542 ], [ %21, %606 ], [ %21, %586 ], [ %21, %657 ], [ %21, %637 ], [ %21, %705 ], [ %21, %685 ], [ %21, %715 ], [ %21, %719 ], [ %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, %352 ], [ %21, %349 ], [ %21, %410 ], [ %21, %407 ], [ %421, %442 ], [ %421, %439 ], [ %21, %477 ], [ %21, %474 ], [ -1, %486 ], [ -1, %483 ], [ -1, %497 ], [ -1, %492 ], [ -1, %507 ], [ -1, %502 ], [ %21, %552 ], [ %21, %549 ], [ %21, %612 ], [ %21, %609 ], [ -1, %663 ], [ -1, %660 ], [ %21, %711 ], [ %21, %708 ]
%69 = phi i32 [ %20, %92 ], [ %20, %64 ], [ %20, %140 ], [ %20, %120 ], [ %20, %195 ], [ %20, %175 ], [ %20, %243 ], [ %20, %223 ], [ %20, %290 ], [ %20, %270 ], [ %20, %346 ], [ %20, %326 ], [ %20, %404 ], [ %20, %384 ], [ %20, %436 ], [ -1, %510 ], [ %20, %469 ], [ %20, %556 ], [ %20, %542 ], [ %20, %606 ], [ %20, %586 ], [ %20, %657 ], [ %20, %637 ], [ %20, %705 ], [ %20, %685 ], [ %20, %715 ], [ %20, %719 ], [ %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, %352 ], [ %20, %349 ], [ %20, %410 ], [ %20, %407 ], [ -1, %442 ], [ -1, %439 ], [ %20, %477 ], [ %20, %474 ], [ %20, %486 ], [ %20, %483 ], [ -1, %497 ], [ -1, %492 ], [ -1, %507 ], [ -1, %502 ], [ %20, %552 ], [ %20, %549 ], [ %20, %612 ], [ %20, %609 ], [ -1, %663 ], [ -1, %660 ], [ %20, %711 ], [ %20, %708 ]
%70 = phi i32 [ %19, %92 ], [ %19, %64 ], [ %19, %140 ], [ %19, %120 ], [ %19, %195 ], [ %19, %175 ], [ %19, %243 ], [ %19, %223 ], [ %19, %290 ], [ %19, %270 ], [ %19, %346 ], [ %19, %326 ], [ %19, %404 ], [ %19, %384 ], [ %19, %436 ], [ %19, %510 ], [ %19, %469 ], [ %19, %556 ], [ %19, %542 ], [ %19, %606 ], [ %19, %586 ], [ %19, %657 ], [ %19, %637 ], [ %19, %705 ], [ %19, %685 ], [ %19, %715 ], [ %19, %719 ], [ %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, %352 ], [ %19, %349 ], [ %19, %410 ], [ %19, %407 ], [ -1, %442 ], [ -1, %439 ], [ %19, %477 ], [ %19, %474 ], [ %454, %486 ], [ %454, %483 ], [ %19, %497 ], [ %19, %492 ], [ %19, %507 ], [ %19, %502 ], [ %19, %552 ], [ %19, %549 ], [ %19, %612 ], [ %19, %609 ], [ -1, %663 ], [ -1, %660 ], [ %19, %711 ], [ %19, %708 ]
%71 = phi i32 [ %18, %92 ], [ %18, %64 ], [ %18, %140 ], [ %18, %120 ], [ %18, %195 ], [ %18, %175 ], [ %18, %243 ], [ %18, %223 ], [ %18, %290 ], [ %18, %270 ], [ %18, %346 ], [ %18, %326 ], [ %18, %404 ], [ %18, %384 ], [ %18, %436 ], [ -1, %510 ], [ %18, %469 ], [ %18, %556 ], [ %18, %542 ], [ %18, %606 ], [ %18, %586 ], [ %18, %657 ], [ %18, %637 ], [ %18, %705 ], [ %18, %685 ], [ %18, %715 ], [ %18, %719 ], [ %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, %352 ], [ %18, %349 ], [ %18, %410 ], [ %18, %407 ], [ -1, %442 ], [ -1, %439 ], [ %18, %477 ], [ %18, %474 ], [ %18, %486 ], [ %18, %483 ], [ %18, %497 ], [ %18, %492 ], [ -1, %507 ], [ -1, %502 ], [ %18, %552 ], [ %18, %549 ], [ %18, %612 ], [ %18, %609 ], [ %642, %663 ], [ %642, %660 ], [ %18, %711 ], [ %18, %708 ]
%72 = phi i32 [ %17, %92 ], [ %17, %64 ], [ %17, %140 ], [ %17, %120 ], [ %17, %195 ], [ %17, %175 ], [ %17, %243 ], [ %17, %223 ], [ %17, %290 ], [ %17, %270 ], [ %17, %346 ], [ %17, %326 ], [ %17, %404 ], [ %17, %384 ], [ %17, %436 ], [ -1, %510 ], [ %17, %469 ], [ %17, %556 ], [ %17, %542 ], [ %17, %606 ], [ %17, %586 ], [ %17, %657 ], [ %17, %637 ], [ %17, %705 ], [ %17, %685 ], [ %17, %715 ], [ %17, %719 ], [ %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, %352 ], [ %17, %349 ], [ %17, %410 ], [ %17, %407 ], [ -1, %442 ], [ -1, %439 ], [ %17, %477 ], [ %17, %474 ], [ %17, %486 ], [ %17, %483 ], [ %17, %497 ], [ %17, %492 ], [ %17, %507 ], [ %17, %502 ], [ %17, %552 ], [ %17, %549 ], [ %17, %612 ], [ %17, %609 ], [ -1, %663 ], [ -1, %660 ], [ %17, %711 ], [ %17, %708 ]
%73 = call i64 @fgets(i8* %4, i32 512, i32* %0)
%74 = icmp eq i64 %73, 0
br i1 %74, label %722, 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 %356
304: ; preds = %300
%305 = call i64 @isspace(i8 signext %38)
%306 = icmp eq i64 %305, 0
br i1 %306, label %307, label %311
307: ; preds = %304
%308 = load i8, i8* %4
%309 = load i8, i8* %9
%310 = load i8, i8* %10
br label %356
311: ; preds = %304
store i8* %11, i8** %3
%312 = load i8, i8* %11
%313 = call i64 @isspace(i8 signext %312)
%314 = icmp eq i64 %313, 0
br i1 %314, label %321, label %315
315: ; preds = %311, %315
%316 = load i8*, i8** %3
%317 = getelementptr inbounds i8, i8* %316, i64 1
store i8* %317, i8** %3
%318 = load i8, i8* %317
%319 = call i64 @isspace(i8 signext %318)
%320 = icmp eq i64 %319, 0
br i1 %320, label %321, label %315
321: ; preds = %315, %311
%322 = load i8*, i8** %3
%323 = load i8, i8* %322
%324 = call i64 @isxdigit(i8 signext %323)
%325 = icmp eq i64 %324, 0
br i1 %325, label %326, label %329
326: ; preds = %321
%327 = load i32, i32* @stderr
%328 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %327, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i32 %23)
br label %67
329: ; preds = %321
%330 = load i8*, i8** %3
%331 = call i32 @strtoul(i8* %330, i8** %3, i32 16)
%332 = load i8*, i8** %3
%333 = load i8, i8* %332
%334 = call i64 @isspace(i8 signext %333)
%335 = icmp eq i64 %334, 0
br i1 %335, label %342, label %336
336: ; preds = %329, %336
%337 = load i8*, i8** %3
%338 = getelementptr inbounds i8, i8* %337, i64 1
store i8* %338, i8** %3
%339 = load i8, i8* %338
%340 = call i64 @isspace(i8 signext %339)
%341 = icmp eq i64 %340, 0
br i1 %341, label %342, label %336
342: ; preds = %336, %329
%343 = load i8*, i8** %3
%344 = load i8, i8* %343
%345 = icmp eq i8 %344, 0
br i1 %345, label %346, label %349
346: ; preds = %342
%347 = load i32, i32* @stderr
%348 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %347, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.10, i64 0, i64 0), i32 %23)
br label %67
349: ; preds = %342
%350 = call i64 @new_audioterminal(i8* %343, i32 %331)
%351 = icmp eq i64 %350, 0
br i1 %351, label %67, label %352
352: ; preds = %349
%353 = load i32, i32* @stderr
%354 = load i8*, i8** %3
%355 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %353, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.11, i64 0, i64 0), i32 %23, i32 %331, i8* %354)
br label %67
356: ; preds = %307, %300
%357 = phi i8 [ %310, %307 ], [ %38, %300 ]
%358 = phi i8 [ %309, %307 ], [ %35, %300 ]
%359 = phi i8 [ %308, %307 ], [ %32, %300 ]
%360 = icmp eq i8 %359, 72
%361 = icmp eq i8 %358, 67
%362 = select i1 %360, i1 %361, i1 false
%363 = icmp eq i8 %357, 67
%364 = select i1 %362, i1 %363, i1 false
br i1 %364, label %365, label %414
365: ; preds = %356
%366 = load i8, i8* %11
%367 = call i64 @isspace(i8 signext %366)
%368 = icmp eq i64 %367, 0
br i1 %368, label %414, label %369
369: ; preds = %365
store i8* %11, i8** %3
%370 = load i8, i8* %11
%371 = call i64 @isspace(i8 signext %370)
%372 = icmp eq i64 %371, 0
br i1 %372, label %379, label %373
373: ; preds = %369, %373
%374 = load i8*, i8** %3
%375 = getelementptr inbounds i8, i8* %374, i64 1
store i8* %375, i8** %3
%376 = load i8, i8* %375
%377 = call i64 @isspace(i8 signext %376)
%378 = icmp eq i64 %377, 0
br i1 %378, label %379, label %373
379: ; preds = %373, %369
%380 = load i8*, i8** %3
%381 = load i8, i8* %380
%382 = call i64 @isxdigit(i8 signext %381)
%383 = icmp eq i64 %382, 0
br i1 %383, label %384, label %387
384: ; preds = %379
%385 = load i32, i32* @stderr
%386 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %385, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i32 %23)
br label %67
387: ; preds = %379
%388 = load i8*, i8** %3
%389 = call i32 @strtoul(i8* %388, i8** %3, i32 10)
%390 = load i8*, i8** %3
%391 = load i8, i8* %390
%392 = call i64 @isspace(i8 signext %391)
%393 = icmp eq i64 %392, 0
br i1 %393, label %400, label %394
394: ; preds = %387, %394
%395 = load i8*, i8** %3
%396 = getelementptr inbounds i8, i8* %395, i64 1
store i8* %396, i8** %3
%397 = load i8, i8* %396
%398 = call i64 @isspace(i8 signext %397)
%399 = icmp eq i64 %398, 0
br i1 %399, label %400, label %394
400: ; preds = %394, %387
%401 = load i8*, i8** %3
%402 = load i8, i8* %401
%403 = icmp eq i8 %402, 0
br i1 %403, label %404, label %407
404: ; preds = %400
%405 = load i32, i32* @stderr
%406 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %405, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i32 %23)
br label %67
407: ; preds = %400
%408 = call i64 @new_countrycode(i8* %401, i32 %389)
%409 = icmp eq i64 %408, 0
br i1 %409, label %67, label %410
410: ; preds = %407
%411 = load i32, i32* @stderr
%412 = load i8*, i8** %3
%413 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %411, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.13, i64 0, i64 0), i32 %23, i32 %389, i8* %412)
br label %67
414: ; preds = %365, %356
%415 = load i8*, i8** %3
%416 = load i8, i8* %415
%417 = call i64 @isxdigit(i8 signext %416)
%418 = icmp eq i64 %417, 0
br i1 %418, label %446, label %419
419: ; preds = %414
%420 = load i8*, i8** %3
%421 = call i32 @strtoul(i8* %420, i8** %3, i32 16)
%422 = load i8*, i8** %3
%423 = load i8, i8* %422
%424 = call i64 @isspace(i8 signext %423)
%425 = icmp eq i64 %424, 0
br i1 %425, label %432, label %426
426: ; preds = %419, %426
%427 = load i8*, i8** %3
%428 = getelementptr inbounds i8, i8* %427, i64 1
store i8* %428, i8** %3
%429 = load i8, i8* %428
%430 = call i64 @isspace(i8 signext %429)
%431 = icmp eq i64 %430, 0
br i1 %431, label %432, label %426
432: ; preds = %426, %419
%433 = load i8*, i8** %3
%434 = load i8, i8* %433
%435 = icmp eq i8 %434, 0
br i1 %435, label %436, label %439
436: ; preds = %432
%437 = load i32, i32* @stderr
%438 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %437, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.14, i64 0, i64 0), i32 %23)
br label %67
439: ; preds = %432
%440 = call i64 @new_vendor(i8* %433, i32 %421)
%441 = icmp eq i64 %440, 0
br i1 %441, label %67, label %442
442: ; preds = %439
%443 = load i32, i32* @stderr
%444 = load i8*, i8** %3
%445 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %443, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0), i32 %23, i32 %421, i8* %444)
br label %67
446: ; preds = %414
%447 = load i8, i8* %4
%448 = icmp eq i8 %447, 9
%449 = load i8, i8* %9
br i1 %448, label %450, label %559
450: ; preds = %446
%451 = call i64 @isxdigit(i8 signext %449)
%452 = icmp eq i64 %451, 0
br i1 %452, label %513, label %453
453: ; preds = %450
%454 = call i32 @strtoul(i8* %9, i8** %3, i32 16)
%455 = load i8*, i8** %3
%456 = load i8, i8* %455
%457 = call i64 @isspace(i8 signext %456)
%458 = icmp eq i64 %457, 0
br i1 %458, label %465, label %459
459: ; preds = %453, %459
%460 = load i8*, i8** %3
%461 = getelementptr inbounds i8, i8* %460, i64 1
store i8* %461, i8** %3
%462 = load i8, i8* %461
%463 = call i64 @isspace(i8 signext %462)
%464 = icmp eq i64 %463, 0
br i1 %464, label %465, label %459
465: ; preds = %459, %453
%466 = load i8*, i8** %3
%467 = load i8, i8* %466
%468 = icmp eq i8 %467, 0
br i1 %468, label %469, label %472
469: ; preds = %465
%470 = load i32, i32* @stderr
%471 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %470, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.16, i64 0, i64 0), i32 %23)
br label %67
472: ; preds = %465
%473 = icmp eq i32 %21, -1
br i1 %473, label %481, label %474
474: ; preds = %472
%475 = call i64 @new_product(i8* %466, i32 %21, i32 %454)
%476 = icmp eq i64 %475, 0
br i1 %476, label %67, label %477
477: ; preds = %474
%478 = load i32, i32* @stderr
%479 = load i8*, i8** %3
%480 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %478, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.17, i64 0, i64 0), i32 %23, i32 %21, i32 %454, i8* %479)
br label %67
481: ; preds = %472
%482 = icmp eq i32 %20, -1
br i1 %482, label %490, label %483
483: ; preds = %481
%484 = call i64 @new_subclass(i8* %466, i32 %20, i32 %454)
%485 = icmp eq i64 %484, 0
br i1 %485, label %67, label %486
486: ; preds = %483
%487 = load i32, i32* @stderr
%488 = load i8*, i8** %3
%489 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %487, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.18, i64 0, i64 0), i32 %23, i32 %20, i32 %454, i8* %488)
br label %67
490: ; preds = %481
%491 = icmp eq i32 %18, -1
br i1 %491, label %500, label %492
492: ; preds = %490
%493 = shl i32 %18, 16
%494 = add i32 %454, %493
%495 = call i64 @new_hutus(i8* %466, i32 %494)
%496 = icmp eq i64 %495, 0
br i1 %496, label %67, label %497
497: ; preds = %492
%498 = load i32, i32* @stderr
%499 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %498, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.19, i64 0, i64 0), i32 %23)
br label %67
500: ; preds = %490
%501 = icmp eq i32 %17, -1
br i1 %501, label %510, label %502
502: ; preds = %500
%503 = shl i32 %454, 10
%504 = add i32 %503, %17
%505 = call i64 @new_langid(i8* %466, i32 %504)
%506 = icmp eq i64 %505, 0
br i1 %506, label %67, label %507
507: ; preds = %502
%508 = load i32, i32* @stderr
%509 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %508, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.20, i64 0, i64 0), i32 %23)
br label %67
510: ; preds = %500
%511 = load i32, i32* @stderr
%512 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %511, i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.21, i64 0, i64 0), i32 %23)
br label %67
513: ; preds = %450
%514 = load i8, i8* %4
%515 = icmp eq i8 %514, 9
%516 = load i8, i8* %9
%517 = icmp eq i8 %516, 9
%518 = select i1 %515, i1 %517, i1 false
br i1 %518, label %519, label %559
519: ; preds = %513
%520 = load i8, i8* %10
%521 = call i64 @isxdigit(i8 signext %520)
%522 = icmp eq i64 %521, 0
br i1 %522, label %523, label %526
523: ; preds = %519
%524 = load i8, i8* %4
%525 = load i8, i8* %9
br label %559
526: ; preds = %519
%527 = call i32 @strtoul(i8* %10, i8** %3, i32 16)
%528 = load i8*, i8** %3
%529 = load i8, i8* %528
%530 = call i64 @isspace(i8 signext %529)
%531 = icmp eq i64 %530, 0
br i1 %531, label %538, label %532
532: ; preds = %526, %532
%533 = load i8*, i8** %3
%534 = getelementptr inbounds i8, i8* %533, i64 1
store i8* %534, i8** %3
%535 = load i8, i8* %534
%536 = call i64 @isspace(i8 signext %535)
%537 = icmp eq i64 %536, 0
br i1 %537, label %538, label %532
538: ; preds = %532, %526
%539 = load i8*, i8** %3
%540 = load i8, i8* %539
%541 = icmp eq i8 %540, 0
br i1 %541, label %542, label %545
542: ; preds = %538
%543 = load i32, i32* @stderr
%544 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %543, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.22, i64 0, i64 0), i32 %23)
br label %67
545: ; preds = %538
%546 = icmp ne i32 %20, -1
%547 = icmp ne i32 %19, -1
%548 = select i1 %546, i1 %547, i1 false
br i1 %548, label %549, label %556
549: ; preds = %545
%550 = call i64 @new_protocol(i8* %539, i32 %20, i32 %19, i32 %527)
%551 = icmp eq i64 %550, 0
br i1 %551, label %67, label %552
552: ; preds = %549
%553 = load i32, i32* @stderr
%554 = load i8*, i8** %3
%555 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %553, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.23, i64 0, i64 0), i32 %23, i32 %20, i32 %19, i32 %527, i8* %554)
br label %67
556: ; preds = %545
%557 = load i32, i32* @stderr
%558 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %557, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.24, i64 0, i64 0), i32 %23)
br label %67
559: ; preds = %446, %523, %513
%560 = phi i8 [ %525, %523 ], [ %516, %513 ], [ %449, %446 ]
%561 = phi i8 [ %524, %523 ], [ %514, %513 ], [ %447, %446 ]
%562 = icmp eq i8 %561, 72
%563 = icmp eq i8 %560, 73
%564 = select i1 %562, i1 %563, i1 false
%565 = load i8, i8* %10
%566 = icmp eq i8 %565, 68
%567 = select i1 %564, i1 %566, i1 false
%568 = load i8, i8* %11
%569 = icmp eq i8 %568, 32
%570 = select i1 %567, i1 %569, i1 false
br i1 %570, label %571, label %616
571: ; preds = %559
store i8* %12, i8** %3
%572 = load i8, i8* %12
%573 = call i64 @isspace(i8 signext %572)
%574 = icmp eq i64 %573, 0
br i1 %574, label %581, label %575
575: ; preds = %571, %575
%576 = load i8*, i8** %3
%577 = getelementptr inbounds i8, i8* %576, i64 1
store i8* %577, i8** %3
%578 = load i8, i8* %577
%579 = call i64 @isspace(i8 signext %578)
%580 = icmp eq i64 %579, 0
br i1 %580, label %581, label %575
581: ; preds = %575, %571
%582 = load i8*, i8** %3
%583 = load i8, i8* %582
%584 = call i64 @isxdigit(i8 signext %583)
%585 = icmp eq i64 %584, 0
br i1 %585, label %586, label %589
586: ; preds = %581
%587 = load i32, i32* @stderr
%588 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %587, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0), i32 %23)
br label %67
589: ; preds = %581
%590 = load i8*, i8** %3
%591 = call i32 @strtoul(i8* %590, i8** %3, i32 16)
%592 = load i8*, i8** %3
%593 = load i8, i8* %592
%594 = call i64 @isspace(i8 signext %593)
%595 = icmp eq i64 %594, 0
br i1 %595, label %602, label %596
596: ; preds = %589, %596
%597 = load i8*, i8** %3
%598 = getelementptr inbounds i8, i8* %597, i64 1
store i8* %598, i8** %3
%599 = load i8, i8* %598
%600 = call i64 @isspace(i8 signext %599)
%601 = icmp eq i64 %600, 0
br i1 %601, label %602, label %596
602: ; preds = %596, %589
%603 = load i8*, i8** %3
%604 = load i8, i8* %603
%605 = icmp eq i8 %604, 0
br i1 %605, label %606, label %609
606: ; preds = %602
%607 = load i32, i32* @stderr
%608 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %607, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.25, i64 0, i64 0), i32 %23)
br label %67
609: ; preds = %602
%610 = call i64 @new_hid(i8* %603, i32 %591)
%611 = icmp eq i64 %610, 0
br i1 %611, label %67, label %612
612: ; preds = %609
%613 = load i32, i32* @stderr
%614 = load i8*, i8** %3
%615 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %613, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.26, i64 0, i64 0), i32 %23, i32 %591, i8* %614)
br label %67
616: ; preds = %559
%617 = icmp eq i8 %560, 85
%618 = select i1 %562, i1 %617, i1 false
%619 = icmp eq i8 %565, 84
%620 = select i1 %618, i1 %619, i1 false
%621 = select i1 %620, i1 %569, i1 false
br i1 %621, label %622, label %667
622: ; preds = %616
store i8* %12, i8** %3
%623 = load i8, i8* %12
%624 = call i64 @isspace(i8 signext %623)
%625 = icmp eq i64 %624, 0
br i1 %625, label %632, label %626
626: ; preds = %622, %626
%627 = load i8*, i8** %3
%628 = getelementptr inbounds i8, i8* %627, i64 1
store i8* %628, i8** %3
%629 = load i8, i8* %628
%630 = call i64 @isspace(i8 signext %629)
%631 = icmp eq i64 %630, 0
br i1 %631, label %632, label %626
632: ; preds = %626, %622
%633 = load i8*, i8** %3
%634 = load i8, i8* %633
%635 = call i64 @isxdigit(i8 signext %634)
%636 = icmp eq i64 %635, 0
br i1 %636, label %637, label %640
637: ; preds = %632
%638 = load i32, i32* @stderr
%639 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %638, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %23)
br label %67
640: ; preds = %632
%641 = load i8*, i8** %3
%642 = call i32 @strtoul(i8* %641, i8** %3, i32 16)
%643 = load i8*, i8** %3
%644 = load i8, i8* %643
%645 = call i64 @isspace(i8 signext %644)
%646 = icmp eq i64 %645, 0
br i1 %646, label %653, label %647
647: ; preds = %640, %647
%648 = load i8*, i8** %3
%649 = getelementptr inbounds i8, i8* %648, i64 1
store i8* %649, i8** %3
%650 = load i8, i8* %649
%651 = call i64 @isspace(i8 signext %650)
%652 = icmp eq i64 %651, 0
br i1 %652, label %653, label %647
653: ; preds = %647, %640
%654 = load i8*, i8** %3
%655 = load i8, i8* %654
%656 = icmp eq i8 %655, 0
br i1 %656, label %657, label %660
657: ; preds = %653
%658 = load i32, i32* @stderr
%659 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %658, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %23)
br label %67
660: ; preds = %653
%661 = call i64 @new_huts(i8* %654, i32 %642)
%662 = icmp eq i64 %661, 0
br i1 %662, label %67, label %663
663: ; preds = %660
%664 = load i32, i32* @stderr
%665 = load i8*, i8** %3
%666 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %664, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 %23, i32 %642, i8* %665)
br label %67
667: ; preds = %616
%668 = icmp eq i8 %561, 82
%669 = icmp eq i8 %560, 32
%670 = select i1 %668, i1 %669, i1 false
br i1 %670, label %671, label %715
671: ; preds = %667
store i8* %10, i8** %3
%672 = call i64 @isspace(i8 signext %565)
%673 = icmp eq i64 %672, 0
br i1 %673, label %680, label %674
674: ; preds = %671, %674
%675 = load i8*, i8** %3
%676 = getelementptr inbounds i8, i8* %675, i64 1
store i8* %676, i8** %3
%677 = load i8, i8* %676
%678 = call i64 @isspace(i8 signext %677)
%679 = icmp eq i64 %678, 0
br i1 %679, label %680, label %674
680: ; preds = %674, %671
%681 = load i8*, i8** %3
%682 = load i8, i8* %681
%683 = call i64 @isxdigit(i8 signext %682)
%684 = icmp eq i64 %683, 0
br i1 %684, label %685, label %688
685: ; preds = %680
%686 = load i32, i32* @stderr
%687 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %686, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.29, i64 0, i64 0), i32 %23)
br label %67
688: ; preds = %680
%689 = load i8*, i8** %3
%690 = call i32 @strtoul(i8* %689, i8** %3, i32 16)
%691 = load i8*, i8** %3
%692 = load i8, i8* %691
%693 = call i64 @isspace(i8 signext %692)
%694 = icmp eq i64 %693, 0
br i1 %694, label %701, label %695
695: ; preds = %688, %695
%696 = load i8*, i8** %3
%697 = getelementptr inbounds i8, i8* %696, i64 1
store i8* %697, i8** %3
%698 = load i8, i8* %697
%699 = call i64 @isspace(i8 signext %698)
%700 = icmp eq i64 %699, 0
br i1 %700, label %701, label %695
701: ; preds = %695, %688
%702 = load i8*, i8** %3
%703 = load i8, i8* %702
%704 = icmp eq i8 %703, 0
br i1 %704, label %705, label %708
705: ; preds = %701
%706 = load i32, i32* @stderr
%707 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %706, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.29, i64 0, i64 0), i32 %23)
br label %67
708: ; preds = %701
%709 = call i64 @new_reporttag(i8* %702, i32 %690)
%710 = icmp eq i64 %709, 0
br i1 %710, label %67, label %711
711: ; preds = %708
%712 = load i32, i32* @stderr
%713 = load i8*, i8** %3
%714 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %712, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.30, i64 0, i64 0), i32 %23, i32 %690, i8* %713)
br label %67
715: ; preds = %667
%716 = icmp eq i8 %561, 86
%717 = icmp eq i8 %560, 84
%718 = select i1 %716, i1 %717, i1 false
br i1 %718, label %67, label %719
719: ; preds = %715
%720 = load i32, i32* @stderr
%721 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %720, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.31, i64 0, i64 0), i32 %23)
br label %67
722: ; preds = %67, %1
ret void
}