comtyp(p, m) char *p;
char *m;
{
  char c1;
  char c2;
  char *s;
  char macnam[10];
  p++;
  while (*p && (*p == ' ' || *p == '\t'))
    p++;
  if (*p == '\0')
    return (1000);
  getwrd(p, macnam);
  macnam[2] = '\0';
  if ((s = getmac(macnam)) != (char *)0) {
    strcpy(m, s);
    return (0);
  }
  c1 = *p++;
  c2 = *p;
  if (c1 == '\\' && c2 == '\"')
    return (1000);
  if (c1 == 'a' && c2 == 'f')
    return (48);
  if (c1 == 'a' && c2 == 'd')
    return (49);
  if (c1 == 'b' && c2 == 'o')
    return (26);
  if (c1 == 'b' && c2 == 'p')
    return (1);
  if (c1 == 'b' && c2 == 'r')
    return (2);
  if (c1 == 'b' && c2 == 's')
    return (21);
  if (c1 == 'c' && c2 == 'c')
    return (24);
  if (c1 == 'c' && c2 == 'e')
    return (3);
  if (c1 == 'c' && c2 == 'u')
    return (32);
  if (c1 == 'd' && c2 == 'e')
    return (33);
  if (c1 == 'd' && c2 == 's')
    return (51);
  if (c1 == 'e' && c2 == 'f')
    return (29);
  if (c1 == 'e' && c2 == 'c')
    return (36);
  if (c1 == 'e' && c2 == 'h')
    return (27);
  if (c1 == 'e' && c2 == 'n')
    return (34);
  if (c1 == '.')
    return (34);
  if (c1 == 'e' && c2 == 'o')
    return (38);
  if (c1 == 'f' && c2 == 'i')
    return (4);
  if (c1 == 'f' && c2 == 'l')
    return (40);
  if (c1 == 'f' && c2 == 'o')
    return (5);
  if (c1 == 'f' && c2 == 't')
    return (37);
  if (c1 == 'h' && c2 == 'e')
    return (6);
  if (c1 == 'i' && c2 == 'n')
    return (7);
  if (c1 == 'j' && c2 == 'u')
    return (15);
  if (c1 == 'l' && c2 == 'l')
    return (39);
  if (c1 == 'l' && c2 == 's')
    return (8);
  if (c1 == 'm' && c2 == '1')
    return (17);
  if (c1 == 'm' && c2 == '2')
    return (18);
  if (c1 == 'm' && c2 == '3')
    return (19);
  if (c1 == 'm' && c2 == '4')
    return (20);
  if (c1 == 'n' && c2 == 'a')
    return (50);
  if (c1 == 'n' && c2 == 'e')
    return (22);
  if (c1 == 'n' && c2 == 'f')
    return (9);
  if (c1 == 'n' && c2 == 'j')
    return (16);
  if (c1 == 'n' && c2 == 'r')
    return (35);
  if (c1 == 'o' && c2 == 'f')
    return (30);
  if (c1 == 'o' && c2 == 'h')
    return (28);
  if (c1 == 'p' && c2 == 'c')
    return (23);
  if (c1 == 'p' && c2 == 'l')
    return (10);
  if (c1 == 'p' && c2 == 'm')
    return (52);
  if (c1 == 'p' && c2 == 'o')
    return (25);
  if (c1 == 'r' && c2 == 'm')
    return (11);
  if (c1 == 'r' && c2 == 'r')
    return (42);
  if (c1 == 's' && c2 == 'o')
    return (31);
  if (c1 == 's' && c2 == 'p')
    return (12);
  if (c1 == 't' && c2 == 'i')
    return (13);
  if (c1 == 't' && c2 == 'l')
    return (47);
  if (c1 == 'u' && c2 == 'l')
    return (14);
  if (c1 == 'p' && c2 == 'n')
    return (41);
  if (c1 == 'r' && c2 == 'r')
    return (42);
  if (c1 == 'c' && c2 == '2')
    return (43);
  if (c1 == 't' && c2 == 'r')
    return (44);
  if (c1 == 'l' && c2 == 't')
    return (45);
  if (c1 == 'f' && c2 == 'c')
    return (46);
  return (-1);
}


