int get_opcat(char **str) {
  char *s;
  int i;
  s = *str;
  i = -1;
  if ((*s >= '0') && (*s <= '7')) {
    i = 64 + (*s - '0');
    s++;
  }
  if (!strncmp(s, "i8", 2)) {
    i = 16;
    s += 2;
  }
  if (!strncmp(s, "i16", 3)) {
    i = 17;
    s += 3;
  }
  if (!strncmp(s, "i32", 3)) {
    i = 18;
    s += 3;
  }
  if (!strncmp(s, "i64", 3)) {
    i = 19;
    s += 3;
  }
  if (!strncmp(s, "u8", 2)) {
    i = 13;
    s += 2;
  }
  if (!strncmp(s, "u16", 3)) {
    i = 14;
    s += 3;
  }
  if (!strncmp(s, "r8", 2)) {
    i = 20;
    s += 2;
  }
  if (!strncmp(s, "r16", 3)) {
    i = 21;
    s += 3;
  }
  if (!strncmp(s, "r32", 3)) {
    i = 22;
    s += 3;
  }
  if (!strncmp(s, "r64", 3)) {
    i = 23;
    s += 3;
  }
  if (!strncmp(s, "rm8", 3)) {
    i = 24;
    s += 3;
  }
  if (!strncmp(s, "rm16", 4)) {
    i = 25;
    s += 4;
  }
  if (!strncmp(s, "rm32", 4)) {
    i = 26;
    s += 4;
  }
  if (!strncmp(s, "rm64", 4)) {
    i = 27;
    s += 4;
  }
  if (!strncmp(s, "al", 2)) {
    i = 32;
    s += 2;
  }
  if (!strncmp(s, "cl", 2)) {
    i = 33;
    s += 2;
  }
  if (!strncmp(s, "dl", 2)) {
    i = 34;
    s += 2;
  }
  if (!strncmp(s, "bl", 2)) {
    i = 35;
    s += 2;
  }
  if (!strncmp(s, "ah", 2)) {
    i = 36;
    s += 2;
  }
  if (!strncmp(s, "ch", 2)) {
    i = 37;
    s += 2;
  }
  if (!strncmp(s, "dh", 2)) {
    i = 38;
    s += 2;
  }
  if (!strncmp(s, "bh", 2)) {
    i = 39;
    s += 2;
  }
  if (!strncmp(s, "ax", 2)) {
    i = 40;
    s += 2;
  }
  if (!strncmp(s, "cx", 2)) {
    i = 41;
    s += 2;
  }
  if (!strncmp(s, "dx", 2)) {
    i = 42;
    s += 2;
  }
  if (!strncmp(s, "bx", 2)) {
    i = 43;
    s += 2;
  }
  if (!strncmp(s, "sp", 2)) {
    i = 44;
    s += 2;
  }
  if (!strncmp(s, "bp", 2)) {
    i = 45;
    s += 2;
  }
  if (!strncmp(s, "si", 2)) {
    i = 46;
    s += 2;
  }
  if (!strncmp(s, "di", 2)) {
    i = 47;
    s += 2;
  }
  if (!strncmp(s, "eax", 3)) {
    i = 48;
    s += 3;
  }
  if (!strncmp(s, "ecx", 3)) {
    i = 49;
    s += 3;
  }
  if (!strncmp(s, "edx", 3)) {
    i = 50;
    s += 3;
  }
  if (!strncmp(s, "ebx", 3)) {
    i = 51;
    s += 3;
  }
  if (!strncmp(s, "esp", 3)) {
    i = 52;
    s += 3;
  }
  if (!strncmp(s, "ebp", 3)) {
    i = 53;
    s += 3;
  }
  if (!strncmp(s, "esi", 3)) {
    i = 54;
    s += 3;
  }
  if (!strncmp(s, "edi", 3)) {
    i = 55;
    s += 3;
  }
  if (!strncmp(s, "rax", 3)) {
    i = 56;
    s += 3;
  }
  if (!strncmp(s, "rcx", 3)) {
    i = 57;
    s += 3;
  }
  if (!strncmp(s, "rdx", 3)) {
    i = 58;
    s += 3;
  }
  if (!strncmp(s, "rbx", 3)) {
    i = 59;
    s += 3;
  }
  if (!strncmp(s, "rsp", 3)) {
    i = 60;
    s += 3;
  }
  if (!strncmp(s, "rbp", 3)) {
    i = 61;
    s += 3;
  }
  if (!strncmp(s, "rsi", 3)) {
    i = 62;
    s += 3;
  }
  if (!strncmp(s, "rdi", 3)) {
    i = 63;
    s += 3;
  }
  if (!strncmp(s, "st0", 3)) {
    i = 80;
    s += 3;
  }
  if (!strncmp(s, "st1", 3)) {
    i = 81;
    s += 3;
  }
  if (!strncmp(s, "st2", 3)) {
    i = 82;
    s += 3;
  }
  if (!strncmp(s, "st3", 3)) {
    i = 83;
    s += 3;
  }
  if (!strncmp(s, "st4", 3)) {
    i = 84;
    s += 3;
  }
  if (!strncmp(s, "st5", 3)) {
    i = 85;
    s += 3;
  }
  if (!strncmp(s, "st6", 3)) {
    i = 86;
    s += 3;
  }
  if (!strncmp(s, "st7", 3)) {
    i = 87;
    s += 3;
  }
  if (!strncmp(s, "ar8", 3)) {
    i = 28;
    s += 3;
  }
  if (!strncmp(s, "ar16", 4)) {
    i = 29;
    s += 4;
  }
  if (!strncmp(s, "ar32", 4)) {
    i = 30;
    s += 4;
  }
  if (!strncmp(s, "ar64", 4)) {
    i = 31;
    s += 4;
  }
  if (!strncmp(s, "sr", 2)) {
    i = 6;
    s += 2;
  }
  if (!strncmp(s, "cr", 2)) {
    i = 7;
    s += 2;
  }
  if (!strncmp(s, "dr", 2)) {
    i = 8;
    s += 2;
  }
  if (!strncmp(s, "mo16", 4)) {
    i = 10;
    s += 4;
  }
  if (!strncmp(s, "mo32", 4)) {
    i = 11;
    s += 4;
  }
  if (!strncmp(s, "mo64", 4)) {
    i = 12;
    s += 4;
  }
  if (!strncmp(s, "m", 1)) {
    i = 1;
    s += 1;
  }
  if (!strncmp(s, "frm", 3)) {
    i = 3;
    s += 3;
  }
  if (!strncmp(s, "fr2", 3)) {
    i = 3;
    s += 3;
  }
  if (!strncmp(s, "fr", 2)) {
    i = 2;
    s += 2;
  }
  if (!strncmp(s, "xrm", 3)) {
    i = 5;
    s += 3;
  }
  if (!strncmp(s, "xr2", 3)) {
    i = 5;
    s += 3;
  }
  if (!strncmp(s, "xr", 2)) {
    i = 4;
    s += 2;
  }
  if (!strncmp(s, "cs", 2)) {
    i = 72;
    s += 2;
  }
  if (!strncmp(s, "ss", 2)) {
    i = 73;
    s += 2;
  }
  if (!strncmp(s, "ds", 2)) {
    i = 74;
    s += 2;
  }
  if (!strncmp(s, "es", 2)) {
    i = 75;
    s += 2;
  }
  if (!strncmp(s, "fs", 2)) {
    i = 76;
    s += 2;
  }
  if (!strncmp(s, "gs", 2)) {
    i = 77;
    s += 2;
  }
  *str = s;
  return (i);
}


