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

/* Forward declarations */

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

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


x86 assembly (clang, -O0):
<parse>:
push   %rbp
mov    %rsp,%rbp
sub    $0x240,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0x21c(%rbp)
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
lea    -0x210(%rbp),%rdi
mov    -0x8(%rbp),%rdx
mov    $0x200,%esi
call   10d0 <fgets@plt>
cmp    $0x0,%rax
je     298c <parse+0x173c>
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     12f5 <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     1321 <parse+0xd1>
mov    -0x218(%rbp),%rax
movb   $0x0,(%rax)
movsbl -0x210(%rbp),%eax
cmp    $0x23,%eax
je     133e <parse+0xee>
cmpb   $0x0,-0x210(%rbp)
jne    1343 <parse+0xf3>
jmp    129b <parse+0x4b>
lea    -0x210(%rbp),%rax
mov    %rax,-0x218(%rbp)
movsbl -0x210(%rbp),%eax
cmp    $0x50,%eax
jne    1519 <parse+0x2c9>
movsbl -0x20f(%rbp),%eax
cmp    $0x48,%eax
jne    1519 <parse+0x2c9>
movsbl -0x20e(%rbp),%eax
cmp    $0x59,%eax
jne    1519 <parse+0x2c9>
movsbl -0x20d(%rbp),%eax
cmp    $0x53,%eax
jne    1519 <parse+0x2c9>
movsbl -0x20c(%rbp),%eax
cmp    $0x44,%eax
jne    1519 <parse+0x2c9>
movsbl -0x20b(%rbp),%eax
cmp    $0x45,%eax
jne    1519 <parse+0x2c9>
movsbl -0x20a(%rbp),%eax
cmp    $0x53,%eax
jne    1519 <parse+0x2c9>
movsbl -0x209(%rbp),%eax
cmp    $0x20,%eax
jne    1519 <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     1413 <parse+0x1c3>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    13e3 <parse+0x193>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    144e <parse+0x1fe>
mov    0x3bad(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1bbe(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     149c <parse+0x24c>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    146c <parse+0x21c>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    14ce <parse+0x27e>
mov    0x3b2d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1b3e(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1040 <new_physdes@plt>
cmp    $0x0,%rax
je     1514 <parse+0x2c4>
mov    0x3aef(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1b14(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x50,%eax
jne    16a1 <parse+0x451>
movsbl -0x20f(%rbp),%eax
cmp    $0x48,%eax
jne    16a1 <parse+0x451>
movsbl -0x20e(%rbp),%eax
cmp    $0x59,%eax
jne    16a1 <parse+0x451>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    16a1 <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     159b <parse+0x34b>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    156b <parse+0x31b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    15d6 <parse+0x386>
mov    0x3a25(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1a96(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1624 <parse+0x3d4>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    15f4 <parse+0x3a4>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1656 <parse+0x406>
mov    0x39a5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1a16(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1040 <new_physdes@plt>
cmp    $0x0,%rax
je     169c <parse+0x44c>
mov    0x3967(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x19e8(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x42,%eax
jne    1839 <parse+0x5e9>
movsbl -0x20f(%rbp),%eax
cmp    $0x49,%eax
jne    1839 <parse+0x5e9>
movsbl -0x20e(%rbp),%eax
cmp    $0x41,%eax
jne    1839 <parse+0x5e9>
movsbl -0x20d(%rbp),%eax
cmp    $0x53,%eax
jne    1839 <parse+0x5e9>
movsbl -0x20c(%rbp),%eax
cmp    $0x20,%eax
jne    1839 <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     1733 <parse+0x4e3>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1703 <parse+0x4b3>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    176e <parse+0x51e>
mov    0x388d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1955(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     17bc <parse+0x56c>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    178c <parse+0x53c>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    17ee <parse+0x59e>
mov    0x380d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x18d5(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1070 <new_bias@plt>
cmp    $0x0,%rax
je     1834 <parse+0x5e4>
mov    0x37cf(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x18a8(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x4c,%eax
jne    19d5 <parse+0x785>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    19d5 <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     189b <parse+0x64b>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    186b <parse+0x61b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    18d6 <parse+0x686>
mov    0x3725(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1847(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1924 <parse+0x6d4>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    18f4 <parse+0x6a4>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1956 <parse+0x706>
mov    0x36a5(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x17c7(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1050 <new_langid@plt>
cmp    $0x0,%rax
je     199c <parse+0x74c>
mov    0x3667(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x179c(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
mov    -0x234(%rbp),%eax
mov    %eax,-0x230(%rbp)
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x43,%eax
jne    1b71 <parse+0x921>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    1b71 <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     1a37 <parse+0x7e7>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1a07 <parse+0x7b7>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1a72 <parse+0x822>
mov    0x3589(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1701(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1ac0 <parse+0x870>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1a90 <parse+0x840>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1af2 <parse+0x8a2>
mov    0x3509(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1681(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1130 <new_class@plt>
cmp    $0x0,%rax
je     1b38 <parse+0x8e8>
mov    0x34cb(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1655(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
mov    -0x234(%rbp),%eax
mov    %eax,-0x224(%rbp)
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x41,%eax
jne    1cef <parse+0xa9f>
movsbl -0x20f(%rbp),%eax
cmp    $0x54,%eax
jne    1cef <parse+0xa9f>
movsbl -0x20e(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1cef <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     1be9 <parse+0x999>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1bb9 <parse+0x969>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1c24 <parse+0x9d4>
mov    0x33d7(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x159d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1c72 <parse+0xa22>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1c42 <parse+0x9f2>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1ca4 <parse+0xa54>
mov    0x3357(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x151d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   10c0 <new_audioterminal@plt>
cmp    $0x0,%rax
je     1cea <parse+0xa9a>
mov    0x3319(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x14fa(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x56,%eax
jne    1e6d <parse+0xc1d>
movsbl -0x20f(%rbp),%eax
cmp    $0x54,%eax
jne    1e6d <parse+0xc1d>
movsbl -0x20e(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1e6d <parse+0xc1d>
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+0xb17>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1d37 <parse+0xae7>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1da2 <parse+0xb52>
mov    0x3259(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x148c(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1df0 <parse+0xba0>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1dc0 <parse+0xb70>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1e22 <parse+0xbd2>
mov    0x31d9(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x140c(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1100 <new_videoterminal@plt>
cmp    $0x0,%rax
je     1e68 <parse+0xc18>
mov    0x319b(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x13e9(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    1ffb <parse+0xdab>
movsbl -0x20f(%rbp),%eax
cmp    $0x43,%eax
jne    1ffb <parse+0xdab>
movsbl -0x20e(%rbp),%eax
cmp    $0x43,%eax
jne    1ffb <parse+0xdab>
movsbl -0x20d(%rbp),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1ffb <parse+0xdab>
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     1ef5 <parse+0xca5>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1ec5 <parse+0xc75>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    1f30 <parse+0xce0>
mov    0x30cb(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x136b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0xa,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     1f7e <parse+0xd2e>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    1f4e <parse+0xcfe>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    1fb0 <parse+0xd60>
mov    0x304b(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x12eb(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1150 <new_countrycode@plt>
cmp    $0x0,%rax
je     1ff6 <parse+0xda6>
mov    0x300d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x12c5(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
je     2113 <parse+0xec3>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2062 <parse+0xe12>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2032 <parse+0xde2>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2094 <parse+0xe44>
mov    0x2f67(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1263(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1110 <new_vendor@plt>
cmp    $0x0,%rax
je     20da <parse+0xe8a>
mov    0x2f29(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0x1238(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
mov    -0x234(%rbp),%eax
mov    %eax,-0x220(%rbp)
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
movl   $0xffffffff,-0x22c(%rbp)
ff ff ff
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x9,%eax
jne    235f <parse+0x110f>
movsbl -0x20f(%rbp),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
je     235f <parse+0x110f>
lea    -0x210(%rbp),%rdi
add    $0x1,%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     218b <parse+0xf3b>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    215b <parse+0xf0b>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    21bd <parse+0xf6d>
mov    0x2e3e(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x118b(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x220(%rbp)
je     2222 <parse+0xfd2>
mov    -0x218(%rbp),%rdi
mov    -0x220(%rbp),%esi
mov    -0x234(%rbp),%edx
call   1030 <new_product@plt>
cmp    $0x0,%rax
je     221d <parse+0xfcd>
mov    0x2ded(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x220(%rbp),%ecx
mov    -0x234(%rbp),%r8d
mov    -0x218(%rbp),%r9
lea    0x1150(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x224(%rbp)
je     2293 <parse+0x1043>
mov    -0x218(%rbp),%rdi
mov    -0x224(%rbp),%esi
mov    -0x234(%rbp),%edx
call   1160 <new_subclass@plt>
cmp    $0x0,%rax
je     2282 <parse+0x1032>
mov    0x2d88(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x224(%rbp),%ecx
mov    -0x234(%rbp),%r8d
mov    -0x218(%rbp),%r9
lea    0x1123(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
mov    -0x234(%rbp),%eax
mov    %eax,-0x228(%rbp)
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x22c(%rbp)
je     22e7 <parse+0x1097>
mov    -0x218(%rbp),%rdi
mov    -0x22c(%rbp),%esi
shl    $0x10,%esi
add    -0x234(%rbp),%esi
call   10b0 <new_hutus@plt>
cmp    $0x0,%rax
je     22e2 <parse+0x1092>
mov    0x2d14(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10fa(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x230(%rbp)
je     233d <parse+0x10ed>
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     2338 <parse+0x10e8>
mov    0x2cbe(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10c9(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    0x2c9c(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x10cf(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x9,%eax
jne    24be <parse+0x126e>
movsbl -0x20f(%rbp),%eax
cmp    $0x9,%eax
jne    24be <parse+0x126e>
movsbl -0x20e(%rbp),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
je     24be <parse+0x126e>
lea    -0x210(%rbp),%rdi
add    $0x2,%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     23e7 <parse+0x1197>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    23b7 <parse+0x1167>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2419 <parse+0x11c9>
mov    0x2be2(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1057(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
cmpl   $0xffffffff,-0x224(%rbp)
je     249c <parse+0x124c>
cmpl   $0xffffffff,-0x228(%rbp)
je     249c <parse+0x124c>
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     2497 <parse+0x1247>
mov    0x2b7e(%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    0xffa(%rip),%rsi
mov    %rax,(%rsp)
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    0x2b3d(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0x1010(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    2646 <parse+0x13f6>
movsbl -0x20f(%rbp),%eax
cmp    $0x49,%eax
jne    2646 <parse+0x13f6>
movsbl -0x20e(%rbp),%eax
cmp    $0x44,%eax
jne    2646 <parse+0x13f6>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    2646 <parse+0x13f6>
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     2540 <parse+0x12f0>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2510 <parse+0x12c0>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    257b <parse+0x132b>
mov    0x2a80(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xf93(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     25c9 <parse+0x1379>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2599 <parse+0x1349>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    25fb <parse+0x13ab>
mov    0x2a00(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xf13(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1170 <new_hid@plt>
cmp    $0x0,%rax
je     2641 <parse+0x13f1>
mov    0x29c2(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xee5(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x48,%eax
jne    2802 <parse+0x15b2>
movsbl -0x20f(%rbp),%eax
cmp    $0x55,%eax
jne    2802 <parse+0x15b2>
movsbl -0x20e(%rbp),%eax
cmp    $0x54,%eax
jne    2802 <parse+0x15b2>
movsbl -0x20d(%rbp),%eax
cmp    $0x20,%eax
jne    2802 <parse+0x15b2>
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     26c8 <parse+0x1478>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2698 <parse+0x1448>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    2703 <parse+0x14b3>
mov    0x28f8(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xe62(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     2751 <parse+0x1501>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2721 <parse+0x14d1>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    2783 <parse+0x1533>
mov    0x2878(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xde2(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   10f0 <new_huts@plt>
cmp    $0x0,%rax
je     27c9 <parse+0x1579>
mov    0x283a(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xdb4(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
movl   $0xffffffff,-0x228(%rbp)
ff ff ff
movl   $0xffffffff,-0x220(%rbp)
ff ff ff
movl   $0xffffffff,-0x224(%rbp)
ff ff ff
movl   $0xffffffff,-0x230(%rbp)
ff ff ff
mov    -0x234(%rbp),%eax
mov    %eax,-0x22c(%rbp)
jmp    129b <parse+0x4b>
movsbl -0x210(%rbp),%eax
cmp    $0x52,%eax
jne    296a <parse+0x171a>
movsbl -0x20f(%rbp),%eax
cmp    $0x20,%eax
jne    296a <parse+0x171a>
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     2864 <parse+0x1614>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    2834 <parse+0x15e4>
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   1140 <isxdigit@plt>
cmp    $0x0,%rax
jne    289f <parse+0x164f>
mov    0x275c(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xd1d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
lea    -0x218(%rbp),%rsi
mov    $0x10,%edx
call   1120 <strtoul@plt>
mov    %eax,-0x234(%rbp)
mov    -0x218(%rbp),%rax
movsbl (%rax),%edi
call   10a0 <isspace@plt>
cmp    $0x0,%rax
je     28ed <parse+0x169d>
mov    -0x218(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x218(%rbp)
jmp    28bd <parse+0x166d>
mov    -0x218(%rbp),%rax
cmpb   $0x0,(%rax)
jne    291f <parse+0x16cf>
mov    0x26dc(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xc9d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    -0x218(%rbp),%rdi
mov    -0x234(%rbp),%esi
call   1060 <new_reporttag@plt>
cmp    $0x0,%rax
je     2965 <parse+0x1715>
mov    0x269e(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
mov    -0x234(%rbp),%ecx
mov    -0x218(%rbp),%r8
lea    0xc72(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
mov    0x266f(%rip),%rax
mov    (%rax),%edi
mov    -0x21c(%rbp),%edx
lea    0xc8d(%rip),%rsi
mov    $0x0,%al
call   10e0 <fprintf@plt>
jmp    129b <parse+0x4b>
add    $0x240,%rsp
pop    %rbp
ret

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

LLVM IR (-O0):
@stderr = global i32 0
@.str = [33 x i8] c"Invalid Physdes type at line %u\0A\00"
@.str.1 = [63 x i8] c"Duplicate Physdes type spec at line %u terminal type %04x %s\0A\00"
@.str.2 = [29 x i8] c"Invalid PHY type at line %u\0A\00"
@.str.3 = [58 x i8] c"Duplicate PHY type spec at line %u terminal type %04x %s\0A\00"
@.str.4 = [30 x i8] c"Invalid BIAS type at line %u\0A\00"
@.str.5 = [60 x i8] c"Duplicate BIAS type spec at line %u terminal type %04x %s\0A\00"
@.str.6 = [32 x i8] c"Invalid LANGID spec at line %u\0A\00"
@.str.7 = [54 x i8] c"Duplicate LANGID spec at line %u language-id %04x %s\0A\00"
@.str.8 = [31 x i8] c"Invalid class spec at line %u\0A\00"
@.str.9 = [47 x i8] c"Duplicate class spec at line %u class %04x %s\0A\00"
@.str.10 = [40 x i8] c"Invalid audio terminal type at line %u\0A\00"
@.str.11 = [69 x i8] c"Duplicate audio terminal type spec at line %u terminal type %04x %s\0A\00"
@.str.12 = [40 x i8] c"Invalid video terminal type at line %u\0A\00"
@.str.13 = [69 x i8] c"Duplicate video terminal type spec at line %u terminal type %04x %s\0A\00"
@.str.14 = [37 x i8] c"Invalid HID country code at line %u\0A\00"
@.str.15 = [55 x i8] c"Duplicate HID country code at line %u country %02u %s\0A\00"
@.str.16 = [32 x i8] c"Invalid vendor spec at line %u\0A\00"
@.str.17 = [49 x i8] c"Duplicate vendor spec at line %u vendor %04x %s\0A\00"
@.str.18 = [42 x i8] c"Invalid product/subclass spec at line %u\0A\00"
@.str.19 = [56 x i8] c"Duplicate product spec at line %u product %04x:%04x %s\0A\00"
@.str.20 = [55 x i8] c"Duplicate subclass spec at line %u class %02x:%02x %s\0A\00"
@.str.21 = [37 x i8] c"Duplicate HUT Usage Spec at line %u\0A\00"
@.str.22 = [40 x i8] c"Duplicate LANGID Usage Spec at line %u\0A\00"
@.str.23 = [66 x i8] c"Product/Subclass spec without prior Vendor/Class spec at line %u\0A\00"
@.str.24 = [34 x i8] c"Invalid protocol spec at line %u\0A\00"
@.str.25 = [60 x i8] c"Duplicate protocol spec at line %u class %02x:%02x:%02x %s\0A\00"
@.str.26 = [64 x i8] c"Protocol spec without prior Class and Subclass spec at line %u\0A\00"
@.str.27 = [29 x i8] c"Invalid HID type at line %u\0A\00"
@.str.28 = [58 x i8] c"Duplicate HID type spec at line %u terminal type %04x %s\0A\00"
@.str.29 = [29 x i8] c"Invalid HUT type at line %u\0A\00"
@.str.30 = [58 x i8] c"Duplicate HUT type spec at line %u terminal type %04x %s\0A\00"
@.str.31 = [32 x i8] c"Invalid Report type at line %u\0A\00"
@.str.32 = [61 x i8] c"Duplicate Report type spec at line %u terminal type %04x %s\0A\00"
@.str.33 = [25 x i8] c"Unknown line at line %u\0A\00"
define void @parse(i32* %0) {
%2 = alloca i32*
%3 = alloca [512 x i8]
%4 = alloca i8*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
store i32* %0, i32** %2
store i32 0, i32* %5
store i32 -1, i32* %6
store i32 -1, i32* %7
store i32 -1, i32* %8
store i32 -1, i32* %9
store i32 -1, i32* %10
br label %12
12: ; preds = %1010, %1009, %994, %975, %947, %932, %913, %876, %861, %842, %802, %801, %776, %741, %740, %724, %707, %690, %670, %642, %627, %606, %591, %572, %535, %520, %501, %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 %1014
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, 86
br i1 %474, label %475, label %536
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, 84
br i1 %479, label %480, label %536
480: ; preds = %475
%481 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%482 = load i8, i8* %481
%483 = call i64 @isspace(i8 signext %482)
%484 = icmp ne i64 %483, 0
br i1 %484, label %485, label %536
485: ; preds = %480
%486 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%487 = getelementptr inbounds i8, i8* %486, i64 3
store i8* %487, i8** %4
br label %488
488: ; preds = %493, %485
%489 = load i8*, i8** %4
%490 = load i8, i8* %489
%491 = call i64 @isspace(i8 signext %490)
%492 = icmp ne i64 %491, 0
br i1 %492, label %493, label %496
493: ; preds = %488
%494 = load i8*, i8** %4
%495 = getelementptr inbounds i8, i8* %494, i32 1
store i8* %495, i8** %4
br label %488
496: ; preds = %488
%497 = load i8*, i8** %4
%498 = load i8, i8* %497
%499 = call i64 @isxdigit(i8 signext %498)
%500 = icmp ne i64 %499, 0
br i1 %500, label %505, label %501
501: ; preds = %496
%502 = load i32, i32* @stderr
%503 = load i32, i32* %5
%504 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %502, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.12, i64 0, i64 0), i32 %503)
br label %12
505: ; preds = %496
%506 = load i8*, i8** %4
%507 = call i32 @strtoul(i8* %506, i8** %4, i32 16)
store i32 %507, i32* %11
br label %508
508: ; preds = %513, %505
%509 = load i8*, i8** %4
%510 = load i8, i8* %509
%511 = call i64 @isspace(i8 signext %510)
%512 = icmp ne i64 %511, 0
br i1 %512, label %513, label %516
513: ; preds = %508
%514 = load i8*, i8** %4
%515 = getelementptr inbounds i8, i8* %514, i32 1
store i8* %515, i8** %4
br label %508
516: ; preds = %508
%517 = load i8*, i8** %4
%518 = load i8, i8* %517
%519 = icmp ne i8 %518, 0
br i1 %519, label %524, label %520
520: ; preds = %516
%521 = load i32, i32* @stderr
%522 = load i32, i32* %5
%523 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %521, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.12, i64 0, i64 0), i32 %522)
br label %12
524: ; preds = %516
%525 = load i8*, i8** %4
%526 = load i32, i32* %11
%527 = call i64 @new_videoterminal(i8* %525, i32 %526)
%528 = icmp ne i64 %527, 0
br i1 %528, label %529, label %535
529: ; preds = %524
%530 = load i32, i32* @stderr
%531 = load i32, i32* %5
%532 = load i32, i32* %11
%533 = load i8*, i8** %4
%534 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %530, i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 %531, i32 %532, i8* %533)
br label %535
535: ; preds = %529, %524
br label %12
536: ; preds = %480, %475, %470
%537 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%538 = load i8, i8* %537
%539 = sext i8 %538 to i32
%540 = icmp eq i32 %539, 72
br i1 %540, label %541, label %607
541: ; preds = %536
%542 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%543 = load i8, i8* %542
%544 = sext i8 %543 to i32
%545 = icmp eq i32 %544, 67
br i1 %545, label %546, label %607
546: ; preds = %541
%547 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%548 = load i8, i8* %547
%549 = sext i8 %548 to i32
%550 = icmp eq i32 %549, 67
br i1 %550, label %551, label %607
551: ; preds = %546
%552 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%553 = load i8, i8* %552
%554 = call i64 @isspace(i8 signext %553)
%555 = icmp ne i64 %554, 0
br i1 %555, label %556, label %607
556: ; preds = %551
%557 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%558 = getelementptr inbounds i8, i8* %557, i64 3
store i8* %558, i8** %4
br label %559
559: ; preds = %564, %556
%560 = load i8*, i8** %4
%561 = load i8, i8* %560
%562 = call i64 @isspace(i8 signext %561)
%563 = icmp ne i64 %562, 0
br i1 %563, label %564, label %567
564: ; preds = %559
%565 = load i8*, i8** %4
%566 = getelementptr inbounds i8, i8* %565, i32 1
store i8* %566, i8** %4
br label %559
567: ; preds = %559
%568 = load i8*, i8** %4
%569 = load i8, i8* %568
%570 = call i64 @isxdigit(i8 signext %569)
%571 = icmp ne i64 %570, 0
br i1 %571, label %576, label %572
572: ; preds = %567
%573 = load i32, i32* @stderr
%574 = load i32, i32* %5
%575 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %573, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.14, i64 0, i64 0), i32 %574)
br label %12
576: ; preds = %567
%577 = load i8*, i8** %4
%578 = call i32 @strtoul(i8* %577, i8** %4, i32 10)
store i32 %578, i32* %11
br label %579
579: ; preds = %584, %576
%580 = load i8*, i8** %4
%581 = load i8, i8* %580
%582 = call i64 @isspace(i8 signext %581)
%583 = icmp ne i64 %582, 0
br i1 %583, label %584, label %587
584: ; preds = %579
%585 = load i8*, i8** %4
%586 = getelementptr inbounds i8, i8* %585, i32 1
store i8* %586, i8** %4
br label %579
587: ; preds = %579
%588 = load i8*, i8** %4
%589 = load i8, i8* %588
%590 = icmp ne i8 %589, 0
br i1 %590, label %595, label %591
591: ; preds = %587
%592 = load i32, i32* @stderr
%593 = load i32, i32* %5
%594 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %592, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.14, i64 0, i64 0), i32 %593)
br label %12
595: ; preds = %587
%596 = load i8*, i8** %4
%597 = load i32, i32* %11
%598 = call i64 @new_countrycode(i8* %596, i32 %597)
%599 = icmp ne i64 %598, 0
br i1 %599, label %600, label %606
600: ; preds = %595
%601 = load i32, i32* @stderr
%602 = load i32, i32* %5
%603 = load i32, i32* %11
%604 = load i8*, i8** %4
%605 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %601, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.15, i64 0, i64 0), i32 %602, i32 %603, i8* %604)
br label %606
606: ; preds = %600, %595
br label %12
607: ; preds = %551, %546, %541, %536
%608 = load i8*, i8** %4
%609 = load i8, i8* %608
%610 = call i64 @isxdigit(i8 signext %609)
%611 = icmp ne i64 %610, 0
br i1 %611, label %612, label %644
612: ; preds = %607
%613 = load i8*, i8** %4
%614 = call i32 @strtoul(i8* %613, i8** %4, i32 16)
store i32 %614, i32* %11
br label %615
615: ; preds = %620, %612
%616 = load i8*, i8** %4
%617 = load i8, i8* %616
%618 = call i64 @isspace(i8 signext %617)
%619 = icmp ne i64 %618, 0
br i1 %619, label %620, label %623
620: ; preds = %615
%621 = load i8*, i8** %4
%622 = getelementptr inbounds i8, i8* %621, i32 1
store i8* %622, i8** %4
br label %615
623: ; preds = %615
%624 = load i8*, i8** %4
%625 = load i8, i8* %624
%626 = icmp ne i8 %625, 0
br i1 %626, label %631, label %627
627: ; preds = %623
%628 = load i32, i32* @stderr
%629 = load i32, i32* %5
%630 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %628, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.16, i64 0, i64 0), i32 %629)
br label %12
631: ; preds = %623
%632 = load i8*, i8** %4
%633 = load i32, i32* %11
%634 = call i64 @new_vendor(i8* %632, i32 %633)
%635 = icmp ne i64 %634, 0
br i1 %635, label %636, label %642
636: ; preds = %631
%637 = load i32, i32* @stderr
%638 = load i32, i32* %5
%639 = load i32, i32* %11
%640 = load i8*, i8** %4
%641 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %637, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 %638, i32 %639, i8* %640)
br label %642
642: ; preds = %636, %631
%643 = load i32, i32* %11
store i32 %643, 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
644: ; preds = %607
%645 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%646 = load i8, i8* %645
%647 = sext i8 %646 to i32
%648 = icmp eq i32 %647, 9
br i1 %648, label %649, label %745
649: ; preds = %644
%650 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%651 = load i8, i8* %650
%652 = call i64 @isxdigit(i8 signext %651)
%653 = icmp ne i64 %652, 0
br i1 %653, label %654, label %745
654: ; preds = %649
%655 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%656 = getelementptr inbounds i8, i8* %655, i64 1
%657 = call i32 @strtoul(i8* %656, i8** %4, i32 16)
store i32 %657, i32* %11
br label %658
658: ; preds = %663, %654
%659 = load i8*, i8** %4
%660 = load i8, i8* %659
%661 = call i64 @isspace(i8 signext %660)
%662 = icmp ne i64 %661, 0
br i1 %662, label %663, label %666
663: ; preds = %658
%664 = load i8*, i8** %4
%665 = getelementptr inbounds i8, i8* %664, i32 1
store i8* %665, i8** %4
br label %658
666: ; preds = %658
%667 = load i8*, i8** %4
%668 = load i8, i8* %667
%669 = icmp ne i8 %668, 0
br i1 %669, label %674, label %670
670: ; preds = %666
%671 = load i32, i32* @stderr
%672 = load i32, i32* %5
%673 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %671, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.18, i64 0, i64 0), i32 %672)
br label %12
674: ; preds = %666
%675 = load i32, i32* %6
%676 = icmp ne i32 %675, -1
br i1 %676, label %677, label %691
677: ; preds = %674
%678 = load i8*, i8** %4
%679 = load i32, i32* %6
%680 = load i32, i32* %11
%681 = call i64 @new_product(i8* %678, i32 %679, i32 %680)
%682 = icmp ne i64 %681, 0
br i1 %682, label %683, label %690
683: ; preds = %677
%684 = load i32, i32* @stderr
%685 = load i32, i32* %5
%686 = load i32, i32* %6
%687 = load i32, i32* %11
%688 = load i8*, i8** %4
%689 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %684, i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.19, i64 0, i64 0), i32 %685, i32 %686, i32 %687, i8* %688)
br label %690
690: ; preds = %683, %677
br label %12
691: ; preds = %674
%692 = load i32, i32* %7
%693 = icmp ne i32 %692, -1
br i1 %693, label %694, label %709
694: ; preds = %691
%695 = load i8*, i8** %4
%696 = load i32, i32* %7
%697 = load i32, i32* %11
%698 = call i64 @new_subclass(i8* %695, i32 %696, i32 %697)
%699 = icmp ne i64 %698, 0
br i1 %699, label %700, label %707
700: ; preds = %694
%701 = load i32, i32* @stderr
%702 = load i32, i32* %5
%703 = load i32, i32* %7
%704 = load i32, i32* %11
%705 = load i8*, i8** %4
%706 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %701, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.20, i64 0, i64 0), i32 %702, i32 %703, i32 %704, i8* %705)
br label %707
707: ; preds = %700, %694
%708 = load i32, i32* %11
store i32 %708, i32* %8
br label %12
709: ; preds = %691
%710 = load i32, i32* %9
%711 = icmp ne i32 %710, -1
br i1 %711, label %712, label %725
712: ; preds = %709
%713 = load i8*, i8** %4
%714 = load i32, i32* %9
%715 = shl i32 %714, 16
%716 = load i32, i32* %11
%717 = add i32 %715, %716
%718 = call i64 @new_hutus(i8* %713, i32 %717)
%719 = icmp ne i64 %718, 0
br i1 %719, label %720, label %724
720: ; preds = %712
%721 = load i32, i32* @stderr
%722 = load i32, i32* %5
%723 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %721, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.21, i64 0, i64 0), i32 %722)
br label %724
724: ; preds = %720, %712
br label %12
725: ; preds = %709
%726 = load i32, i32* %10
%727 = icmp ne i32 %726, -1
br i1 %727, label %728, label %741
728: ; preds = %725
%729 = load i8*, i8** %4
%730 = load i32, i32* %10
%731 = load i32, i32* %11
%732 = shl i32 %731, 10
%733 = add i32 %730, %732
%734 = call i64 @new_langid(i8* %729, i32 %733)
%735 = icmp ne i64 %734, 0
br i1 %735, label %736, label %740
736: ; preds = %728
%737 = load i32, i32* @stderr
%738 = load i32, i32* %5
%739 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %737, i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.22, i64 0, i64 0), i32 %738)
br label %740
740: ; preds = %736, %728
br label %12
741: ; preds = %725
%742 = load i32, i32* @stderr
%743 = load i32, i32* %5
%744 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %742, i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.23, i64 0, i64 0), i32 %743)
br label %12
745: ; preds = %649, %644
%746 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%747 = load i8, i8* %746
%748 = sext i8 %747 to i32
%749 = icmp eq i32 %748, 9
br i1 %749, label %750, label %806
750: ; preds = %745
%751 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%752 = load i8, i8* %751
%753 = sext i8 %752 to i32
%754 = icmp eq i32 %753, 9
br i1 %754, label %755, label %806
755: ; preds = %750
%756 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%757 = load i8, i8* %756
%758 = call i64 @isxdigit(i8 signext %757)
%759 = icmp ne i64 %758, 0
br i1 %759, label %760, label %806
760: ; preds = %755
%761 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%762 = getelementptr inbounds i8, i8* %761, i64 2
%763 = call i32 @strtoul(i8* %762, i8** %4, i32 16)
store i32 %763, i32* %11
br label %764
764: ; preds = %769, %760
%765 = load i8*, i8** %4
%766 = load i8, i8* %765
%767 = call i64 @isspace(i8 signext %766)
%768 = icmp ne i64 %767, 0
br i1 %768, label %769, label %772
769: ; preds = %764
%770 = load i8*, i8** %4
%771 = getelementptr inbounds i8, i8* %770, i32 1
store i8* %771, i8** %4
br label %764
772: ; preds = %764
%773 = load i8*, i8** %4
%774 = load i8, i8* %773
%775 = icmp ne i8 %774, 0
br i1 %775, label %780, label %776
776: ; preds = %772
%777 = load i32, i32* @stderr
%778 = load i32, i32* %5
%779 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %777, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.24, i64 0, i64 0), i32 %778)
br label %12
780: ; preds = %772
%781 = load i32, i32* %7
%782 = icmp ne i32 %781, -1
br i1 %782, label %783, label %802
783: ; preds = %780
%784 = load i32, i32* %8
%785 = icmp ne i32 %784, -1
br i1 %785, label %786, label %802
786: ; preds = %783
%787 = load i8*, i8** %4
%788 = load i32, i32* %7
%789 = load i32, i32* %8
%790 = load i32, i32* %11
%791 = call i64 @new_protocol(i8* %787, i32 %788, i32 %789, i32 %790)
%792 = icmp ne i64 %791, 0
br i1 %792, label %793, label %801
793: ; preds = %786
%794 = load i32, i32* @stderr
%795 = load i32, i32* %5
%796 = load i32, i32* %7
%797 = load i32, i32* %8
%798 = load i32, i32* %11
%799 = load i8*, i8** %4
%800 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %794, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.25, i64 0, i64 0), i32 %795, i32 %796, i32 %797, i32 %798, i8* %799)
br label %801
801: ; preds = %793, %786
br label %12
802: ; preds = %783, %780
%803 = load i32, i32* @stderr
%804 = load i32, i32* %5
%805 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %803, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.26, i64 0, i64 0), i32 %804)
br label %12
806: ; preds = %755, %750, %745
%807 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%808 = load i8, i8* %807
%809 = sext i8 %808 to i32
%810 = icmp eq i32 %809, 72
br i1 %810, label %811, label %877
811: ; preds = %806
%812 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%813 = load i8, i8* %812
%814 = sext i8 %813 to i32
%815 = icmp eq i32 %814, 73
br i1 %815, label %816, label %877
816: ; preds = %811
%817 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%818 = load i8, i8* %817
%819 = sext i8 %818 to i32
%820 = icmp eq i32 %819, 68
br i1 %820, label %821, label %877
821: ; preds = %816
%822 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%823 = load i8, i8* %822
%824 = sext i8 %823 to i32
%825 = icmp eq i32 %824, 32
br i1 %825, label %826, label %877
826: ; preds = %821
%827 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%828 = getelementptr inbounds i8, i8* %827, i64 4
store i8* %828, i8** %4
br label %829
829: ; preds = %834, %826
%830 = load i8*, i8** %4
%831 = load i8, i8* %830
%832 = call i64 @isspace(i8 signext %831)
%833 = icmp ne i64 %832, 0
br i1 %833, label %834, label %837
834: ; preds = %829
%835 = load i8*, i8** %4
%836 = getelementptr inbounds i8, i8* %835, i32 1
store i8* %836, i8** %4
br label %829
837: ; preds = %829
%838 = load i8*, i8** %4
%839 = load i8, i8* %838
%840 = call i64 @isxdigit(i8 signext %839)
%841 = icmp ne i64 %840, 0
br i1 %841, label %846, label %842
842: ; preds = %837
%843 = load i32, i32* @stderr
%844 = load i32, i32* %5
%845 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %843, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %844)
br label %12
846: ; preds = %837
%847 = load i8*, i8** %4
%848 = call i32 @strtoul(i8* %847, i8** %4, i32 16)
store i32 %848, i32* %11
br label %849
849: ; preds = %854, %846
%850 = load i8*, i8** %4
%851 = load i8, i8* %850
%852 = call i64 @isspace(i8 signext %851)
%853 = icmp ne i64 %852, 0
br i1 %853, label %854, label %857
854: ; preds = %849
%855 = load i8*, i8** %4
%856 = getelementptr inbounds i8, i8* %855, i32 1
store i8* %856, i8** %4
br label %849
857: ; preds = %849
%858 = load i8*, i8** %4
%859 = load i8, i8* %858
%860 = icmp ne i8 %859, 0
br i1 %860, label %865, label %861
861: ; preds = %857
%862 = load i32, i32* @stderr
%863 = load i32, i32* %5
%864 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %862, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.27, i64 0, i64 0), i32 %863)
br label %12
865: ; preds = %857
%866 = load i8*, i8** %4
%867 = load i32, i32* %11
%868 = call i64 @new_hid(i8* %866, i32 %867)
%869 = icmp ne i64 %868, 0
br i1 %869, label %870, label %876
870: ; preds = %865
%871 = load i32, i32* @stderr
%872 = load i32, i32* %5
%873 = load i32, i32* %11
%874 = load i8*, i8** %4
%875 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %871, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 %872, i32 %873, i8* %874)
br label %876
876: ; preds = %870, %865
br label %12
877: ; preds = %821, %816, %811, %806
%878 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%879 = load i8, i8* %878
%880 = sext i8 %879 to i32
%881 = icmp eq i32 %880, 72
br i1 %881, label %882, label %949
882: ; preds = %877
%883 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%884 = load i8, i8* %883
%885 = sext i8 %884 to i32
%886 = icmp eq i32 %885, 85
br i1 %886, label %887, label %949
887: ; preds = %882
%888 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 2
%889 = load i8, i8* %888
%890 = sext i8 %889 to i32
%891 = icmp eq i32 %890, 84
br i1 %891, label %892, label %949
892: ; preds = %887
%893 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 3
%894 = load i8, i8* %893
%895 = sext i8 %894 to i32
%896 = icmp eq i32 %895, 32
br i1 %896, label %897, label %949
897: ; preds = %892
%898 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%899 = getelementptr inbounds i8, i8* %898, i64 4
store i8* %899, i8** %4
br label %900
900: ; preds = %905, %897
%901 = load i8*, i8** %4
%902 = load i8, i8* %901
%903 = call i64 @isspace(i8 signext %902)
%904 = icmp ne i64 %903, 0
br i1 %904, label %905, label %908
905: ; preds = %900
%906 = load i8*, i8** %4
%907 = getelementptr inbounds i8, i8* %906, i32 1
store i8* %907, i8** %4
br label %900
908: ; preds = %900
%909 = load i8*, i8** %4
%910 = load i8, i8* %909
%911 = call i64 @isxdigit(i8 signext %910)
%912 = icmp ne i64 %911, 0
br i1 %912, label %917, label %913
913: ; preds = %908
%914 = load i32, i32* @stderr
%915 = load i32, i32* %5
%916 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %914, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.29, i64 0, i64 0), i32 %915)
br label %12
917: ; preds = %908
%918 = load i8*, i8** %4
%919 = call i32 @strtoul(i8* %918, i8** %4, i32 16)
store i32 %919, i32* %11
br label %920
920: ; preds = %925, %917
%921 = load i8*, i8** %4
%922 = load i8, i8* %921
%923 = call i64 @isspace(i8 signext %922)
%924 = icmp ne i64 %923, 0
br i1 %924, label %925, label %928
925: ; preds = %920
%926 = load i8*, i8** %4
%927 = getelementptr inbounds i8, i8* %926, i32 1
store i8* %927, i8** %4
br label %920
928: ; preds = %920
%929 = load i8*, i8** %4
%930 = load i8, i8* %929
%931 = icmp ne i8 %930, 0
br i1 %931, label %936, label %932
932: ; preds = %928
%933 = load i32, i32* @stderr
%934 = load i32, i32* %5
%935 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %933, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.29, i64 0, i64 0), i32 %934)
br label %12
936: ; preds = %928
%937 = load i8*, i8** %4
%938 = load i32, i32* %11
%939 = call i64 @new_huts(i8* %937, i32 %938)
%940 = icmp ne i64 %939, 0
br i1 %940, label %941, label %947
941: ; preds = %936
%942 = load i32, i32* @stderr
%943 = load i32, i32* %5
%944 = load i32, i32* %11
%945 = load i8*, i8** %4
%946 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %942, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 %943, i32 %944, i8* %945)
br label %947
947: ; preds = %941, %936
store i32 -1, i32* %8
store i32 -1, i32* %6
store i32 -1, i32* %7
store i32 -1, i32* %10
%948 = load i32, i32* %11
store i32 %948, i32* %9
br label %12
949: ; preds = %892, %887, %882, %877
%950 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%951 = load i8, i8* %950
%952 = sext i8 %951 to i32
%953 = icmp eq i32 %952, 82
br i1 %953, label %954, label %1010
954: ; preds = %949
%955 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 1
%956 = load i8, i8* %955
%957 = sext i8 %956 to i32
%958 = icmp eq i32 %957, 32
br i1 %958, label %959, label %1010
959: ; preds = %954
%960 = getelementptr inbounds [512 x i8], [512 x i8]* %3, i64 0, i64 0
%961 = getelementptr inbounds i8, i8* %960, i64 2
store i8* %961, i8** %4
br label %962
962: ; preds = %967, %959
%963 = load i8*, i8** %4
%964 = load i8, i8* %963
%965 = call i64 @isspace(i8 signext %964)
%966 = icmp ne i64 %965, 0
br i1 %966, label %967, label %970
967: ; preds = %962
%968 = load i8*, i8** %4
%969 = getelementptr inbounds i8, i8* %968, i32 1
store i8* %969, i8** %4
br label %962
970: ; preds = %962
%971 = load i8*, i8** %4
%972 = load i8, i8* %971
%973 = call i64 @isxdigit(i8 signext %972)
%974 = icmp ne i64 %973, 0
br i1 %974, label %979, label %975
975: ; preds = %970
%976 = load i32, i32* @stderr
%977 = load i32, i32* %5
%978 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %976, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.31, i64 0, i64 0), i32 %977)
br label %12
979: ; preds = %970
%980 = load i8*, i8** %4
%981 = call i32 @strtoul(i8* %980, i8** %4, i32 16)
store i32 %981, i32* %11
br label %982
982: ; preds = %987, %979
%983 = load i8*, i8** %4
%984 = load i8, i8* %983
%985 = call i64 @isspace(i8 signext %984)
%986 = icmp ne i64 %985, 0
br i1 %986, label %987, label %990
987: ; preds = %982
%988 = load i8*, i8** %4
%989 = getelementptr inbounds i8, i8* %988, i32 1
store i8* %989, i8** %4
br label %982
990: ; preds = %982
%991 = load i8*, i8** %4
%992 = load i8, i8* %991
%993 = icmp ne i8 %992, 0
br i1 %993, label %998, label %994
994: ; preds = %990
%995 = load i32, i32* @stderr
%996 = load i32, i32* %5
%997 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %995, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.31, i64 0, i64 0), i32 %996)
br label %12
998: ; preds = %990
%999 = load i8*, i8** %4
%1000 = load i32, i32* %11
%1001 = call i64 @new_reporttag(i8* %999, i32 %1000)
%1002 = icmp ne i64 %1001, 0
br i1 %1002, label %1003, label %1009
1003: ; preds = %998
%1004 = load i32, i32* @stderr
%1005 = load i32, i32* %5
%1006 = load i32, i32* %11
%1007 = load i8*, i8** %4
%1008 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %1004, i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.32, i64 0, i64 0), i32 %1005, i32 %1006, i8* %1007)
br label %1009
1009: ; preds = %1003, %998
br label %12
1010: ; preds = %954, %949
%1011 = load i32, i32* @stderr
%1012 = load i32, i32* %5
%1013 = call i32 (i32, i8*, i32, ...) @fprintf(i32 %1011, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.33, i64 0, i64 0), i32 %1012)
br label %12
1014: ; preds = %12
ret void
}

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