x86 assembly (clang, -O0):
<comtyp>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x0,%ecx
mov    %al,-0x33(%rbp)
je     118c <comtyp+0x5c>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
mov    $0x1,%al
cmp    $0x20,%ecx
mov    %al,-0x34(%rbp)
je     1186 <comtyp+0x56>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
sete   %al
mov    %al,-0x34(%rbp)
mov    -0x34(%rbp),%al
mov    %al,-0x33(%rbp)
mov    -0x33(%rbp),%al
test   $0x1,%al
jne    119c <comtyp+0x6c>
jmp    11ad <comtyp+0x7d>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    114c <comtyp+0x1c>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
jne    11c9 <comtyp+0x99>
movl   $0x3e8,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
mov    -0x10(%rbp),%rdi
lea    -0x32(%rbp),%rsi
mov    $0x0,%al
call   1050 <getwrd@plt>
movb   $0x0,-0x30(%rbp)
lea    -0x32(%rbp),%rdi
mov    $0x0,%al
call   1040 <getmac@plt>
cltq
mov    %rax,-0x28(%rbp)
cmp    $0x0,%rax
je     1210 <comtyp+0xe0>
mov    -0x18(%rbp),%rdi
mov    -0x28(%rbp),%rsi
call   1030 <strcpy@plt>
movl   $0x0,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    (%rax),%al
mov    %al,-0x19(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x1a(%rbp)
movsbl -0x19(%rbp),%eax
cmp    $0x5c,%eax
jne    1253 <comtyp+0x123>
movsbl -0x1a(%rbp),%eax
cmp    $0x22,%eax
jne    1253 <comtyp+0x123>
movl   $0x3e8,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x61,%eax
jne    1279 <comtyp+0x149>
movsbl -0x1a(%rbp),%eax
cmp    $0x66,%eax
jne    1279 <comtyp+0x149>
movl   $0x30,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x61,%eax
jne    129f <comtyp+0x16f>
movsbl -0x1a(%rbp),%eax
cmp    $0x64,%eax
jne    129f <comtyp+0x16f>
movl   $0x31,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x62,%eax
jne    12c5 <comtyp+0x195>
movsbl -0x1a(%rbp),%eax
cmp    $0x6f,%eax
jne    12c5 <comtyp+0x195>
movl   $0x1a,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x62,%eax
jne    12eb <comtyp+0x1bb>
movsbl -0x1a(%rbp),%eax
cmp    $0x70,%eax
jne    12eb <comtyp+0x1bb>
movl   $0x1,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x62,%eax
jne    1311 <comtyp+0x1e1>
movsbl -0x1a(%rbp),%eax
cmp    $0x72,%eax
jne    1311 <comtyp+0x1e1>
movl   $0x2,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x62,%eax
jne    1337 <comtyp+0x207>
movsbl -0x1a(%rbp),%eax
cmp    $0x73,%eax
jne    1337 <comtyp+0x207>
movl   $0x15,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x63,%eax
jne    135d <comtyp+0x22d>
movsbl -0x1a(%rbp),%eax
cmp    $0x63,%eax
jne    135d <comtyp+0x22d>
movl   $0x18,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x63,%eax
jne    1383 <comtyp+0x253>
movsbl -0x1a(%rbp),%eax
cmp    $0x65,%eax
jne    1383 <comtyp+0x253>
movl   $0x3,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x63,%eax
jne    13a9 <comtyp+0x279>
movsbl -0x1a(%rbp),%eax
cmp    $0x75,%eax
jne    13a9 <comtyp+0x279>
movl   $0x20,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x64,%eax
jne    13cf <comtyp+0x29f>
movsbl -0x1a(%rbp),%eax
cmp    $0x65,%eax
jne    13cf <comtyp+0x29f>
movl   $0x21,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x64,%eax
jne    13f5 <comtyp+0x2c5>
movsbl -0x1a(%rbp),%eax
cmp    $0x73,%eax
jne    13f5 <comtyp+0x2c5>
movl   $0x33,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x65,%eax
jne    141b <comtyp+0x2eb>
movsbl -0x1a(%rbp),%eax
cmp    $0x66,%eax
jne    141b <comtyp+0x2eb>
movl   $0x1d,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x65,%eax
jne    1441 <comtyp+0x311>
movsbl -0x1a(%rbp),%eax
cmp    $0x63,%eax
jne    1441 <comtyp+0x311>
movl   $0x24,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x65,%eax
jne    1467 <comtyp+0x337>
movsbl -0x1a(%rbp),%eax
cmp    $0x68,%eax
jne    1467 <comtyp+0x337>
movl   $0x1b,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x65,%eax
jne    148d <comtyp+0x35d>
movsbl -0x1a(%rbp),%eax
cmp    $0x6e,%eax
jne    148d <comtyp+0x35d>
movl   $0x22,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x2e,%eax
jne    14a6 <comtyp+0x376>
movl   $0x22,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x65,%eax
jne    14cc <comtyp+0x39c>
movsbl -0x1a(%rbp),%eax
cmp    $0x6f,%eax
jne    14cc <comtyp+0x39c>
movl   $0x26,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x66,%eax
jne    14f2 <comtyp+0x3c2>
movsbl -0x1a(%rbp),%eax
cmp    $0x69,%eax
jne    14f2 <comtyp+0x3c2>
movl   $0x4,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x66,%eax
jne    1518 <comtyp+0x3e8>
movsbl -0x1a(%rbp),%eax
cmp    $0x6c,%eax
jne    1518 <comtyp+0x3e8>
movl   $0x28,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x66,%eax
jne    153e <comtyp+0x40e>
movsbl -0x1a(%rbp),%eax
cmp    $0x6f,%eax
jne    153e <comtyp+0x40e>
movl   $0x5,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x66,%eax
jne    1564 <comtyp+0x434>
movsbl -0x1a(%rbp),%eax
cmp    $0x74,%eax
jne    1564 <comtyp+0x434>
movl   $0x25,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x68,%eax
jne    158a <comtyp+0x45a>
movsbl -0x1a(%rbp),%eax
cmp    $0x65,%eax
jne    158a <comtyp+0x45a>
movl   $0x6,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x69,%eax
jne    15b0 <comtyp+0x480>
movsbl -0x1a(%rbp),%eax
cmp    $0x6e,%eax
jne    15b0 <comtyp+0x480>
movl   $0x7,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6a,%eax
jne    15d6 <comtyp+0x4a6>
movsbl -0x1a(%rbp),%eax
cmp    $0x75,%eax
jne    15d6 <comtyp+0x4a6>
movl   $0xf,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6c,%eax
jne    15fc <comtyp+0x4cc>
movsbl -0x1a(%rbp),%eax
cmp    $0x6c,%eax
jne    15fc <comtyp+0x4cc>
movl   $0x27,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6c,%eax
jne    1622 <comtyp+0x4f2>
movsbl -0x1a(%rbp),%eax
cmp    $0x73,%eax
jne    1622 <comtyp+0x4f2>
movl   $0x8,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6d,%eax
jne    1648 <comtyp+0x518>
movsbl -0x1a(%rbp),%eax
cmp    $0x31,%eax
jne    1648 <comtyp+0x518>
movl   $0x11,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6d,%eax
jne    166e <comtyp+0x53e>
movsbl -0x1a(%rbp),%eax
cmp    $0x32,%eax
jne    166e <comtyp+0x53e>
movl   $0x12,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6d,%eax
jne    1694 <comtyp+0x564>
movsbl -0x1a(%rbp),%eax
cmp    $0x33,%eax
jne    1694 <comtyp+0x564>
movl   $0x13,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6d,%eax
jne    16ba <comtyp+0x58a>
movsbl -0x1a(%rbp),%eax
cmp    $0x34,%eax
jne    16ba <comtyp+0x58a>
movl   $0x14,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6e,%eax
jne    16e0 <comtyp+0x5b0>
movsbl -0x1a(%rbp),%eax
cmp    $0x61,%eax
jne    16e0 <comtyp+0x5b0>
movl   $0x32,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6e,%eax
jne    1706 <comtyp+0x5d6>
movsbl -0x1a(%rbp),%eax
cmp    $0x65,%eax
jne    1706 <comtyp+0x5d6>
movl   $0x16,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6e,%eax
jne    172c <comtyp+0x5fc>
movsbl -0x1a(%rbp),%eax
cmp    $0x66,%eax
jne    172c <comtyp+0x5fc>
movl   $0x9,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6e,%eax
jne    1752 <comtyp+0x622>
movsbl -0x1a(%rbp),%eax
cmp    $0x6a,%eax
jne    1752 <comtyp+0x622>
movl   $0x10,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6e,%eax
jne    1778 <comtyp+0x648>
movsbl -0x1a(%rbp),%eax
cmp    $0x72,%eax
jne    1778 <comtyp+0x648>
movl   $0x23,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6f,%eax
jne    179e <comtyp+0x66e>
movsbl -0x1a(%rbp),%eax
cmp    $0x66,%eax
jne    179e <comtyp+0x66e>
movl   $0x1e,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6f,%eax
jne    17c4 <comtyp+0x694>
movsbl -0x1a(%rbp),%eax
cmp    $0x68,%eax
jne    17c4 <comtyp+0x694>
movl   $0x1c,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x70,%eax
jne    17ea <comtyp+0x6ba>
movsbl -0x1a(%rbp),%eax
cmp    $0x63,%eax
jne    17ea <comtyp+0x6ba>
movl   $0x17,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x70,%eax
jne    1810 <comtyp+0x6e0>
movsbl -0x1a(%rbp),%eax
cmp    $0x6c,%eax
jne    1810 <comtyp+0x6e0>
movl   $0xa,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x70,%eax
jne    1836 <comtyp+0x706>
movsbl -0x1a(%rbp),%eax
cmp    $0x6d,%eax
jne    1836 <comtyp+0x706>
movl   $0x34,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x70,%eax
jne    185c <comtyp+0x72c>
movsbl -0x1a(%rbp),%eax
cmp    $0x6f,%eax
jne    185c <comtyp+0x72c>
movl   $0x19,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x72,%eax
jne    1882 <comtyp+0x752>
movsbl -0x1a(%rbp),%eax
cmp    $0x6d,%eax
jne    1882 <comtyp+0x752>
movl   $0xb,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x72,%eax
jne    18a8 <comtyp+0x778>
movsbl -0x1a(%rbp),%eax
cmp    $0x72,%eax
jne    18a8 <comtyp+0x778>
movl   $0x2a,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x73,%eax
jne    18ce <comtyp+0x79e>
movsbl -0x1a(%rbp),%eax
cmp    $0x6f,%eax
jne    18ce <comtyp+0x79e>
movl   $0x1f,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x73,%eax
jne    18f4 <comtyp+0x7c4>
movsbl -0x1a(%rbp),%eax
cmp    $0x70,%eax
jne    18f4 <comtyp+0x7c4>
movl   $0xc,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x74,%eax
jne    191a <comtyp+0x7ea>
movsbl -0x1a(%rbp),%eax
cmp    $0x69,%eax
jne    191a <comtyp+0x7ea>
movl   $0xd,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x74,%eax
jne    1940 <comtyp+0x810>
movsbl -0x1a(%rbp),%eax
cmp    $0x6c,%eax
jne    1940 <comtyp+0x810>
movl   $0x2f,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x75,%eax
jne    1966 <comtyp+0x836>
movsbl -0x1a(%rbp),%eax
cmp    $0x6c,%eax
jne    1966 <comtyp+0x836>
movl   $0xe,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x70,%eax
jne    198c <comtyp+0x85c>
movsbl -0x1a(%rbp),%eax
cmp    $0x6e,%eax
jne    198c <comtyp+0x85c>
movl   $0x29,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x72,%eax
jne    19b2 <comtyp+0x882>
movsbl -0x1a(%rbp),%eax
cmp    $0x72,%eax
jne    19b2 <comtyp+0x882>
movl   $0x2a,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x63,%eax
jne    19d8 <comtyp+0x8a8>
movsbl -0x1a(%rbp),%eax
cmp    $0x32,%eax
jne    19d8 <comtyp+0x8a8>
movl   $0x2b,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x74,%eax
jne    19fe <comtyp+0x8ce>
movsbl -0x1a(%rbp),%eax
cmp    $0x72,%eax
jne    19fe <comtyp+0x8ce>
movl   $0x2c,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x6c,%eax
jne    1a24 <comtyp+0x8f4>
movsbl -0x1a(%rbp),%eax
cmp    $0x74,%eax
jne    1a24 <comtyp+0x8f4>
movl   $0x2d,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movsbl -0x19(%rbp),%eax
cmp    $0x66,%eax
jne    1a4a <comtyp+0x91a>
movsbl -0x1a(%rbp),%eax
cmp    $0x63,%eax
jne    1a4a <comtyp+0x91a>
movl   $0x2e,-0x4(%rbp)
jmp    1a51 <comtyp+0x921>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<comtyp>:
push   %rbp
push   %r15
push   %r14
push   %rbx
sub    $0x18,%rsp
mov    %rsi,%r15
mov    %rdi,%rbp
add    $0x1,%rbp
movzbl 0x0(%rbp),%eax
cmp    $0x9,%al
je     1140 <comtyp+0x10>
cmp    $0x20,%al
je     1140 <comtyp+0x10>
test   %al,%al
jne    115f <comtyp+0x2f>
mov    $0x3e8,%r14d
jmp    1296 <comtyp+0x166>
xor    %r14d,%r14d
lea    0xe(%rsp),%rbx
mov    %rbp,%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <getwrd@plt>
movb   $0x0,0x10(%rsp)
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <getmac@plt>
test   %eax,%eax
je     1197 <comtyp+0x67>
movslq %eax,%rsi
mov    %r15,%rdi
call   1030 <strcpy@plt>
jmp    1296 <comtyp+0x166>
mov    0x0(%rbp),%al
mov    0x1(%rbp),%bl
cmp    $0x5c,%al
jne    11b0 <comtyp+0x80>
mov    $0x3e8,%r14d
cmp    $0x22,%bl
je     1296 <comtyp+0x166>
cmp    $0x61,%al
jne    11c3 <comtyp+0x93>
mov    $0x30,%r14d
cmp    $0x66,%bl
je     1296 <comtyp+0x166>
cmp    $0x61,%al
jne    11d6 <comtyp+0xa6>
mov    $0x31,%r14d
cmp    $0x64,%bl
je     1296 <comtyp+0x166>
cmp    $0x62,%al
jne    11e9 <comtyp+0xb9>
mov    $0x1a,%r14d
cmp    $0x6f,%bl
je     1296 <comtyp+0x166>
cmp    $0x62,%al
jne    11fc <comtyp+0xcc>
mov    $0x1,%r14d
cmp    $0x70,%bl
je     1296 <comtyp+0x166>
cmp    $0x62,%al
jne    120f <comtyp+0xdf>
mov    $0x2,%r14d
cmp    $0x72,%bl
je     1296 <comtyp+0x166>
cmp    $0x62,%al
jne    121e <comtyp+0xee>
mov    $0x15,%r14d
cmp    $0x73,%bl
je     1296 <comtyp+0x166>
cmp    $0x63,%al
jne    122d <comtyp+0xfd>
mov    $0x18,%r14d
cmp    $0x63,%bl
je     1296 <comtyp+0x166>
cmp    $0x63,%al
jne    123c <comtyp+0x10c>
mov    $0x3,%r14d
cmp    $0x65,%bl
je     1296 <comtyp+0x166>
cmp    $0x63,%al
jne    124b <comtyp+0x11b>
mov    $0x20,%r14d
cmp    $0x75,%bl
je     1296 <comtyp+0x166>
cmp    $0x64,%al
jne    125a <comtyp+0x12a>
mov    $0x21,%r14d
cmp    $0x65,%bl
je     1296 <comtyp+0x166>
cmp    $0x64,%al
jne    1269 <comtyp+0x139>
mov    $0x33,%r14d
cmp    $0x73,%bl
je     1296 <comtyp+0x166>
cmp    $0x65,%al
jne    1278 <comtyp+0x148>
mov    $0x1d,%r14d
cmp    $0x66,%bl
je     1296 <comtyp+0x166>
cmp    $0x65,%al
jne    1287 <comtyp+0x157>
mov    $0x24,%r14d
cmp    $0x63,%bl
je     1296 <comtyp+0x166>
cmp    $0x65,%al
jne    12a4 <comtyp+0x174>
mov    $0x1b,%r14d
cmp    $0x68,%bl
jne    12a4 <comtyp+0x174>
mov    %r14d,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r14
pop    %r15
pop    %rbp
ret
mov    %eax,%edx
xor    $0x65,%dl
mov    %ebx,%ecx
xor    $0x6e,%cl
or     %dl,%cl
sete   %dl
mov    $0x22,%r14d
cmp    $0x2e,%al
je     1296 <comtyp+0x166>
test   %dl,%dl
jne    1296 <comtyp+0x166>
cmp    $0x65,%al
jne    12d0 <comtyp+0x1a0>
mov    $0x26,%r14d
cmp    $0x6f,%bl
je     1296 <comtyp+0x166>
cmp    $0x66,%al
jne    12df <comtyp+0x1af>
mov    $0x4,%r14d
cmp    $0x69,%bl
je     1296 <comtyp+0x166>
cmp    $0x66,%al
jne    12ee <comtyp+0x1be>
mov    $0x28,%r14d
cmp    $0x6c,%bl
je     1296 <comtyp+0x166>
cmp    $0x66,%al
jne    12fd <comtyp+0x1cd>
mov    $0x5,%r14d
cmp    $0x6f,%bl
je     1296 <comtyp+0x166>
cmp    $0x66,%al
jne    130c <comtyp+0x1dc>
mov    $0x25,%r14d
cmp    $0x74,%bl
je     1296 <comtyp+0x166>
cmp    $0x68,%al
jne    131f <comtyp+0x1ef>
mov    $0x6,%r14d
cmp    $0x65,%bl
je     1296 <comtyp+0x166>
cmp    $0x69,%al
jne    1332 <comtyp+0x202>
mov    $0x7,%r14d
cmp    $0x6e,%bl
je     1296 <comtyp+0x166>
cmp    $0x6a,%al
jne    1345 <comtyp+0x215>
mov    $0xf,%r14d
cmp    $0x75,%bl
je     1296 <comtyp+0x166>
cmp    $0x6c,%al
jne    1358 <comtyp+0x228>
mov    $0x27,%r14d
cmp    $0x6c,%bl
je     1296 <comtyp+0x166>
cmp    $0x6c,%al
jne    136b <comtyp+0x23b>
mov    $0x8,%r14d
cmp    $0x73,%bl
je     1296 <comtyp+0x166>
cmp    $0x6d,%al
jne    137e <comtyp+0x24e>
mov    $0x11,%r14d
cmp    $0x31,%bl
je     1296 <comtyp+0x166>
cmp    $0x6d,%al
jne    1391 <comtyp+0x261>
mov    $0x12,%r14d
cmp    $0x32,%bl
je     1296 <comtyp+0x166>
cmp    $0x6d,%al
jne    13a4 <comtyp+0x274>
mov    $0x13,%r14d
cmp    $0x33,%bl
je     1296 <comtyp+0x166>
cmp    $0x6d,%al
jne    13b7 <comtyp+0x287>
mov    $0x14,%r14d
cmp    $0x34,%bl
je     1296 <comtyp+0x166>
cmp    $0x6e,%al
jne    13ca <comtyp+0x29a>
mov    $0x32,%r14d
cmp    $0x61,%bl
je     1296 <comtyp+0x166>
cmp    $0x6e,%al
jne    13dd <comtyp+0x2ad>
mov    $0x16,%r14d
cmp    $0x65,%bl
je     1296 <comtyp+0x166>
cmp    $0x6e,%al
jne    13f0 <comtyp+0x2c0>
mov    $0x9,%r14d
cmp    $0x66,%bl
je     1296 <comtyp+0x166>
cmp    $0x6e,%al
jne    1403 <comtyp+0x2d3>
mov    $0x10,%r14d
cmp    $0x6a,%bl
je     1296 <comtyp+0x166>
cmp    $0x6e,%al
jne    1416 <comtyp+0x2e6>
mov    $0x23,%r14d
cmp    $0x72,%bl
je     1296 <comtyp+0x166>
cmp    $0x6f,%al
jne    1429 <comtyp+0x2f9>
mov    $0x1e,%r14d
cmp    $0x66,%bl
je     1296 <comtyp+0x166>
cmp    $0x6f,%al
jne    143c <comtyp+0x30c>
mov    $0x1c,%r14d
cmp    $0x68,%bl
je     1296 <comtyp+0x166>
cmp    $0x70,%al
jne    144f <comtyp+0x31f>
mov    $0x17,%r14d
cmp    $0x63,%bl
je     1296 <comtyp+0x166>
cmp    $0x70,%al
jne    1462 <comtyp+0x332>
mov    $0xa,%r14d
cmp    $0x6c,%bl
je     1296 <comtyp+0x166>
cmp    $0x70,%al
jne    1475 <comtyp+0x345>
mov    $0x34,%r14d
cmp    $0x6d,%bl
je     1296 <comtyp+0x166>
cmp    $0x70,%al
jne    1488 <comtyp+0x358>
mov    $0x19,%r14d
cmp    $0x6f,%bl
je     1296 <comtyp+0x166>
cmp    $0x72,%al
jne    149b <comtyp+0x36b>
mov    $0xb,%r14d
cmp    $0x6d,%bl
je     1296 <comtyp+0x166>
cmp    $0x72,%al
jne    14ae <comtyp+0x37e>
mov    $0x2a,%r14d
cmp    $0x72,%bl
je     1296 <comtyp+0x166>
cmp    $0x73,%al
jne    14c1 <comtyp+0x391>
mov    $0x1f,%r14d
cmp    $0x6f,%bl
je     1296 <comtyp+0x166>
cmp    $0x73,%al
jne    14d4 <comtyp+0x3a4>
mov    $0xc,%r14d
cmp    $0x70,%bl
je     1296 <comtyp+0x166>
cmp    $0x74,%al
jne    14e7 <comtyp+0x3b7>
mov    $0xd,%r14d
cmp    $0x69,%bl
je     1296 <comtyp+0x166>
cmp    $0x74,%al
jne    14fa <comtyp+0x3ca>
mov    $0x2f,%r14d
cmp    $0x6c,%bl
je     1296 <comtyp+0x166>
cmp    $0x75,%al
jne    150d <comtyp+0x3dd>
mov    $0xe,%r14d
cmp    $0x6c,%bl
je     1296 <comtyp+0x166>
cmp    $0x70,%al
jne    1520 <comtyp+0x3f0>
mov    $0x29,%r14d
cmp    $0x6e,%bl
je     1296 <comtyp+0x166>
cmp    $0x63,%al
jne    1533 <comtyp+0x403>
mov    $0x2b,%r14d
cmp    $0x32,%bl
je     1296 <comtyp+0x166>
cmp    $0x74,%al
jne    1546 <comtyp+0x416>
mov    $0x2c,%r14d
cmp    $0x72,%bl
je     1296 <comtyp+0x166>
cmp    $0x6c,%al
jne    1559 <comtyp+0x429>
mov    $0x2d,%r14d
cmp    $0x74,%bl
je     1296 <comtyp+0x166>
xor    $0x66,%al
xor    $0x63,%bl
or     %al,%bl
mov    $0x2e,%eax
mov    $0xffffffff,%r14d
cmove  %eax,%r14d
jmp    1296 <comtyp+0x166>

LLVM IR (-O0):
define i32 @comtyp(i8* %0, i8* %1) {
%3 = alloca i32
%4 = alloca i8*
%5 = alloca i8*
%6 = alloca i8
%7 = alloca i8
%8 = alloca i8*
%9 = alloca [10 x i8]
store i8* %0, i8** %4
store i8* %1, i8** %5
%10 = load i8*, i8** %4
%11 = getelementptr inbounds i8, i8* %10, i32 1
store i8* %11, i8** %4
br label %12
12: ; preds = %31, %2
%13 = load i8*, i8** %4
%14 = load i8, i8* %13
%15 = sext i8 %14 to i32
%16 = icmp ne i32 %15, 0
br i1 %16, label %17, label %29
17: ; preds = %12
%18 = load i8*, i8** %4
%19 = load i8, i8* %18
%20 = sext i8 %19 to i32
%21 = icmp eq i32 %20, 32
br i1 %21, label %27, label %22
22: ; preds = %17
%23 = load i8*, i8** %4
%24 = load i8, i8* %23
%25 = sext i8 %24 to i32
%26 = icmp eq i32 %25, 9
br label %27
27: ; preds = %22, %17
%28 = phi i1 [ true, %17 ], [ %26, %22 ]
br label %29
29: ; preds = %27, %12
%30 = phi i1 [ false, %12 ], [ %28, %27 ]
br i1 %30, label %31, label %34
31: ; preds = %29
%32 = load i8*, i8** %4
%33 = getelementptr inbounds i8, i8* %32, i32 1
store i8* %33, i8** %4
br label %12
34: ; preds = %29
%35 = load i8*, i8** %4
%36 = load i8, i8* %35
%37 = sext i8 %36 to i32
%38 = icmp eq i32 %37, 0
br i1 %38, label %39, label %40
39: ; preds = %34
store i32 1000, i32* %3
br label %551
40: ; preds = %34
%41 = load i8*, i8** %4
%42 = getelementptr inbounds [10 x i8], [10 x i8]* %9, i64 0, i64 0
%43 = call i32 (i8*, i8*, ...) bitcast (i32 (...)* @getwrd to i32 (i8*, i8*, ...)*)(i8* %41, i8* %42)
%44 = getelementptr inbounds [10 x i8], [10 x i8]* %9, i64 0, i64 2
store i8 0, i8* %44
%45 = getelementptr inbounds [10 x i8], [10 x i8]* %9, i64 0, i64 0
%46 = call i32 (i8*, ...) bitcast (i32 (...)* @getmac to i32 (i8*, ...)*)(i8* %45)
%47 = sext i32 %46 to i64
%48 = inttoptr i64 %47 to i8*
store i8* %48, i8** %8
%49 = icmp ne i8* %48, null
br i1 %49, label %50, label %54
50: ; preds = %40
%51 = load i8*, i8** %5
%52 = load i8*, i8** %8
%53 = call i8* @strcpy(i8* %51, i8* %52)
store i32 0, i32* %3
br label %551
54: ; preds = %40
%55 = load i8*, i8** %4
%56 = getelementptr inbounds i8, i8* %55, i32 1
store i8* %56, i8** %4
%57 = load i8, i8* %55
store i8 %57, i8* %6
%58 = load i8*, i8** %4
%59 = load i8, i8* %58
store i8 %59, i8* %7
%60 = load i8, i8* %6
%61 = sext i8 %60 to i32
%62 = icmp eq i32 %61, 92
br i1 %62, label %63, label %68
63: ; preds = %54
%64 = load i8, i8* %7
%65 = sext i8 %64 to i32
%66 = icmp eq i32 %65, 34
br i1 %66, label %67, label %68
67: ; preds = %63
store i32 1000, i32* %3
br label %551
68: ; preds = %63, %54
%69 = load i8, i8* %6
%70 = sext i8 %69 to i32
%71 = icmp eq i32 %70, 97
br i1 %71, label %72, label %77
72: ; preds = %68
%73 = load i8, i8* %7
%74 = sext i8 %73 to i32
%75 = icmp eq i32 %74, 102
br i1 %75, label %76, label %77
76: ; preds = %72
store i32 48, i32* %3
br label %551
77: ; preds = %72, %68
%78 = load i8, i8* %6
%79 = sext i8 %78 to i32
%80 = icmp eq i32 %79, 97
br i1 %80, label %81, label %86
81: ; preds = %77
%82 = load i8, i8* %7
%83 = sext i8 %82 to i32
%84 = icmp eq i32 %83, 100
br i1 %84, label %85, label %86
85: ; preds = %81
store i32 49, i32* %3
br label %551
86: ; preds = %81, %77
%87 = load i8, i8* %6
%88 = sext i8 %87 to i32
%89 = icmp eq i32 %88, 98
br i1 %89, label %90, label %95
90: ; preds = %86
%91 = load i8, i8* %7
%92 = sext i8 %91 to i32
%93 = icmp eq i32 %92, 111
br i1 %93, label %94, label %95
94: ; preds = %90
store i32 26, i32* %3
br label %551
95: ; preds = %90, %86
%96 = load i8, i8* %6
%97 = sext i8 %96 to i32
%98 = icmp eq i32 %97, 98
br i1 %98, label %99, label %104
99: ; preds = %95
%100 = load i8, i8* %7
%101 = sext i8 %100 to i32
%102 = icmp eq i32 %101, 112
br i1 %102, label %103, label %104
103: ; preds = %99
store i32 1, i32* %3
br label %551
104: ; preds = %99, %95
%105 = load i8, i8* %6
%106 = sext i8 %105 to i32
%107 = icmp eq i32 %106, 98
br i1 %107, label %108, label %113
108: ; preds = %104
%109 = load i8, i8* %7
%110 = sext i8 %109 to i32
%111 = icmp eq i32 %110, 114
br i1 %111, label %112, label %113
112: ; preds = %108
store i32 2, i32* %3
br label %551
113: ; preds = %108, %104
%114 = load i8, i8* %6
%115 = sext i8 %114 to i32
%116 = icmp eq i32 %115, 98
br i1 %116, label %117, label %122
117: ; preds = %113
%118 = load i8, i8* %7
%119 = sext i8 %118 to i32
%120 = icmp eq i32 %119, 115
br i1 %120, label %121, label %122
121: ; preds = %117
store i32 21, i32* %3
br label %551
122: ; preds = %117, %113
%123 = load i8, i8* %6
%124 = sext i8 %123 to i32
%125 = icmp eq i32 %124, 99
br i1 %125, label %126, label %131
126: ; preds = %122
%127 = load i8, i8* %7
%128 = sext i8 %127 to i32
%129 = icmp eq i32 %128, 99
br i1 %129, label %130, label %131
130: ; preds = %126
store i32 24, i32* %3
br label %551
131: ; preds = %126, %122
%132 = load i8, i8* %6
%133 = sext i8 %132 to i32
%134 = icmp eq i32 %133, 99
br i1 %134, label %135, label %140
135: ; preds = %131
%136 = load i8, i8* %7
%137 = sext i8 %136 to i32
%138 = icmp eq i32 %137, 101
br i1 %138, label %139, label %140
139: ; preds = %135
store i32 3, i32* %3
br label %551
140: ; preds = %135, %131
%141 = load i8, i8* %6
%142 = sext i8 %141 to i32
%143 = icmp eq i32 %142, 99
br i1 %143, label %144, label %149
144: ; preds = %140
%145 = load i8, i8* %7
%146 = sext i8 %145 to i32
%147 = icmp eq i32 %146, 117
br i1 %147, label %148, label %149
148: ; preds = %144
store i32 32, i32* %3
br label %551
149: ; preds = %144, %140
%150 = load i8, i8* %6
%151 = sext i8 %150 to i32
%152 = icmp eq i32 %151, 100
br i1 %152, label %153, label %158
153: ; preds = %149
%154 = load i8, i8* %7
%155 = sext i8 %154 to i32
%156 = icmp eq i32 %155, 101
br i1 %156, label %157, label %158
157: ; preds = %153
store i32 33, i32* %3
br label %551
158: ; preds = %153, %149
%159 = load i8, i8* %6
%160 = sext i8 %159 to i32
%161 = icmp eq i32 %160, 100
br i1 %161, label %162, label %167
162: ; preds = %158
%163 = load i8, i8* %7
%164 = sext i8 %163 to i32
%165 = icmp eq i32 %164, 115
br i1 %165, label %166, label %167
166: ; preds = %162
store i32 51, i32* %3
br label %551
167: ; preds = %162, %158
%168 = load i8, i8* %6
%169 = sext i8 %168 to i32
%170 = icmp eq i32 %169, 101
br i1 %170, label %171, label %176
171: ; preds = %167
%172 = load i8, i8* %7
%173 = sext i8 %172 to i32
%174 = icmp eq i32 %173, 102
br i1 %174, label %175, label %176
175: ; preds = %171
store i32 29, i32* %3
br label %551
176: ; preds = %171, %167
%177 = load i8, i8* %6
%178 = sext i8 %177 to i32
%179 = icmp eq i32 %178, 101
br i1 %179, label %180, label %185
180: ; preds = %176
%181 = load i8, i8* %7
%182 = sext i8 %181 to i32
%183 = icmp eq i32 %182, 99
br i1 %183, label %184, label %185
184: ; preds = %180
store i32 36, i32* %3
br label %551
185: ; preds = %180, %176
%186 = load i8, i8* %6
%187 = sext i8 %186 to i32
%188 = icmp eq i32 %187, 101
br i1 %188, label %189, label %194
189: ; preds = %185
%190 = load i8, i8* %7
%191 = sext i8 %190 to i32
%192 = icmp eq i32 %191, 104
br i1 %192, label %193, label %194
193: ; preds = %189
store i32 27, i32* %3
br label %551
194: ; preds = %189, %185
%195 = load i8, i8* %6
%196 = sext i8 %195 to i32
%197 = icmp eq i32 %196, 101
br i1 %197, label %198, label %203
198: ; preds = %194
%199 = load i8, i8* %7
%200 = sext i8 %199 to i32
%201 = icmp eq i32 %200, 110
br i1 %201, label %202, label %203
202: ; preds = %198
store i32 34, i32* %3
br label %551
203: ; preds = %198, %194
%204 = load i8, i8* %6
%205 = sext i8 %204 to i32
%206 = icmp eq i32 %205, 46
br i1 %206, label %207, label %208
207: ; preds = %203
store i32 34, i32* %3
br label %551
208: ; preds = %203
%209 = load i8, i8* %6
%210 = sext i8 %209 to i32
%211 = icmp eq i32 %210, 101
br i1 %211, label %212, label %217
212: ; preds = %208
%213 = load i8, i8* %7
%214 = sext i8 %213 to i32
%215 = icmp eq i32 %214, 111
br i1 %215, label %216, label %217
216: ; preds = %212
store i32 38, i32* %3
br label %551
217: ; preds = %212, %208
%218 = load i8, i8* %6
%219 = sext i8 %218 to i32
%220 = icmp eq i32 %219, 102
br i1 %220, label %221, label %226
221: ; preds = %217
%222 = load i8, i8* %7
%223 = sext i8 %222 to i32
%224 = icmp eq i32 %223, 105
br i1 %224, label %225, label %226
225: ; preds = %221
store i32 4, i32* %3
br label %551
226: ; preds = %221, %217
%227 = load i8, i8* %6
%228 = sext i8 %227 to i32
%229 = icmp eq i32 %228, 102
br i1 %229, label %230, label %235
230: ; preds = %226
%231 = load i8, i8* %7
%232 = sext i8 %231 to i32
%233 = icmp eq i32 %232, 108
br i1 %233, label %234, label %235
234: ; preds = %230
store i32 40, i32* %3
br label %551
235: ; preds = %230, %226
%236 = load i8, i8* %6
%237 = sext i8 %236 to i32
%238 = icmp eq i32 %237, 102
br i1 %238, label %239, label %244
239: ; preds = %235
%240 = load i8, i8* %7
%241 = sext i8 %240 to i32
%242 = icmp eq i32 %241, 111
br i1 %242, label %243, label %244
243: ; preds = %239
store i32 5, i32* %3
br label %551
244: ; preds = %239, %235
%245 = load i8, i8* %6
%246 = sext i8 %245 to i32
%247 = icmp eq i32 %246, 102
br i1 %247, label %248, label %253
248: ; preds = %244
%249 = load i8, i8* %7
%250 = sext i8 %249 to i32
%251 = icmp eq i32 %250, 116
br i1 %251, label %252, label %253
252: ; preds = %248
store i32 37, i32* %3
br label %551
253: ; preds = %248, %244
%254 = load i8, i8* %6
%255 = sext i8 %254 to i32
%256 = icmp eq i32 %255, 104
br i1 %256, label %257, label %262
257: ; preds = %253
%258 = load i8, i8* %7
%259 = sext i8 %258 to i32
%260 = icmp eq i32 %259, 101
br i1 %260, label %261, label %262
261: ; preds = %257
store i32 6, i32* %3
br label %551
262: ; preds = %257, %253
%263 = load i8, i8* %6
%264 = sext i8 %263 to i32
%265 = icmp eq i32 %264, 105
br i1 %265, label %266, label %271
266: ; preds = %262
%267 = load i8, i8* %7
%268 = sext i8 %267 to i32
%269 = icmp eq i32 %268, 110
br i1 %269, label %270, label %271
270: ; preds = %266
store i32 7, i32* %3
br label %551
271: ; preds = %266, %262
%272 = load i8, i8* %6
%273 = sext i8 %272 to i32
%274 = icmp eq i32 %273, 106
br i1 %274, label %275, label %280
275: ; preds = %271
%276 = load i8, i8* %7
%277 = sext i8 %276 to i32
%278 = icmp eq i32 %277, 117
br i1 %278, label %279, label %280
279: ; preds = %275
store i32 15, i32* %3
br label %551
280: ; preds = %275, %271
%281 = load i8, i8* %6
%282 = sext i8 %281 to i32
%283 = icmp eq i32 %282, 108
br i1 %283, label %284, label %289
284: ; preds = %280
%285 = load i8, i8* %7
%286 = sext i8 %285 to i32
%287 = icmp eq i32 %286, 108
br i1 %287, label %288, label %289
288: ; preds = %284
store i32 39, i32* %3
br label %551
289: ; preds = %284, %280
%290 = load i8, i8* %6
%291 = sext i8 %290 to i32
%292 = icmp eq i32 %291, 108
br i1 %292, label %293, label %298
293: ; preds = %289
%294 = load i8, i8* %7
%295 = sext i8 %294 to i32
%296 = icmp eq i32 %295, 115
br i1 %296, label %297, label %298
297: ; preds = %293
store i32 8, i32* %3
br label %551
298: ; preds = %293, %289
%299 = load i8, i8* %6
%300 = sext i8 %299 to i32
%301 = icmp eq i32 %300, 109
br i1 %301, label %302, label %307
302: ; preds = %298
%303 = load i8, i8* %7
%304 = sext i8 %303 to i32
%305 = icmp eq i32 %304, 49
br i1 %305, label %306, label %307
306: ; preds = %302
store i32 17, i32* %3
br label %551
307: ; preds = %302, %298
%308 = load i8, i8* %6
%309 = sext i8 %308 to i32
%310 = icmp eq i32 %309, 109
br i1 %310, label %311, label %316
311: ; preds = %307
%312 = load i8, i8* %7
%313 = sext i8 %312 to i32
%314 = icmp eq i32 %313, 50
br i1 %314, label %315, label %316
315: ; preds = %311
store i32 18, i32* %3
br label %551
316: ; preds = %311, %307
%317 = load i8, i8* %6
%318 = sext i8 %317 to i32
%319 = icmp eq i32 %318, 109
br i1 %319, label %320, label %325
320: ; preds = %316
%321 = load i8, i8* %7
%322 = sext i8 %321 to i32
%323 = icmp eq i32 %322, 51
br i1 %323, label %324, label %325
324: ; preds = %320
store i32 19, i32* %3
br label %551
325: ; preds = %320, %316
%326 = load i8, i8* %6
%327 = sext i8 %326 to i32
%328 = icmp eq i32 %327, 109
br i1 %328, label %329, label %334
329: ; preds = %325
%330 = load i8, i8* %7
%331 = sext i8 %330 to i32
%332 = icmp eq i32 %331, 52
br i1 %332, label %333, label %334
333: ; preds = %329
store i32 20, i32* %3
br label %551
334: ; preds = %329, %325
%335 = load i8, i8* %6
%336 = sext i8 %335 to i32
%337 = icmp eq i32 %336, 110
br i1 %337, label %338, label %343
338: ; preds = %334
%339 = load i8, i8* %7
%340 = sext i8 %339 to i32
%341 = icmp eq i32 %340, 97
br i1 %341, label %342, label %343
342: ; preds = %338
store i32 50, i32* %3
br label %551
343: ; preds = %338, %334
%344 = load i8, i8* %6
%345 = sext i8 %344 to i32
%346 = icmp eq i32 %345, 110
br i1 %346, label %347, label %352
347: ; preds = %343
%348 = load i8, i8* %7
%349 = sext i8 %348 to i32
%350 = icmp eq i32 %349, 101
br i1 %350, label %351, label %352
351: ; preds = %347
store i32 22, i32* %3
br label %551
352: ; preds = %347, %343
%353 = load i8, i8* %6
%354 = sext i8 %353 to i32
%355 = icmp eq i32 %354, 110
br i1 %355, label %356, label %361
356: ; preds = %352
%357 = load i8, i8* %7
%358 = sext i8 %357 to i32
%359 = icmp eq i32 %358, 102
br i1 %359, label %360, label %361
360: ; preds = %356
store i32 9, i32* %3
br label %551
361: ; preds = %356, %352
%362 = load i8, i8* %6
%363 = sext i8 %362 to i32
%364 = icmp eq i32 %363, 110
br i1 %364, label %365, label %370
365: ; preds = %361
%366 = load i8, i8* %7
%367 = sext i8 %366 to i32
%368 = icmp eq i32 %367, 106
br i1 %368, label %369, label %370
369: ; preds = %365
store i32 16, i32* %3
br label %551
370: ; preds = %365, %361
%371 = load i8, i8* %6
%372 = sext i8 %371 to i32
%373 = icmp eq i32 %372, 110
br i1 %373, label %374, label %379
374: ; preds = %370
%375 = load i8, i8* %7
%376 = sext i8 %375 to i32
%377 = icmp eq i32 %376, 114
br i1 %377, label %378, label %379
378: ; preds = %374
store i32 35, i32* %3
br label %551
379: ; preds = %374, %370
%380 = load i8, i8* %6
%381 = sext i8 %380 to i32
%382 = icmp eq i32 %381, 111
br i1 %382, label %383, label %388
383: ; preds = %379
%384 = load i8, i8* %7
%385 = sext i8 %384 to i32
%386 = icmp eq i32 %385, 102
br i1 %386, label %387, label %388
387: ; preds = %383
store i32 30, i32* %3
br label %551
388: ; preds = %383, %379
%389 = load i8, i8* %6
%390 = sext i8 %389 to i32
%391 = icmp eq i32 %390, 111
br i1 %391, label %392, label %397
392: ; preds = %388
%393 = load i8, i8* %7
%394 = sext i8 %393 to i32
%395 = icmp eq i32 %394, 104
br i1 %395, label %396, label %397
396: ; preds = %392
store i32 28, i32* %3
br label %551
397: ; preds = %392, %388
%398 = load i8, i8* %6
%399 = sext i8 %398 to i32
%400 = icmp eq i32 %399, 112
br i1 %400, label %401, label %406
401: ; preds = %397
%402 = load i8, i8* %7
%403 = sext i8 %402 to i32
%404 = icmp eq i32 %403, 99
br i1 %404, label %405, label %406
405: ; preds = %401
store i32 23, i32* %3
br label %551
406: ; preds = %401, %397
%407 = load i8, i8* %6
%408 = sext i8 %407 to i32
%409 = icmp eq i32 %408, 112
br i1 %409, label %410, label %415
410: ; preds = %406
%411 = load i8, i8* %7
%412 = sext i8 %411 to i32
%413 = icmp eq i32 %412, 108
br i1 %413, label %414, label %415
414: ; preds = %410
store i32 10, i32* %3
br label %551
415: ; preds = %410, %406
%416 = load i8, i8* %6
%417 = sext i8 %416 to i32
%418 = icmp eq i32 %417, 112
br i1 %418, label %419, label %424
419: ; preds = %415
%420 = load i8, i8* %7
%421 = sext i8 %420 to i32
%422 = icmp eq i32 %421, 109
br i1 %422, label %423, label %424
423: ; preds = %419
store i32 52, i32* %3
br label %551
424: ; preds = %419, %415
%425 = load i8, i8* %6
%426 = sext i8 %425 to i32
%427 = icmp eq i32 %426, 112
br i1 %427, label %428, label %433
428: ; preds = %424
%429 = load i8, i8* %7
%430 = sext i8 %429 to i32
%431 = icmp eq i32 %430, 111
br i1 %431, label %432, label %433
432: ; preds = %428
store i32 25, i32* %3
br label %551
433: ; preds = %428, %424
%434 = load i8, i8* %6
%435 = sext i8 %434 to i32
%436 = icmp eq i32 %435, 114
br i1 %436, label %437, label %442
437: ; preds = %433
%438 = load i8, i8* %7
%439 = sext i8 %438 to i32
%440 = icmp eq i32 %439, 109
br i1 %440, label %441, label %442
441: ; preds = %437
store i32 11, i32* %3
br label %551
442: ; preds = %437, %433
%443 = load i8, i8* %6
%444 = sext i8 %443 to i32
%445 = icmp eq i32 %444, 114
br i1 %445, label %446, label %451
446: ; preds = %442
%447 = load i8, i8* %7
%448 = sext i8 %447 to i32
%449 = icmp eq i32 %448, 114
br i1 %449, label %450, label %451
450: ; preds = %446
store i32 42, i32* %3
br label %551
451: ; preds = %446, %442
%452 = load i8, i8* %6
%453 = sext i8 %452 to i32
%454 = icmp eq i32 %453, 115
br i1 %454, label %455, label %460
455: ; preds = %451
%456 = load i8, i8* %7
%457 = sext i8 %456 to i32
%458 = icmp eq i32 %457, 111
br i1 %458, label %459, label %460
459: ; preds = %455
store i32 31, i32* %3
br label %551
460: ; preds = %455, %451
%461 = load i8, i8* %6
%462 = sext i8 %461 to i32
%463 = icmp eq i32 %462, 115
br i1 %463, label %464, label %469
464: ; preds = %460
%465 = load i8, i8* %7
%466 = sext i8 %465 to i32
%467 = icmp eq i32 %466, 112
br i1 %467, label %468, label %469
468: ; preds = %464
store i32 12, i32* %3
br label %551
469: ; preds = %464, %460
%470 = load i8, i8* %6
%471 = sext i8 %470 to i32
%472 = icmp eq i32 %471, 116
br i1 %472, label %473, label %478
473: ; preds = %469
%474 = load i8, i8* %7
%475 = sext i8 %474 to i32
%476 = icmp eq i32 %475, 105
br i1 %476, label %477, label %478
477: ; preds = %473
store i32 13, i32* %3
br label %551
478: ; preds = %473, %469
%479 = load i8, i8* %6
%480 = sext i8 %479 to i32
%481 = icmp eq i32 %480, 116
br i1 %481, label %482, label %487
482: ; preds = %478
%483 = load i8, i8* %7
%484 = sext i8 %483 to i32
%485 = icmp eq i32 %484, 108
br i1 %485, label %486, label %487
486: ; preds = %482
store i32 47, i32* %3
br label %551
487: ; preds = %482, %478
%488 = load i8, i8* %6
%489 = sext i8 %488 to i32
%490 = icmp eq i32 %489, 117
br i1 %490, label %491, label %496
491: ; preds = %487
%492 = load i8, i8* %7
%493 = sext i8 %492 to i32
%494 = icmp eq i32 %493, 108
br i1 %494, label %495, label %496
495: ; preds = %491
store i32 14, i32* %3
br label %551
496: ; preds = %491, %487
%497 = load i8, i8* %6
%498 = sext i8 %497 to i32
%499 = icmp eq i32 %498, 112
br i1 %499, label %500, label %505
500: ; preds = %496
%501 = load i8, i8* %7
%502 = sext i8 %501 to i32
%503 = icmp eq i32 %502, 110
br i1 %503, label %504, label %505
504: ; preds = %500
store i32 41, i32* %3
br label %551
505: ; preds = %500, %496
%506 = load i8, i8* %6
%507 = sext i8 %506 to i32
%508 = icmp eq i32 %507, 114
br i1 %508, label %509, label %514
509: ; preds = %505
%510 = load i8, i8* %7
%511 = sext i8 %510 to i32
%512 = icmp eq i32 %511, 114
br i1 %512, label %513, label %514
513: ; preds = %509
store i32 42, i32* %3
br label %551
514: ; preds = %509, %505
%515 = load i8, i8* %6
%516 = sext i8 %515 to i32
%517 = icmp eq i32 %516, 99
br i1 %517, label %518, label %523
518: ; preds = %514
%519 = load i8, i8* %7
%520 = sext i8 %519 to i32
%521 = icmp eq i32 %520, 50
br i1 %521, label %522, label %523
522: ; preds = %518
store i32 43, i32* %3
br label %551
523: ; preds = %518, %514
%524 = load i8, i8* %6
%525 = sext i8 %524 to i32
%526 = icmp eq i32 %525, 116
br i1 %526, label %527, label %532
527: ; preds = %523
%528 = load i8, i8* %7
%529 = sext i8 %528 to i32
%530 = icmp eq i32 %529, 114
br i1 %530, label %531, label %532
531: ; preds = %527
store i32 44, i32* %3
br label %551
532: ; preds = %527, %523
%533 = load i8, i8* %6
%534 = sext i8 %533 to i32
%535 = icmp eq i32 %534, 108
br i1 %535, label %536, label %541
536: ; preds = %532
%537 = load i8, i8* %7
%538 = sext i8 %537 to i32
%539 = icmp eq i32 %538, 116
br i1 %539, label %540, label %541
540: ; preds = %536
store i32 45, i32* %3
br label %551
541: ; preds = %536, %532
%542 = load i8, i8* %6
%543 = sext i8 %542 to i32
%544 = icmp eq i32 %543, 102
br i1 %544, label %545, label %550
545: ; preds = %541
%546 = load i8, i8* %7
%547 = sext i8 %546 to i32
%548 = icmp eq i32 %547, 99
br i1 %548, label %549, label %550
549: ; preds = %545
store i32 46, i32* %3
br label %551
550: ; preds = %545, %541
store i32 -1, i32* %3
br label %551
551: ; preds = %550, %549, %540, %531, %522, %513, %504, %495, %486, %477, %468, %459, %450, %441, %432, %423, %414, %405, %396, %387, %378, %369, %360, %351, %342, %333, %324, %315, %306, %297, %288, %279, %270, %261, %252, %243, %234, %225, %216, %207, %202, %193, %184, %175, %166, %157, %148, %139, %130, %121, %112, %103, %94, %85, %76, %67, %50, %39
%552 = load i32, i32* %3
ret i32 %552
}

LLVM IR (-O2):
define i32 @comtyp(i8* %0, i8* %1) {
%3 = alloca [10 x i8]
%4 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 0
br label %5
5: ; preds = %9, %2
%6 = phi i8* [ %0, %2 ], [ %7, %9 ]
%7 = getelementptr inbounds i8, i8* %6, i64 1
%8 = load i8, i8* %7
switch i8 %8, label %10 [
i8 9, label %9
i8 32, label %9
i8 0, label %172
]
9: ; preds = %5, %5
br label %5
10: ; preds = %5
%11 = call i32 (i8*, i8*, ...) bitcast (i32 (...)* @getwrd to i32 (i8*, i8*, ...)*)(i8* %7, i8* %4)
%12 = getelementptr inbounds [10 x i8], [10 x i8]* %3, i64 0, i64 2
store i8 0, i8* %12
%13 = call i32 (i8*, ...) bitcast (i32 (...)* @getmac to i32 (i8*, ...)*)(i8* %4)
%14 = icmp eq i32 %13, 0
br i1 %14, label %19, label %15
15: ; preds = %10
%16 = sext i32 %13 to i64
%17 = inttoptr i64 %16 to i8*
%18 = call i8* @strcpy(i8* dereferenceable(1) %1, i8* %17)
br label %172
19: ; preds = %10
%20 = getelementptr inbounds i8, i8* %6, i64 2
%21 = load i8, i8* %7
%22 = load i8, i8* %20
%23 = icmp eq i8 %21, 92
%24 = icmp eq i8 %22, 34
%25 = select i1 %23, i1 %24, i1 false
br i1 %25, label %172, label %26
26: ; preds = %19
%27 = icmp eq i8 %21, 97
%28 = icmp eq i8 %22, 102
%29 = select i1 %27, i1 %28, i1 false
br i1 %29, label %172, label %30
30: ; preds = %26
%31 = icmp eq i8 %22, 100
%32 = select i1 %27, i1 %31, i1 false
br i1 %32, label %172, label %33
33: ; preds = %30
%34 = icmp eq i8 %21, 98
%35 = icmp eq i8 %22, 111
%36 = select i1 %34, i1 %35, i1 false
br i1 %36, label %172, label %37
37: ; preds = %33
%38 = icmp eq i8 %22, 112
%39 = select i1 %34, i1 %38, i1 false
br i1 %39, label %172, label %40
40: ; preds = %37
%41 = icmp eq i8 %22, 114
%42 = select i1 %34, i1 %41, i1 false
br i1 %42, label %172, label %43
43: ; preds = %40
%44 = icmp eq i8 %22, 115
%45 = select i1 %34, i1 %44, i1 false
br i1 %45, label %172, label %46
46: ; preds = %43
%47 = icmp eq i8 %21, 99
%48 = icmp eq i8 %22, 99
%49 = select i1 %47, i1 %48, i1 false
br i1 %49, label %172, label %50
50: ; preds = %46
%51 = icmp eq i8 %22, 101
%52 = select i1 %47, i1 %51, i1 false
br i1 %52, label %172, label %53
53: ; preds = %50
%54 = icmp eq i8 %22, 117
%55 = select i1 %47, i1 %54, i1 false
br i1 %55, label %172, label %56
56: ; preds = %53
%57 = icmp eq i8 %21, 100
%58 = select i1 %57, i1 %51, i1 false
br i1 %58, label %172, label %59
59: ; preds = %56
%60 = select i1 %57, i1 %44, i1 false
br i1 %60, label %172, label %61
61: ; preds = %59
%62 = icmp eq i8 %21, 101
%63 = select i1 %62, i1 %28, i1 false
br i1 %63, label %172, label %64
64: ; preds = %61
%65 = select i1 %62, i1 %48, i1 false
br i1 %65, label %172, label %66
66: ; preds = %64
%67 = icmp eq i8 %22, 104
%68 = select i1 %62, i1 %67, i1 false
br i1 %68, label %172, label %69
69: ; preds = %66
%70 = icmp eq i8 %22, 110
%71 = select i1 %62, i1 %70, i1 false
%72 = icmp eq i8 %21, 46
%73 = or i1 %72, %71
br i1 %73, label %172, label %74
74: ; preds = %69
%75 = select i1 %62, i1 %35, i1 false
br i1 %75, label %172, label %76
76: ; preds = %74
%77 = icmp eq i8 %21, 102
%78 = icmp eq i8 %22, 105
%79 = select i1 %77, i1 %78, i1 false
br i1 %79, label %172, label %80
80: ; preds = %76
%81 = icmp eq i8 %22, 108
%82 = select i1 %77, i1 %81, i1 false
br i1 %82, label %172, label %83
83: ; preds = %80
%84 = select i1 %77, i1 %35, i1 false
br i1 %84, label %172, label %85
85: ; preds = %83
%86 = icmp eq i8 %22, 116
%87 = select i1 %77, i1 %86, i1 false
br i1 %87, label %172, label %88
88: ; preds = %85
%89 = icmp eq i8 %21, 104
%90 = select i1 %89, i1 %51, i1 false
br i1 %90, label %172, label %91
91: ; preds = %88
%92 = icmp eq i8 %21, 105
%93 = select i1 %92, i1 %70, i1 false
br i1 %93, label %172, label %94
94: ; preds = %91
%95 = icmp eq i8 %21, 106
%96 = select i1 %95, i1 %54, i1 false
br i1 %96, label %172, label %97
97: ; preds = %94
%98 = icmp eq i8 %21, 108
%99 = select i1 %98, i1 %81, i1 false
br i1 %99, label %172, label %100
100: ; preds = %97
%101 = select i1 %98, i1 %44, i1 false
br i1 %101, label %172, label %102
102: ; preds = %100
%103 = icmp eq i8 %21, 109
%104 = icmp eq i8 %22, 49
%105 = select i1 %103, i1 %104, i1 false
br i1 %105, label %172, label %106
106: ; preds = %102
%107 = icmp eq i8 %22, 50
%108 = select i1 %103, i1 %107, i1 false
br i1 %108, label %172, label %109
109: ; preds = %106
%110 = icmp eq i8 %22, 51
%111 = select i1 %103, i1 %110, i1 false
br i1 %111, label %172, label %112
112: ; preds = %109
%113 = icmp eq i8 %22, 52
%114 = select i1 %103, i1 %113, i1 false
br i1 %114, label %172, label %115
115: ; preds = %112
%116 = icmp eq i8 %21, 110
%117 = icmp eq i8 %22, 97
%118 = select i1 %116, i1 %117, i1 false
br i1 %118, label %172, label %119
119: ; preds = %115
%120 = select i1 %116, i1 %51, i1 false
br i1 %120, label %172, label %121
121: ; preds = %119
%122 = select i1 %116, i1 %28, i1 false
br i1 %122, label %172, label %123
123: ; preds = %121
%124 = icmp eq i8 %22, 106
%125 = select i1 %116, i1 %124, i1 false
br i1 %125, label %172, label %126
126: ; preds = %123
%127 = select i1 %116, i1 %41, i1 false
br i1 %127, label %172, label %128
128: ; preds = %126
%129 = icmp eq i8 %21, 111
%130 = select i1 %129, i1 %28, i1 false
br i1 %130, label %172, label %131
131: ; preds = %128
%132 = select i1 %129, i1 %67, i1 false
br i1 %132, label %172, label %133
133: ; preds = %131
%134 = icmp eq i8 %21, 112
%135 = select i1 %134, i1 %48, i1 false
br i1 %135, label %172, label %136
136: ; preds = %133
%137 = select i1 %134, i1 %81, i1 false
br i1 %137, label %172, label %138
138: ; preds = %136
%139 = icmp eq i8 %22, 109
%140 = select i1 %134, i1 %139, i1 false
br i1 %140, label %172, label %141
141: ; preds = %138
%142 = select i1 %134, i1 %35, i1 false
br i1 %142, label %172, label %143
143: ; preds = %141
%144 = icmp eq i8 %21, 114
%145 = select i1 %144, i1 %139, i1 false
br i1 %145, label %172, label %146
146: ; preds = %143
%147 = select i1 %144, i1 %41, i1 false
br i1 %147, label %172, label %148
148: ; preds = %146
%149 = icmp eq i8 %21, 115
%150 = select i1 %149, i1 %35, i1 false
br i1 %150, label %172, label %151
151: ; preds = %148
%152 = select i1 %149, i1 %38, i1 false
br i1 %152, label %172, label %153
153: ; preds = %151
%154 = icmp eq i8 %21, 116
%155 = select i1 %154, i1 %78, i1 false
br i1 %155, label %172, label %156
156: ; preds = %153
%157 = select i1 %154, i1 %81, i1 false
br i1 %157, label %172, label %158
158: ; preds = %156
%159 = icmp eq i8 %21, 117
%160 = select i1 %159, i1 %81, i1 false
br i1 %160, label %172, label %161
161: ; preds = %158
%162 = select i1 %134, i1 %70, i1 false
br i1 %162, label %172, label %163
163: ; preds = %161
%164 = select i1 %47, i1 %107, i1 false
br i1 %164, label %172, label %165
165: ; preds = %163
%166 = select i1 %154, i1 %41, i1 false
br i1 %166, label %172, label %167
167: ; preds = %165
%168 = select i1 %98, i1 %86, i1 false
br i1 %168, label %172, label %169
169: ; preds = %167
%170 = select i1 %77, i1 %48, i1 false
%171 = select i1 %170, i32 46, i32 -1
br label %172
172: ; preds = %5, %169, %167, %165, %163, %161, %158, %156, %153, %151, %148, %146, %143, %141, %138, %136, %133, %131, %128, %126, %123, %121, %119, %115, %112, %109, %106, %102, %100, %97, %94, %91, %88, %85, %83, %80, %76, %74, %69, %66, %64, %61, %59, %56, %53, %50, %46, %43, %40, %37, %33, %30, %26, %19, %15
%173 = phi i32 [ 0, %15 ], [ 1000, %19 ], [ 48, %26 ], [ 49, %30 ], [ 26, %33 ], [ 1, %37 ], [ 2, %40 ], [ 21, %43 ], [ 24, %46 ], [ 3, %50 ], [ 32, %53 ], [ 33, %56 ], [ 51, %59 ], [ 29, %61 ], [ 36, %64 ], [ 27, %66 ], [ 34, %69 ], [ 38, %74 ], [ 4, %76 ], [ 40, %80 ], [ 5, %83 ], [ 37, %85 ], [ 6, %88 ], [ 7, %91 ], [ 15, %94 ], [ 39, %97 ], [ 8, %100 ], [ 17, %102 ], [ 18, %106 ], [ 19, %109 ], [ 20, %112 ], [ 50, %115 ], [ 22, %119 ], [ 9, %121 ], [ 16, %123 ], [ 35, %126 ], [ 30, %128 ], [ 28, %131 ], [ 23, %133 ], [ 10, %136 ], [ 52, %138 ], [ 25, %141 ], [ 11, %143 ], [ 42, %146 ], [ 31, %148 ], [ 12, %151 ], [ 13, %153 ], [ 47, %156 ], [ 14, %158 ], [ 41, %161 ], [ 43, %163 ], [ 44, %165 ], [ 45, %167 ], [ %171, %169 ], [ 1000, %5 ]
ret i32 %173
}