x86 assembly (clang, -O0):
<get_opcat>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x10(%rbp)
movl   $0xffffffff,-0x14(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     116a <get_opcat+0x5a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x37,%eax
jg     116a <get_opcat+0x5a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
sub    $0x30,%eax
add    $0x40,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1e8b(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    119b <get_opcat+0x8b>
movl   $0x10,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1e5d(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    11cc <get_opcat+0xbc>
movl   $0x11,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1e30(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    11fd <get_opcat+0xed>
movl   $0x12,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1e03(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    122e <get_opcat+0x11e>
movl   $0x13,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1dd6(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    125f <get_opcat+0x14f>
movl   $0xd,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1da8(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1290 <get_opcat+0x180>
movl   $0xe,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1e07(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    12c1 <get_opcat+0x1b1>
movl   $0x14,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1dda(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    12f2 <get_opcat+0x1e2>
movl   $0x15,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1dae(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1323 <get_opcat+0x213>
movl   $0x16,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1d82(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1354 <get_opcat+0x244>
movl   $0x17,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1cb7(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1385 <get_opcat+0x275>
movl   $0x18,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1c8a(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    13b6 <get_opcat+0x2a6>
movl   $0x19,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1c5e(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    13e7 <get_opcat+0x2d7>
movl   $0x1a,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1c32(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1418 <get_opcat+0x308>
movl   $0x1b,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1c06(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1449 <get_opcat+0x339>
movl   $0x20,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1bd8(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    147a <get_opcat+0x36a>
movl   $0x21,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1baa(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    14ab <get_opcat+0x39b>
movl   $0x22,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1b7c(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    14dc <get_opcat+0x3cc>
movl   $0x23,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1b4e(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    150d <get_opcat+0x3fd>
movl   $0x24,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1b20(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    153e <get_opcat+0x42e>
movl   $0x25,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1af2(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    156f <get_opcat+0x45f>
movl   $0x26,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1ac4(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    15a0 <get_opcat+0x490>
movl   $0x27,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1a97(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    15d1 <get_opcat+0x4c1>
movl   $0x28,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1a6a(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1602 <get_opcat+0x4f2>
movl   $0x29,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1a3d(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1633 <get_opcat+0x523>
movl   $0x2a,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1a10(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1664 <get_opcat+0x554>
movl   $0x2b,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x19e3(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1695 <get_opcat+0x585>
movl   $0x2c,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x19b6(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    16c6 <get_opcat+0x5b6>
movl   $0x2d,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1989(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    16f7 <get_opcat+0x5e7>
movl   $0x2e,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x195c(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1728 <get_opcat+0x618>
movl   $0x2f,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x190e(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1759 <get_opcat+0x649>
movl   $0x30,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x18e1(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    178a <get_opcat+0x67a>
movl   $0x31,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x18b4(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    17bb <get_opcat+0x6ab>
movl   $0x32,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1887(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    17ec <get_opcat+0x6dc>
movl   $0x33,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x185a(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    181d <get_opcat+0x70d>
movl   $0x34,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x182d(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    184e <get_opcat+0x73e>
movl   $0x35,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1800(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    187f <get_opcat+0x76f>
movl   $0x36,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x17d3(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    18b0 <get_opcat+0x7a0>
movl   $0x37,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x17a6(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    18e1 <get_opcat+0x7d1>
movl   $0x38,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1779(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1912 <get_opcat+0x802>
movl   $0x39,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x174c(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1943 <get_opcat+0x833>
movl   $0x3a,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x171f(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1974 <get_opcat+0x864>
movl   $0x3b,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x16f2(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    19a5 <get_opcat+0x895>
movl   $0x3c,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x16c5(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    19d6 <get_opcat+0x8c6>
movl   $0x3d,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1698(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1a07 <get_opcat+0x8f7>
movl   $0x3e,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x166b(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1a38 <get_opcat+0x928>
movl   $0x3f,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x163e(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1a69 <get_opcat+0x959>
movl   $0x50,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1611(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1a9a <get_opcat+0x98a>
movl   $0x51,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x15e4(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1acb <get_opcat+0x9bb>
movl   $0x52,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x15b7(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1afc <get_opcat+0x9ec>
movl   $0x53,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x158a(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1b2d <get_opcat+0xa1d>
movl   $0x54,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x155d(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1b5e <get_opcat+0xa4e>
movl   $0x55,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1530(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1b8f <get_opcat+0xa7f>
movl   $0x56,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1503(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1bc0 <get_opcat+0xab0>
movl   $0x57,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x14d6(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1bf1 <get_opcat+0xae1>
movl   $0x1c,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x14a9(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1c22 <get_opcat+0xb12>
movl   $0x1d,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x147d(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1c53 <get_opcat+0xb43>
movl   $0x1e,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1451(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1c84 <get_opcat+0xb74>
movl   $0x1f,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1425(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1cb5 <get_opcat+0xba5>
movl   $0x6,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x13f7(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1ce6 <get_opcat+0xbd6>
movl   $0x7,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x13c9(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1d17 <get_opcat+0xc07>
movl   $0x8,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x139b(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1d48 <get_opcat+0xc38>
movl   $0xa,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x136f(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1d79 <get_opcat+0xc69>
movl   $0xb,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1343(%rip),%rsi
mov    $0x4,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1daa <get_opcat+0xc9a>
movl   $0xc,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1319(%rip),%rsi
mov    $0x1,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1ddb <get_opcat+0xccb>
movl   $0x1,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x12e6(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1e0c <get_opcat+0xcfc>
movl   $0x3,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x12b9(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1e3d <get_opcat+0xd2d>
movl   $0x3,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x128c(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1e6e <get_opcat+0xd5e>
movl   $0x2,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x125e(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1e9f <get_opcat+0xd8f>
movl   $0x5,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1231(%rip),%rsi
mov    $0x3,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1ed0 <get_opcat+0xdc0>
movl   $0x5,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x1204(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1f01 <get_opcat+0xdf1>
movl   $0x4,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x11d6(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1f32 <get_opcat+0xe22>
movl   $0x48,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x11a8(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1f63 <get_opcat+0xe53>
movl   $0x49,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x117a(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1f94 <get_opcat+0xe84>
movl   $0x4a,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x114c(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1fc5 <get_opcat+0xeb5>
movl   $0x4b,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x111e(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    1ff6 <get_opcat+0xee6>
movl   $0x4c,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0x10f0(%rip),%rsi
mov    $0x2,%edx
call   1030 <strncmp@plt>
cmp    $0x0,%eax
jne    2027 <get_opcat+0xf17>
movl   $0x4d,-0x14(%rbp)
mov    -0x10(%rbp),%rax
add    $0x2,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x14(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_opcat>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %rdi,%r14
mov    (%rdi),%rax
movsbl (%rax),%ecx
mov    %ecx,%edx
and    $0xf8,%dl
add    $0x10,%ecx
xor    %ebx,%ebx
cmp    $0x30,%dl
sete   %bl
mov    $0xffffffff,%r12d
cmove  %ecx,%r12d
add    %rax,%rbx
lea    0xeb8(%rip),%rsi
mov    $0x2,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,2),%r15
mov    $0x10,%ebp
cmovne %r12d,%ebp
lea    0xe93(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x11,%r12d
cmovne %ebp,%r12d
add    %r15,%rbx
lea    0xe6b(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x12,%ebp
cmovne %r12d,%ebp
add    %rbx,%r15
lea    0xe44(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x13,%r12d
cmovne %ebp,%r12d
add    %r15,%rbx
lea    0xe1c(%rip),%rsi
mov    $0x2,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,2),%r15
mov    $0xd,%ebp
cmovne %r12d,%ebp
lea    0xdf7(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0xe,%r12d
cmovne %ebp,%r12d
add    %r15,%rbx
lea    0xe5b(%rip),%rsi
mov    $0x2,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,2),%r15
mov    $0x14,%ebp
cmovne %r12d,%ebp
lea    0xe37(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x15,%r12d
cmovne %ebp,%r12d
add    %r15,%rbx
lea    0xe10(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x16,%ebp
cmovne %r12d,%ebp
add    %rbx,%r15
lea    0xdea(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r12
mov    $0x17,%r13d
cmovne %ebp,%r13d
add    %r15,%r12
lea    0xd24(%rip),%rsi
mov    $0x3,%edx
mov    %r12,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x18,%ebp
cmovne %r13d,%ebp
add    %r12,%rbx
lea    0xcfd(%rip),%rsi
mov    $0x4,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,4),%r15
mov    $0x19,%ebx
cmovne %ebp,%ebx
lea    0xcdb(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%r15
mov    $0x1a,%ebp
cmovne %ebx,%ebp
lea    0xcb9(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%r15
mov    $0x1b,%ebx
cmovne %ebp,%ebx
lea    0xc97(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x20,%ebp
cmovne %ebx,%ebp
lea    0xc73(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x21,%ebx
cmovne %ebp,%ebx
lea    0xc4f(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x22,%ebp
cmovne %ebx,%ebp
lea    0xc2b(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x23,%ebx
cmovne %ebp,%ebx
lea    0xc07(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x24,%ebp
cmovne %ebx,%ebp
lea    0xbe3(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x25,%ebx
cmovne %ebp,%ebx
lea    0xbbf(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x26,%ebp
cmovne %ebx,%ebp
lea    0xb9b(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x27,%ebx
cmovne %ebp,%ebx
lea    0xb78(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x28,%ebp
cmovne %ebx,%ebp
lea    0xb55(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x29,%ebx
cmovne %ebp,%ebx
lea    0xb32(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x2a,%ebp
cmovne %ebx,%ebp
lea    0xb0f(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x2b,%ebx
cmovne %ebp,%ebx
lea    0xaec(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x2c,%ebp
cmovne %ebx,%ebp
lea    0xac9(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x2d,%ebx
cmovne %ebp,%ebx
lea    0xaa6(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x2e,%ebp
cmovne %ebx,%ebp
lea    0xa83(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x2f,%r12d
cmovne %ebp,%r12d
lea    0xa3d(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x30,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0xa16(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x31,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x9ee(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x32,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x9c7(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x33,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x99f(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x34,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x978(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x35,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x950(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x36,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x929(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x37,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x901(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x38,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x8da(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x39,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x8b2(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x3a,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x88b(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x3b,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x863(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x3c,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x83c(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x3d,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x814(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x3e,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x7ed(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x3f,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x7c5(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x50,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x79e(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x51,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x776(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x52,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x74f(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x53,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x727(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x54,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x700(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x55,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x6d8(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x56,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x6b1(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
mov    $0x57,%r12d
cmovne %ebp,%r12d
add    %rbx,%r15
lea    0x689(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
mov    $0x1c,%ebp
cmovne %r12d,%ebp
add    %r15,%rbx
lea    0x662(%rip),%rsi
mov    $0x4,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,4),%r15
mov    $0x1d,%ebx
cmovne %ebp,%ebx
lea    0x640(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%r15
mov    $0x1e,%ebp
cmovne %ebx,%ebp
lea    0x61e(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%r15
mov    $0x1f,%ebx
cmovne %ebp,%ebx
lea    0x5fc(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x6,%ebp
cmovne %ebx,%ebp
lea    0x5d8(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x7,%ebx
cmovne %ebp,%ebx
lea    0x5b4(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x8,%ebp
cmovne %ebx,%ebp
lea    0x590(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%r15
mov    $0xa,%ebx
cmovne %ebp,%ebx
lea    0x56e(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%r15
mov    $0xb,%ebp
cmovne %ebx,%ebp
lea    0x54c(%rip),%rsi
mov    $0x4,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,4),%rax
mov    $0xc,%edx
cmovne %ebp,%edx
xor    %ebx,%ebx
cmpb   $0x6d,(%r15,%rcx,4)
sete   %bl
mov    $0x1,%r12d
cmovne %edx,%r12d
add    %rax,%rbx
lea    0x513(%rip),%rsi
mov    $0x3,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r15
lea    0x4f8(%rip),%rsi
mov    $0x3,%ebp
cmove  %ebp,%r12d
add    %rbx,%r15
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
cmove  %ebp,%r12d
add    %r15,%rbx
lea    0x4ca(%rip),%rsi
mov    $0x2,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,2),%r15
mov    $0x2,%ebp
cmovne %r12d,%ebp
lea    0x4a5(%rip),%rsi
mov    $0x3,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%r12
lea    0x48a(%rip),%rsi
mov    $0x5,%r13d
cmove  %r13d,%ebp
add    %r15,%r12
mov    $0x3,%edx
mov    %r12,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rcx,%rcx,2),%rbx
cmove  %r13d,%ebp
add    %r12,%rbx
lea    0x45b(%rip),%rsi
mov    $0x2,%edx
mov    %rbx,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%rbx,%rcx,2),%r15
mov    $0x4,%ebx
cmovne %ebp,%ebx
lea    0x437(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x48,%ebp
cmovne %ebx,%ebp
lea    0x413(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x49,%ebx
cmovne %ebp,%ebx
lea    0x3ef(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x4a,%ebp
cmovne %ebx,%ebp
lea    0x3cb(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x4b,%ebx
cmovne %ebp,%ebx
lea    0x3a7(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%r15
mov    $0x4c,%ebp
cmovne %ebx,%ebp
lea    0x383(%rip),%rsi
mov    $0x2,%edx
mov    %r15,%rdi
call   1030 <strncmp@plt>
xor    %ecx,%ecx
test   %eax,%eax
sete   %cl
lea    (%r15,%rcx,2),%rcx
mov    $0x4d,%eax
cmovne %ebp,%eax
mov    %rcx,(%r14)
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@.str = [3 x i8] c"i8\00"
@.str.1 = [4 x i8] c"i16\00"
@.str.2 = [4 x i8] c"i32\00"
@.str.3 = [4 x i8] c"i64\00"
@.str.4 = [3 x i8] c"u8\00"
@.str.5 = [4 x i8] c"u16\00"
@.str.6 = [3 x i8] c"r8\00"
@.str.7 = [4 x i8] c"r16\00"
@.str.8 = [4 x i8] c"r32\00"
@.str.9 = [4 x i8] c"r64\00"
@.str.10 = [4 x i8] c"rm8\00"
@.str.11 = [5 x i8] c"rm16\00"
@.str.12 = [5 x i8] c"rm32\00"
@.str.13 = [5 x i8] c"rm64\00"
@.str.14 = [3 x i8] c"al\00"
@.str.15 = [3 x i8] c"cl\00"
@.str.16 = [3 x i8] c"dl\00"
@.str.17 = [3 x i8] c"bl\00"
@.str.18 = [3 x i8] c"ah\00"
@.str.19 = [3 x i8] c"ch\00"
@.str.20 = [3 x i8] c"dh\00"
@.str.21 = [3 x i8] c"bh\00"
@.str.22 = [3 x i8] c"ax\00"
@.str.23 = [3 x i8] c"cx\00"
@.str.24 = [3 x i8] c"dx\00"
@.str.25 = [3 x i8] c"bx\00"
@.str.26 = [3 x i8] c"sp\00"
@.str.27 = [3 x i8] c"bp\00"
@.str.28 = [3 x i8] c"si\00"
@.str.29 = [3 x i8] c"di\00"
@.str.30 = [4 x i8] c"eax\00"
@.str.31 = [4 x i8] c"ecx\00"
@.str.32 = [4 x i8] c"edx\00"
@.str.33 = [4 x i8] c"ebx\00"
@.str.34 = [4 x i8] c"esp\00"
@.str.35 = [4 x i8] c"ebp\00"
@.str.36 = [4 x i8] c"esi\00"
@.str.37 = [4 x i8] c"edi\00"
@.str.38 = [4 x i8] c"rax\00"
@.str.39 = [4 x i8] c"rcx\00"
@.str.40 = [4 x i8] c"rdx\00"
@.str.41 = [4 x i8] c"rbx\00"
@.str.42 = [4 x i8] c"rsp\00"
@.str.43 = [4 x i8] c"rbp\00"
@.str.44 = [4 x i8] c"rsi\00"
@.str.45 = [4 x i8] c"rdi\00"
@.str.46 = [4 x i8] c"st0\00"
@.str.47 = [4 x i8] c"st1\00"
@.str.48 = [4 x i8] c"st2\00"
@.str.49 = [4 x i8] c"st3\00"
@.str.50 = [4 x i8] c"st4\00"
@.str.51 = [4 x i8] c"st5\00"
@.str.52 = [4 x i8] c"st6\00"
@.str.53 = [4 x i8] c"st7\00"
@.str.54 = [4 x i8] c"ar8\00"
@.str.55 = [5 x i8] c"ar16\00"
@.str.56 = [5 x i8] c"ar32\00"
@.str.57 = [5 x i8] c"ar64\00"
@.str.58 = [3 x i8] c"sr\00"
@.str.59 = [3 x i8] c"cr\00"
@.str.60 = [3 x i8] c"dr\00"
@.str.61 = [5 x i8] c"mo16\00"
@.str.62 = [5 x i8] c"mo32\00"
@.str.63 = [5 x i8] c"mo64\00"
@.str.65 = [4 x i8] c"frm\00"
@.str.66 = [4 x i8] c"fr2\00"
@.str.67 = [3 x i8] c"fr\00"
@.str.68 = [4 x i8] c"xrm\00"
@.str.69 = [4 x i8] c"xr2\00"
@.str.70 = [3 x i8] c"xr\00"
@.str.71 = [3 x i8] c"cs\00"
@.str.72 = [3 x i8] c"ss\00"
@.str.73 = [3 x i8] c"ds\00"
@.str.74 = [3 x i8] c"es\00"
@.str.75 = [3 x i8] c"fs\00"
@.str.76 = [3 x i8] c"gs\00"
define i32 @get_opcat(i8** nocapture %0) {
%2 = load i8*, i8** %0
%3 = load i8, i8* %2
%4 = sext i8 %3 to i32
%5 = and i8 %3, -8
%6 = icmp eq i8 %5, 48
%7 = add nsw i32 %4, 16
%8 = zext i1 %6 to i64
%9 = getelementptr i8, i8* %2, i64 %8
%10 = select i1 %6, i32 %7, i32 -1
%11 = tail call i32 @strncmp(i8* %9, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i64 2)
%12 = icmp eq i32 %11, 0
%13 = select i1 %12, i64 2, i64 0
%14 = getelementptr i8, i8* %9, i64 %13
%15 = select i1 %12, i32 16, i32 %10
%16 = tail call i32 @strncmp(i8* dereferenceable(1) %14, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i64 3)
%17 = icmp eq i32 %16, 0
%18 = select i1 %17, i64 3, i64 0
%19 = getelementptr i8, i8* %14, i64 %18
%20 = select i1 %17, i32 17, i32 %15
%21 = tail call i32 @strncmp(i8* dereferenceable(1) %19, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0), i64 3)
%22 = icmp eq i32 %21, 0
%23 = select i1 %22, i64 3, i64 0
%24 = getelementptr i8, i8* %19, i64 %23
%25 = select i1 %22, i32 18, i32 %20
%26 = tail call i32 @strncmp(i8* dereferenceable(1) %24, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.3, i64 0, i64 0), i64 3)
%27 = icmp eq i32 %26, 0
%28 = select i1 %27, i64 3, i64 0
%29 = getelementptr i8, i8* %24, i64 %28
%30 = select i1 %27, i32 19, i32 %25
%31 = tail call i32 @strncmp(i8* dereferenceable(1) %29, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0), i64 2)
%32 = icmp eq i32 %31, 0
%33 = select i1 %32, i64 2, i64 0
%34 = getelementptr i8, i8* %29, i64 %33
%35 = select i1 %32, i32 13, i32 %30
%36 = tail call i32 @strncmp(i8* dereferenceable(1) %34, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.5, i64 0, i64 0), i64 3)
%37 = icmp eq i32 %36, 0
%38 = select i1 %37, i64 3, i64 0
%39 = getelementptr i8, i8* %34, i64 %38
%40 = select i1 %37, i32 14, i32 %35
%41 = tail call i32 @strncmp(i8* dereferenceable(1) %39, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i64 2)
%42 = icmp eq i32 %41, 0
%43 = select i1 %42, i64 2, i64 0
%44 = getelementptr i8, i8* %39, i64 %43
%45 = select i1 %42, i32 20, i32 %40
%46 = tail call i32 @strncmp(i8* dereferenceable(1) %44, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0), i64 3)
%47 = icmp eq i32 %46, 0
%48 = select i1 %47, i64 3, i64 0
%49 = getelementptr i8, i8* %44, i64 %48
%50 = select i1 %47, i32 21, i32 %45
%51 = tail call i32 @strncmp(i8* dereferenceable(1) %49, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0), i64 3)
%52 = icmp eq i32 %51, 0
%53 = select i1 %52, i64 3, i64 0
%54 = getelementptr i8, i8* %49, i64 %53
%55 = select i1 %52, i32 22, i32 %50
%56 = tail call i32 @strncmp(i8* dereferenceable(1) %54, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0), i64 3)
%57 = icmp eq i32 %56, 0
%58 = select i1 %57, i64 3, i64 0
%59 = getelementptr i8, i8* %54, i64 %58
%60 = select i1 %57, i32 23, i32 %55
%61 = tail call i32 @strncmp(i8* dereferenceable(1) %59, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.10, i64 0, i64 0), i64 3)
%62 = icmp eq i32 %61, 0
%63 = select i1 %62, i64 3, i64 0
%64 = getelementptr i8, i8* %59, i64 %63
%65 = select i1 %62, i32 24, i32 %60
%66 = tail call i32 @strncmp(i8* dereferenceable(1) %64, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i64 0, i64 0), i64 4)
%67 = icmp eq i32 %66, 0
%68 = select i1 %67, i64 4, i64 0
%69 = getelementptr i8, i8* %64, i64 %68
%70 = select i1 %67, i32 25, i32 %65
%71 = tail call i32 @strncmp(i8* dereferenceable(1) %69, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i64 4)
%72 = icmp eq i32 %71, 0
%73 = select i1 %72, i64 4, i64 0
%74 = getelementptr i8, i8* %69, i64 %73
%75 = select i1 %72, i32 26, i32 %70
%76 = tail call i32 @strncmp(i8* dereferenceable(1) %74, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i64 4)
%77 = icmp eq i32 %76, 0
%78 = select i1 %77, i64 4, i64 0
%79 = getelementptr i8, i8* %74, i64 %78
%80 = select i1 %77, i32 27, i32 %75
%81 = tail call i32 @strncmp(i8* dereferenceable(1) %79, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0), i64 2)
%82 = icmp eq i32 %81, 0
%83 = select i1 %82, i64 2, i64 0
%84 = getelementptr i8, i8* %79, i64 %83
%85 = select i1 %82, i32 32, i32 %80
%86 = tail call i32 @strncmp(i8* dereferenceable(1) %84, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0), i64 2)
%87 = icmp eq i32 %86, 0
%88 = select i1 %87, i64 2, i64 0
%89 = getelementptr i8, i8* %84, i64 %88
%90 = select i1 %87, i32 33, i32 %85
%91 = tail call i32 @strncmp(i8* dereferenceable(1) %89, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0), i64 2)
%92 = icmp eq i32 %91, 0
%93 = select i1 %92, i64 2, i64 0
%94 = getelementptr i8, i8* %89, i64 %93
%95 = select i1 %92, i32 34, i32 %90
%96 = tail call i32 @strncmp(i8* dereferenceable(1) %94, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.17, i64 0, i64 0), i64 2)
%97 = icmp eq i32 %96, 0
%98 = select i1 %97, i64 2, i64 0
%99 = getelementptr i8, i8* %94, i64 %98
%100 = select i1 %97, i32 35, i32 %95
%101 = tail call i32 @strncmp(i8* dereferenceable(1) %99, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.18, i64 0, i64 0), i64 2)
%102 = icmp eq i32 %101, 0
%103 = select i1 %102, i64 2, i64 0
%104 = getelementptr i8, i8* %99, i64 %103
%105 = select i1 %102, i32 36, i32 %100
%106 = tail call i32 @strncmp(i8* dereferenceable(1) %104, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.19, i64 0, i64 0), i64 2)
%107 = icmp eq i32 %106, 0
%108 = select i1 %107, i64 2, i64 0
%109 = getelementptr i8, i8* %104, i64 %108
%110 = select i1 %107, i32 37, i32 %105
%111 = tail call i32 @strncmp(i8* dereferenceable(1) %109, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.20, i64 0, i64 0), i64 2)
%112 = icmp eq i32 %111, 0
%113 = select i1 %112, i64 2, i64 0
%114 = getelementptr i8, i8* %109, i64 %113
%115 = select i1 %112, i32 38, i32 %110
%116 = tail call i32 @strncmp(i8* dereferenceable(1) %114, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.21, i64 0, i64 0), i64 2)
%117 = icmp eq i32 %116, 0
%118 = select i1 %117, i64 2, i64 0
%119 = getelementptr i8, i8* %114, i64 %118
%120 = select i1 %117, i32 39, i32 %115
%121 = tail call i32 @strncmp(i8* dereferenceable(1) %119, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i64 0, i64 0), i64 2)
%122 = icmp eq i32 %121, 0
%123 = select i1 %122, i64 2, i64 0
%124 = getelementptr i8, i8* %119, i64 %123
%125 = select i1 %122, i32 40, i32 %120
%126 = tail call i32 @strncmp(i8* dereferenceable(1) %124, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i64 0, i64 0), i64 2)
%127 = icmp eq i32 %126, 0
%128 = select i1 %127, i64 2, i64 0
%129 = getelementptr i8, i8* %124, i64 %128
%130 = select i1 %127, i32 41, i32 %125
%131 = tail call i32 @strncmp(i8* dereferenceable(1) %129, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0), i64 2)
%132 = icmp eq i32 %131, 0
%133 = select i1 %132, i64 2, i64 0
%134 = getelementptr i8, i8* %129, i64 %133
%135 = select i1 %132, i32 42, i32 %130
%136 = tail call i32 @strncmp(i8* dereferenceable(1) %134, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.25, i64 0, i64 0), i64 2)
%137 = icmp eq i32 %136, 0
%138 = select i1 %137, i64 2, i64 0
%139 = getelementptr i8, i8* %134, i64 %138
%140 = select i1 %137, i32 43, i32 %135
%141 = tail call i32 @strncmp(i8* dereferenceable(1) %139, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0), i64 2)
%142 = icmp eq i32 %141, 0
%143 = select i1 %142, i64 2, i64 0
%144 = getelementptr i8, i8* %139, i64 %143
%145 = select i1 %142, i32 44, i32 %140
%146 = tail call i32 @strncmp(i8* dereferenceable(1) %144, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0), i64 2)
%147 = icmp eq i32 %146, 0
%148 = select i1 %147, i64 2, i64 0
%149 = getelementptr i8, i8* %144, i64 %148
%150 = select i1 %147, i32 45, i32 %145
%151 = tail call i32 @strncmp(i8* dereferenceable(1) %149, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i64 0, i64 0), i64 2)
%152 = icmp eq i32 %151, 0
%153 = select i1 %152, i64 2, i64 0
%154 = getelementptr i8, i8* %149, i64 %153
%155 = select i1 %152, i32 46, i32 %150
%156 = tail call i32 @strncmp(i8* dereferenceable(1) %154, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i64 0, i64 0), i64 2)
%157 = icmp eq i32 %156, 0
%158 = select i1 %157, i64 2, i64 0
%159 = getelementptr i8, i8* %154, i64 %158
%160 = select i1 %157, i32 47, i32 %155
%161 = tail call i32 @strncmp(i8* dereferenceable(1) %159, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0), i64 3)
%162 = icmp eq i32 %161, 0
%163 = select i1 %162, i64 3, i64 0
%164 = getelementptr i8, i8* %159, i64 %163
%165 = select i1 %162, i32 48, i32 %160
%166 = tail call i32 @strncmp(i8* dereferenceable(1) %164, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0), i64 3)
%167 = icmp eq i32 %166, 0
%168 = select i1 %167, i64 3, i64 0
%169 = getelementptr i8, i8* %164, i64 %168
%170 = select i1 %167, i32 49, i32 %165
%171 = tail call i32 @strncmp(i8* dereferenceable(1) %169, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0), i64 3)
%172 = icmp eq i32 %171, 0
%173 = select i1 %172, i64 3, i64 0
%174 = getelementptr i8, i8* %169, i64 %173
%175 = select i1 %172, i32 50, i32 %170
%176 = tail call i32 @strncmp(i8* dereferenceable(1) %174, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0), i64 3)
%177 = icmp eq i32 %176, 0
%178 = select i1 %177, i64 3, i64 0
%179 = getelementptr i8, i8* %174, i64 %178
%180 = select i1 %177, i32 51, i32 %175
%181 = tail call i32 @strncmp(i8* dereferenceable(1) %179, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0), i64 3)
%182 = icmp eq i32 %181, 0
%183 = select i1 %182, i64 3, i64 0
%184 = getelementptr i8, i8* %179, i64 %183
%185 = select i1 %182, i32 52, i32 %180
%186 = tail call i32 @strncmp(i8* dereferenceable(1) %184, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.35, i64 0, i64 0), i64 3)
%187 = icmp eq i32 %186, 0
%188 = select i1 %187, i64 3, i64 0
%189 = getelementptr i8, i8* %184, i64 %188
%190 = select i1 %187, i32 53, i32 %185
%191 = tail call i32 @strncmp(i8* dereferenceable(1) %189, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0), i64 3)
%192 = icmp eq i32 %191, 0
%193 = select i1 %192, i64 3, i64 0
%194 = getelementptr i8, i8* %189, i64 %193
%195 = select i1 %192, i32 54, i32 %190
%196 = tail call i32 @strncmp(i8* dereferenceable(1) %194, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i64 3)
%197 = icmp eq i32 %196, 0
%198 = select i1 %197, i64 3, i64 0
%199 = getelementptr i8, i8* %194, i64 %198
%200 = select i1 %197, i32 55, i32 %195
%201 = tail call i32 @strncmp(i8* dereferenceable(1) %199, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0), i64 3)
%202 = icmp eq i32 %201, 0
%203 = select i1 %202, i64 3, i64 0
%204 = getelementptr i8, i8* %199, i64 %203
%205 = select i1 %202, i32 56, i32 %200
%206 = tail call i32 @strncmp(i8* dereferenceable(1) %204, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.39, i64 0, i64 0), i64 3)
%207 = icmp eq i32 %206, 0
%208 = select i1 %207, i64 3, i64 0
%209 = getelementptr i8, i8* %204, i64 %208
%210 = select i1 %207, i32 57, i32 %205
%211 = tail call i32 @strncmp(i8* dereferenceable(1) %209, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0), i64 3)
%212 = icmp eq i32 %211, 0
%213 = select i1 %212, i64 3, i64 0
%214 = getelementptr i8, i8* %209, i64 %213
%215 = select i1 %212, i32 58, i32 %210
%216 = tail call i32 @strncmp(i8* dereferenceable(1) %214, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.41, i64 0, i64 0), i64 3)
%217 = icmp eq i32 %216, 0
%218 = select i1 %217, i64 3, i64 0
%219 = getelementptr i8, i8* %214, i64 %218
%220 = select i1 %217, i32 59, i32 %215
%221 = tail call i32 @strncmp(i8* dereferenceable(1) %219, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0), i64 3)
%222 = icmp eq i32 %221, 0
%223 = select i1 %222, i64 3, i64 0
%224 = getelementptr i8, i8* %219, i64 %223
%225 = select i1 %222, i32 60, i32 %220
%226 = tail call i32 @strncmp(i8* dereferenceable(1) %224, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.43, i64 0, i64 0), i64 3)
%227 = icmp eq i32 %226, 0
%228 = select i1 %227, i64 3, i64 0
%229 = getelementptr i8, i8* %224, i64 %228
%230 = select i1 %227, i32 61, i32 %225
%231 = tail call i32 @strncmp(i8* dereferenceable(1) %229, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0), i64 3)
%232 = icmp eq i32 %231, 0
%233 = select i1 %232, i64 3, i64 0
%234 = getelementptr i8, i8* %229, i64 %233
%235 = select i1 %232, i32 62, i32 %230
%236 = tail call i32 @strncmp(i8* dereferenceable(1) %234, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.45, i64 0, i64 0), i64 3)
%237 = icmp eq i32 %236, 0
%238 = select i1 %237, i64 3, i64 0
%239 = getelementptr i8, i8* %234, i64 %238
%240 = select i1 %237, i32 63, i32 %235
%241 = tail call i32 @strncmp(i8* dereferenceable(1) %239, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0), i64 3)
%242 = icmp eq i32 %241, 0
%243 = select i1 %242, i64 3, i64 0
%244 = getelementptr i8, i8* %239, i64 %243
%245 = select i1 %242, i32 80, i32 %240
%246 = tail call i32 @strncmp(i8* dereferenceable(1) %244, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0), i64 3)
%247 = icmp eq i32 %246, 0
%248 = select i1 %247, i64 3, i64 0
%249 = getelementptr i8, i8* %244, i64 %248
%250 = select i1 %247, i32 81, i32 %245
%251 = tail call i32 @strncmp(i8* dereferenceable(1) %249, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.48, i64 0, i64 0), i64 3)
%252 = icmp eq i32 %251, 0
%253 = select i1 %252, i64 3, i64 0
%254 = getelementptr i8, i8* %249, i64 %253
%255 = select i1 %252, i32 82, i32 %250
%256 = tail call i32 @strncmp(i8* dereferenceable(1) %254, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.49, i64 0, i64 0), i64 3)
%257 = icmp eq i32 %256, 0
%258 = select i1 %257, i64 3, i64 0
%259 = getelementptr i8, i8* %254, i64 %258
%260 = select i1 %257, i32 83, i32 %255
%261 = tail call i32 @strncmp(i8* dereferenceable(1) %259, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.50, i64 0, i64 0), i64 3)
%262 = icmp eq i32 %261, 0
%263 = select i1 %262, i64 3, i64 0
%264 = getelementptr i8, i8* %259, i64 %263
%265 = select i1 %262, i32 84, i32 %260
%266 = tail call i32 @strncmp(i8* dereferenceable(1) %264, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0), i64 3)
%267 = icmp eq i32 %266, 0
%268 = select i1 %267, i64 3, i64 0
%269 = getelementptr i8, i8* %264, i64 %268
%270 = select i1 %267, i32 85, i32 %265
%271 = tail call i32 @strncmp(i8* dereferenceable(1) %269, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.52, i64 0, i64 0), i64 3)
%272 = icmp eq i32 %271, 0
%273 = select i1 %272, i64 3, i64 0
%274 = getelementptr i8, i8* %269, i64 %273
%275 = select i1 %272, i32 86, i32 %270
%276 = tail call i32 @strncmp(i8* dereferenceable(1) %274, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0), i64 3)
%277 = icmp eq i32 %276, 0
%278 = select i1 %277, i64 3, i64 0
%279 = getelementptr i8, i8* %274, i64 %278
%280 = select i1 %277, i32 87, i32 %275
%281 = tail call i32 @strncmp(i8* dereferenceable(1) %279, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.54, i64 0, i64 0), i64 3)
%282 = icmp eq i32 %281, 0
%283 = select i1 %282, i64 3, i64 0
%284 = getelementptr i8, i8* %279, i64 %283
%285 = select i1 %282, i32 28, i32 %280
%286 = tail call i32 @strncmp(i8* dereferenceable(1) %284, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.55, i64 0, i64 0), i64 4)
%287 = icmp eq i32 %286, 0
%288 = select i1 %287, i64 4, i64 0
%289 = getelementptr i8, i8* %284, i64 %288
%290 = select i1 %287, i32 29, i32 %285
%291 = tail call i32 @strncmp(i8* dereferenceable(1) %289, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0), i64 4)
%292 = icmp eq i32 %291, 0
%293 = select i1 %292, i64 4, i64 0
%294 = getelementptr i8, i8* %289, i64 %293
%295 = select i1 %292, i32 30, i32 %290
%296 = tail call i32 @strncmp(i8* dereferenceable(1) %294, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.57, i64 0, i64 0), i64 4)
%297 = icmp eq i32 %296, 0
%298 = select i1 %297, i64 4, i64 0
%299 = getelementptr i8, i8* %294, i64 %298
%300 = select i1 %297, i32 31, i32 %295
%301 = tail call i32 @strncmp(i8* dereferenceable(1) %299, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.58, i64 0, i64 0), i64 2)
%302 = icmp eq i32 %301, 0
%303 = select i1 %302, i64 2, i64 0
%304 = getelementptr i8, i8* %299, i64 %303
%305 = select i1 %302, i32 6, i32 %300
%306 = tail call i32 @strncmp(i8* dereferenceable(1) %304, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.59, i64 0, i64 0), i64 2)
%307 = icmp eq i32 %306, 0
%308 = select i1 %307, i64 2, i64 0
%309 = getelementptr i8, i8* %304, i64 %308
%310 = select i1 %307, i32 7, i32 %305
%311 = tail call i32 @strncmp(i8* dereferenceable(1) %309, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.60, i64 0, i64 0), i64 2)
%312 = icmp eq i32 %311, 0
%313 = select i1 %312, i64 2, i64 0
%314 = getelementptr i8, i8* %309, i64 %313
%315 = select i1 %312, i32 8, i32 %310
%316 = tail call i32 @strncmp(i8* dereferenceable(1) %314, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0), i64 4)
%317 = icmp eq i32 %316, 0
%318 = select i1 %317, i64 4, i64 0
%319 = getelementptr i8, i8* %314, i64 %318
%320 = select i1 %317, i32 10, i32 %315
%321 = tail call i32 @strncmp(i8* dereferenceable(1) %319, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.62, i64 0, i64 0), i64 4)
%322 = icmp eq i32 %321, 0
%323 = select i1 %322, i64 4, i64 0
%324 = getelementptr i8, i8* %319, i64 %323
%325 = select i1 %322, i32 11, i32 %320
%326 = tail call i32 @strncmp(i8* dereferenceable(1) %324, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0), i64 4)
%327 = icmp eq i32 %326, 0
%328 = select i1 %327, i64 4, i64 0
%329 = getelementptr i8, i8* %324, i64 %328
%330 = select i1 %327, i32 12, i32 %325
%331 = load i8, i8* %329
%332 = icmp eq i8 %331, 109
%333 = zext i1 %332 to i64
%334 = getelementptr i8, i8* %329, i64 %333
%335 = select i1 %332, i32 1, i32 %330
%336 = tail call i32 @strncmp(i8* %334, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.65, i64 0, i64 0), i64 3)
%337 = icmp eq i32 %336, 0
%338 = select i1 %337, i64 3, i64 0
%339 = getelementptr i8, i8* %334, i64 %338
%340 = tail call i32 @strncmp(i8* dereferenceable(1) %339, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.66, i64 0, i64 0), i64 3)
%341 = icmp eq i32 %340, 0
%342 = select i1 %341, i64 3, i64 0
%343 = getelementptr i8, i8* %339, i64 %342
%344 = select i1 %341, i1 true, i1 %337
%345 = select i1 %344, i32 3, i32 %335
%346 = tail call i32 @strncmp(i8* dereferenceable(1) %343, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.67, i64 0, i64 0), i64 2)
%347 = icmp eq i32 %346, 0
%348 = select i1 %347, i64 2, i64 0
%349 = getelementptr i8, i8* %343, i64 %348
%350 = select i1 %347, i32 2, i32 %345
%351 = tail call i32 @strncmp(i8* dereferenceable(1) %349, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.68, i64 0, i64 0), i64 3)
%352 = icmp eq i32 %351, 0
%353 = select i1 %352, i64 3, i64 0
%354 = getelementptr i8, i8* %349, i64 %353
%355 = tail call i32 @strncmp(i8* dereferenceable(1) %354, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.69, i64 0, i64 0), i64 3)
%356 = icmp eq i32 %355, 0
%357 = select i1 %356, i64 3, i64 0
%358 = getelementptr i8, i8* %354, i64 %357
%359 = select i1 %356, i1 true, i1 %352
%360 = select i1 %359, i32 5, i32 %350
%361 = tail call i32 @strncmp(i8* dereferenceable(1) %358, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.70, i64 0, i64 0), i64 2)
%362 = icmp eq i32 %361, 0
%363 = select i1 %362, i64 2, i64 0
%364 = getelementptr i8, i8* %358, i64 %363
%365 = select i1 %362, i32 4, i32 %360
%366 = tail call i32 @strncmp(i8* dereferenceable(1) %364, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.71, i64 0, i64 0), i64 2)
%367 = icmp eq i32 %366, 0
%368 = select i1 %367, i64 2, i64 0
%369 = getelementptr i8, i8* %364, i64 %368
%370 = select i1 %367, i32 72, i32 %365
%371 = tail call i32 @strncmp(i8* dereferenceable(1) %369, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.72, i64 0, i64 0), i64 2)
%372 = icmp eq i32 %371, 0
%373 = select i1 %372, i64 2, i64 0
%374 = getelementptr i8, i8* %369, i64 %373
%375 = select i1 %372, i32 73, i32 %370
%376 = tail call i32 @strncmp(i8* dereferenceable(1) %374, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.73, i64 0, i64 0), i64 2)
%377 = icmp eq i32 %376, 0
%378 = select i1 %377, i64 2, i64 0
%379 = getelementptr i8, i8* %374, i64 %378
%380 = select i1 %377, i32 74, i32 %375
%381 = tail call i32 @strncmp(i8* dereferenceable(1) %379, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.74, i64 0, i64 0), i64 2)
%382 = icmp eq i32 %381, 0
%383 = select i1 %382, i64 2, i64 0
%384 = getelementptr i8, i8* %379, i64 %383
%385 = select i1 %382, i32 75, i32 %380
%386 = tail call i32 @strncmp(i8* dereferenceable(1) %384, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.75, i64 0, i64 0), i64 2)
%387 = icmp eq i32 %386, 0
%388 = select i1 %387, i64 2, i64 0
%389 = getelementptr i8, i8* %384, i64 %388
%390 = select i1 %387, i32 76, i32 %385
%391 = tail call i32 @strncmp(i8* dereferenceable(1) %389, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.76, i64 0, i64 0), i64 2)
%392 = icmp eq i32 %391, 0
%393 = select i1 %392, i64 2, i64 0
%394 = getelementptr i8, i8* %389, i64 %393
%395 = select i1 %392, i32 77, i32 %390
store i8* %394, i8** %0
ret i32 %395
}