int Degen_Cmp(char *d, char *s, int len, int mode, int WW) {
  int same = 1;
  int m, start = 0, t = WW;
  if (WW == 0) {
    start = 6;
    t = 6;
  }
  if (mode == 0) {
    for (m = start; m < len && same == 1; m++, t++) {
      switch (d[m]) {
      case 'a':
        if (s[t] != 'a')
          same = 0;
        break;
      case 'c':
        if (s[t] != 'c')
          same = 0;
        break;
      case 'g':
        if (s[t] != 'g')
          same = 0;
        break;
      case 't':
        if (s[t] != 't')
          same = 0;
        break;
      case 'y':
        if (s[t] != 'c' && s[t] != 't')
          same = 0;
        break;
      case 'r':
        if (s[t] != 'a' && s[t] != 'g')
          same = 0;
        break;
      case 'm':
        if (s[t] != 'a' && s[t] != 'c')
          same = 0;
        break;
      case 'k':
        if (s[t] != 'g' && s[t] != 't')
          same = 0;
        break;
      case 'w':
        if (s[t] != 'a' && s[t] != 't')
          same = 0;
        break;
      case 's':
        if (s[t] != 'c' && s[t] != 'g')
          same = 0;
        break;
      case 'b':
        if (s[t] == 'a')
          same = 0;
        break;
      case 'd':
        if (s[t] == 'c')
          same = 0;
        break;
      case 'h':
        if (s[t] == 'g')
          same = 0;
        break;
      case 'v':
        if (s[t] == 't')
          same = 0;
        break;
      case 'n':
        break;
      }
    }
  } else if (mode == 1) {
    for (m = start; m < len && same == 1; m++, t++) {
      switch (d[m]) {
      case 'a':
        if (s[t] != 'a' && s[t] != 'w' && s[t] != 'n' && s[t] != 'r' &&
            s[t] != 'k' && s[t] != 'd' && s[t] != 'h' && s[t] != 'v')
          same = 0;
        break;
      case 'c':
        if (s[t] != 'c' && s[t] != 's' && s[t] != 'n' && s[t] != 'y' &&
            s[t] != 'm' && s[t] != 'b' && s[t] != 'h' && s[t] != 'v')
          same = 0;
        break;
      case 'g':
        if (s[t] != 'g' && s[t] != 's' && s[t] != 'n' && s[t] != 'r' &&
            s[t] != 'm' && s[t] != 'b' && s[t] != 'd' && s[t] != 'v')
          same = 0;
        break;
      case 't':
        if (s[t] != 't' && s[t] != 'w' && s[t] != 'n' && s[t] != 'y' &&
            s[t] != 'k' && s[t] != 'b' && s[t] != 'd' && s[t] != 'h')
          same = 0;
        break;
      case 'y':
        if (s[t] == 'g' || s[t] == 'a')
          same = 0;
        break;
      case 'r':
        if (s[t] == 'c' || s[t] == 't')
          same = 0;
        break;
      case 'm':
        if (s[t] == 'g' || s[t] == 't')
          same = 0;
        break;
      case 'k':
        if (s[t] == 'a' || s[t] == 'c')
          same = 0;
        break;
      case 'w':
        if (s[t] == 'g' || s[t] == 'c')
          same = 0;
        break;
      case 's':
        if (s[t] == 'a' || s[t] == 't')
          same = 0;
        break;
      case 'b':
        if (s[t] == 'a')
          same = 0;
        break;
      case 'd':
        if (s[t] == 'c')
          same = 0;
        break;
      case 'h':
        if (s[t] == 'g')
          same = 0;
        break;
      case 'v':
        if (s[t] == 't')
          same = 0;
        break;
      case 'n':
        break;
      }
    }
  } else if (mode == 2) {
    for (m = start; m < len && same == 1; m++, t++) {
      switch (d[m]) {
      case 'a':
        if (s[t] != 'a')
          same = 0;
        break;
      case 'c':
        if (s[t] != 'c')
          same = 0;
        break;
      case 'g':
        if (s[t] != 'g')
          same = 0;
        break;
      case 't':
        if (s[t] != 't')
          same = 0;
        break;
      case 'y':
        switch (s[t]) {
        case 'y':
        case 't':
        case 'c':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'r':
        switch (s[t]) {
        case 'r':
        case 'a':
        case 'g':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'm':
        switch (s[t]) {
        case 'm':
        case 'c':
        case 'a':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'k':
        switch (s[t]) {
        case 'k':
        case 't':
        case 'g':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'w':
        switch (s[t]) {
        case 'w':
        case 'a':
        case 't':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 's':
        switch (s[t]) {
        case 's':
        case 'g':
        case 'c':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'b':
        switch (s[t]) {
        case 'b':
        case 'c':
        case 'g':
        case 't':
        case 'k':
        case 's':
        case 'y':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'd':
        switch (s[t]) {
        case 'd':
        case 'a':
        case 'g':
        case 't':
        case 'k':
        case 'w':
        case 'r':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'h':
        switch (s[t]) {
        case 'h':
        case 'a':
        case 'c':
        case 't':
        case 'm':
        case 'w':
        case 'y':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'v':
        switch (s[t]) {
        case 'v':
        case 'a':
        case 'c':
        case 'g':
        case 'm':
        case 's':
        case 'r':
          break;
        default:
          same = 0;
          break;
        }
        break;
      case 'n':
        break;
      }
    }
  }
  return same;
}


x86 assembly (clang, -O0):
<Degen_Cmp>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    %ecx,-0x18(%rbp)
mov    %r8d,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
movl   $0x0,-0x28(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
jne    1142 <Degen_Cmp+0x42>
movl   $0x6,-0x28(%rbp)
movl   $0x6,-0x2c(%rbp)
cmpl   $0x0,-0x18(%rbp)
jne    1421 <Degen_Cmp+0x321>
mov    -0x28(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%ecx
xor    %eax,%eax
cmp    -0x14(%rbp),%ecx
mov    %al,-0x2d(%rbp)
jge    116d <Degen_Cmp+0x6d>
cmpl   $0x1,-0x20(%rbp)
sete   %al
mov    %al,-0x2d(%rbp)
mov    -0x2d(%rbp),%al
test   $0x1,%al
jne    117d <Degen_Cmp+0x7d>
jmp    141c <Degen_Cmp+0x31c>
mov    -0x8(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
add    $0xffffff9f,%eax
mov    %eax,%ecx
mov    %rcx,-0x38(%rbp)
sub    $0x18,%eax
ja     1400 <Degen_Cmp+0x300>
mov    -0x38(%rbp),%rax
lea    0xf22(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     11cb <Degen_Cmp+0xcb>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     11ec <Degen_Cmp+0xec>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     120d <Degen_Cmp+0x10d>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     122e <Degen_Cmp+0x12e>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     1264 <Degen_Cmp+0x164>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     1264 <Degen_Cmp+0x164>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     129a <Degen_Cmp+0x19a>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     129a <Degen_Cmp+0x19a>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     12d0 <Degen_Cmp+0x1d0>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     12d0 <Degen_Cmp+0x1d0>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     1306 <Degen_Cmp+0x206>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     1306 <Degen_Cmp+0x206>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     133c <Degen_Cmp+0x23c>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     133c <Degen_Cmp+0x23c>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     1372 <Degen_Cmp+0x272>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     1372 <Degen_Cmp+0x272>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
jne    1393 <Degen_Cmp+0x293>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
jne    13b4 <Degen_Cmp+0x2b4>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
jne    13d5 <Degen_Cmp+0x2d5>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
jne    13f6 <Degen_Cmp+0x2f6>
movl   $0x0,-0x20(%rbp)
jmp    1400 <Degen_Cmp+0x300>
jmp    1400 <Degen_Cmp+0x300>
jmp    1405 <Degen_Cmp+0x305>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1152 <Degen_Cmp+0x52>
jmp    1e73 <Degen_Cmp+0xd73>
cmpl   $0x1,-0x18(%rbp)
jne    194c <Degen_Cmp+0x84c>
mov    -0x28(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%ecx
xor    %eax,%eax
cmp    -0x14(%rbp),%ecx
mov    %al,-0x39(%rbp)
jge    144c <Degen_Cmp+0x34c>
cmpl   $0x1,-0x20(%rbp)
sete   %al
mov    %al,-0x39(%rbp)
mov    -0x39(%rbp),%al
test   $0x1,%al
jne    145c <Degen_Cmp+0x35c>
jmp    1947 <Degen_Cmp+0x847>
mov    -0x8(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
add    $0xffffff9f,%eax
mov    %eax,%ecx
mov    %rcx,-0x48(%rbp)
sub    $0x18,%eax
ja     192b <Degen_Cmp+0x82b>
mov    -0x48(%rbp),%rax
lea    0xbdf(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x77,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6e,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x72,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6b,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x64,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x68,%eax
je     153d <Degen_Cmp+0x43d>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x76,%eax
je     153d <Degen_Cmp+0x43d>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x73,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6e,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x79,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6d,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x62,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x68,%eax
je     15f1 <Degen_Cmp+0x4f1>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x76,%eax
je     15f1 <Degen_Cmp+0x4f1>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x73,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6e,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x72,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6d,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x62,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x64,%eax
je     16a5 <Degen_Cmp+0x5a5>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x76,%eax
je     16a5 <Degen_Cmp+0x5a5>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x77,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6e,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x79,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6b,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x62,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x64,%eax
je     1759 <Degen_Cmp+0x659>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x68,%eax
je     1759 <Degen_Cmp+0x659>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     1788 <Degen_Cmp+0x688>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
jne    178f <Degen_Cmp+0x68f>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     17be <Degen_Cmp+0x6be>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
jne    17c5 <Degen_Cmp+0x6c5>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     17f4 <Degen_Cmp+0x6f4>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
jne    17fb <Degen_Cmp+0x6fb>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     182a <Degen_Cmp+0x72a>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
jne    1831 <Degen_Cmp+0x731>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     1860 <Degen_Cmp+0x760>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
jne    1867 <Degen_Cmp+0x767>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     1896 <Degen_Cmp+0x796>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
jne    189d <Degen_Cmp+0x79d>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
jne    18be <Degen_Cmp+0x7be>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
jne    18df <Degen_Cmp+0x7df>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
jne    1900 <Degen_Cmp+0x800>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
jne    1921 <Degen_Cmp+0x821>
movl   $0x0,-0x20(%rbp)
jmp    192b <Degen_Cmp+0x82b>
jmp    192b <Degen_Cmp+0x82b>
jmp    1930 <Degen_Cmp+0x830>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1431 <Degen_Cmp+0x331>
jmp    1e6e <Degen_Cmp+0xd6e>
cmpl   $0x2,-0x18(%rbp)
jne    1e69 <Degen_Cmp+0xd69>
mov    -0x28(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%ecx
xor    %eax,%eax
cmp    -0x14(%rbp),%ecx
mov    %al,-0x49(%rbp)
jge    1977 <Degen_Cmp+0x877>
cmpl   $0x1,-0x20(%rbp)
sete   %al
mov    %al,-0x49(%rbp)
mov    -0x49(%rbp),%al
test   $0x1,%al
jne    1987 <Degen_Cmp+0x887>
jmp    1e64 <Degen_Cmp+0xd64>
mov    -0x8(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
add    $0xffffff9f,%eax
mov    %eax,%ecx
mov    %rcx,-0x58(%rbp)
sub    $0x18,%eax
ja     1e48 <Degen_Cmp+0xd48>
mov    -0x58(%rbp),%rax
lea    0x650(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x61,%eax
je     19d5 <Degen_Cmp+0x8d5>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x63,%eax
je     19f6 <Degen_Cmp+0x8f6>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x67,%eax
je     1a17 <Degen_Cmp+0x917>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x74,%eax
je     1a38 <Degen_Cmp+0x938>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x5c(%rbp)
sub    $0x63,%eax
je     1a7c <Degen_Cmp+0x97c>
jmp    1a5a <Degen_Cmp+0x95a>
mov    -0x5c(%rbp),%eax
sub    $0x74,%eax
je     1a7c <Degen_Cmp+0x97c>
jmp    1a6b <Degen_Cmp+0x96b>
mov    -0x5c(%rbp),%eax
sub    $0x79,%eax
jne    1a81 <Degen_Cmp+0x981>
jmp    1a7c <Degen_Cmp+0x97c>
jmp    1a88 <Degen_Cmp+0x988>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x60(%rbp)
sub    $0x61,%eax
je     1acc <Degen_Cmp+0x9cc>
jmp    1aaa <Degen_Cmp+0x9aa>
mov    -0x60(%rbp),%eax
sub    $0x67,%eax
je     1acc <Degen_Cmp+0x9cc>
jmp    1abb <Degen_Cmp+0x9bb>
mov    -0x60(%rbp),%eax
sub    $0x72,%eax
jne    1ad1 <Degen_Cmp+0x9d1>
jmp    1acc <Degen_Cmp+0x9cc>
jmp    1ad8 <Degen_Cmp+0x9d8>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x64(%rbp)
sub    $0x61,%eax
je     1b1c <Degen_Cmp+0xa1c>
jmp    1afa <Degen_Cmp+0x9fa>
mov    -0x64(%rbp),%eax
sub    $0x63,%eax
je     1b1c <Degen_Cmp+0xa1c>
jmp    1b0b <Degen_Cmp+0xa0b>
mov    -0x64(%rbp),%eax
sub    $0x6d,%eax
jne    1b21 <Degen_Cmp+0xa21>
jmp    1b1c <Degen_Cmp+0xa1c>
jmp    1b28 <Degen_Cmp+0xa28>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x68(%rbp)
sub    $0x67,%eax
je     1b6c <Degen_Cmp+0xa6c>
jmp    1b4a <Degen_Cmp+0xa4a>
mov    -0x68(%rbp),%eax
sub    $0x6b,%eax
je     1b6c <Degen_Cmp+0xa6c>
jmp    1b5b <Degen_Cmp+0xa5b>
mov    -0x68(%rbp),%eax
sub    $0x74,%eax
jne    1b71 <Degen_Cmp+0xa71>
jmp    1b6c <Degen_Cmp+0xa6c>
jmp    1b78 <Degen_Cmp+0xa78>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x6c(%rbp)
sub    $0x61,%eax
je     1bbc <Degen_Cmp+0xabc>
jmp    1b9a <Degen_Cmp+0xa9a>
mov    -0x6c(%rbp),%eax
sub    $0x74,%eax
je     1bbc <Degen_Cmp+0xabc>
jmp    1bab <Degen_Cmp+0xaab>
mov    -0x6c(%rbp),%eax
sub    $0x77,%eax
jne    1bc1 <Degen_Cmp+0xac1>
jmp    1bbc <Degen_Cmp+0xabc>
jmp    1bc8 <Degen_Cmp+0xac8>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x70(%rbp)
sub    $0x63,%eax
je     1c0c <Degen_Cmp+0xb0c>
jmp    1bea <Degen_Cmp+0xaea>
mov    -0x70(%rbp),%eax
sub    $0x67,%eax
je     1c0c <Degen_Cmp+0xb0c>
jmp    1bfb <Degen_Cmp+0xafb>
mov    -0x70(%rbp),%eax
sub    $0x73,%eax
jne    1c11 <Degen_Cmp+0xb11>
jmp    1c0c <Degen_Cmp+0xb0c>
jmp    1c18 <Degen_Cmp+0xb18>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x74(%rbp)
add    $0xffffff9e,%eax
sub    $0x2,%eax
jb     1c84 <Degen_Cmp+0xb84>
jmp    1c3d <Degen_Cmp+0xb3d>
mov    -0x74(%rbp),%eax
sub    $0x67,%eax
je     1c84 <Degen_Cmp+0xb84>
jmp    1c4e <Degen_Cmp+0xb4e>
mov    -0x74(%rbp),%eax
sub    $0x6b,%eax
je     1c84 <Degen_Cmp+0xb84>
jmp    1c5f <Degen_Cmp+0xb5f>
mov    -0x74(%rbp),%eax
add    $0xffffff8d,%eax
sub    $0x2,%eax
jb     1c84 <Degen_Cmp+0xb84>
jmp    1c73 <Degen_Cmp+0xb73>
mov    -0x74(%rbp),%eax
sub    $0x79,%eax
jne    1c89 <Degen_Cmp+0xb89>
jmp    1c84 <Degen_Cmp+0xb84>
jmp    1c90 <Degen_Cmp+0xb90>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x78(%rbp)
sub    $0x61,%eax
je     1d18 <Degen_Cmp+0xc18>
jmp    1cb2 <Degen_Cmp+0xbb2>
mov    -0x78(%rbp),%eax
sub    $0x64,%eax
je     1d18 <Degen_Cmp+0xc18>
jmp    1cc3 <Degen_Cmp+0xbc3>
mov    -0x78(%rbp),%eax
sub    $0x67,%eax
je     1d18 <Degen_Cmp+0xc18>
jmp    1cd4 <Degen_Cmp+0xbd4>
mov    -0x78(%rbp),%eax
sub    $0x6b,%eax
je     1d18 <Degen_Cmp+0xc18>
jmp    1ce5 <Degen_Cmp+0xbe5>
mov    -0x78(%rbp),%eax
sub    $0x72,%eax
je     1d18 <Degen_Cmp+0xc18>
jmp    1cf6 <Degen_Cmp+0xbf6>
mov    -0x78(%rbp),%eax
sub    $0x74,%eax
je     1d18 <Degen_Cmp+0xc18>
jmp    1d07 <Degen_Cmp+0xc07>
mov    -0x78(%rbp),%eax
sub    $0x77,%eax
jne    1d1d <Degen_Cmp+0xc1d>
jmp    1d18 <Degen_Cmp+0xc18>
jmp    1d24 <Degen_Cmp+0xc24>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x7c(%rbp)
sub    $0x61,%eax
je     1dac <Degen_Cmp+0xcac>
jmp    1d46 <Degen_Cmp+0xc46>
mov    -0x7c(%rbp),%eax
sub    $0x63,%eax
je     1dac <Degen_Cmp+0xcac>
jmp    1d57 <Degen_Cmp+0xc57>
mov    -0x7c(%rbp),%eax
sub    $0x68,%eax
je     1dac <Degen_Cmp+0xcac>
jmp    1d68 <Degen_Cmp+0xc68>
mov    -0x7c(%rbp),%eax
sub    $0x6d,%eax
je     1dac <Degen_Cmp+0xcac>
jmp    1d79 <Degen_Cmp+0xc79>
mov    -0x7c(%rbp),%eax
sub    $0x74,%eax
je     1dac <Degen_Cmp+0xcac>
jmp    1d8a <Degen_Cmp+0xc8a>
mov    -0x7c(%rbp),%eax
sub    $0x77,%eax
je     1dac <Degen_Cmp+0xcac>
jmp    1d9b <Degen_Cmp+0xc9b>
mov    -0x7c(%rbp),%eax
sub    $0x79,%eax
jne    1db1 <Degen_Cmp+0xcb1>
jmp    1dac <Degen_Cmp+0xcac>
jmp    1db8 <Degen_Cmp+0xcb8>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
mov    -0x10(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
mov    %eax,-0x80(%rbp)
sub    $0x61,%eax
je     1e32 <Degen_Cmp+0xd32>
jmp    1dda <Degen_Cmp+0xcda>
mov    -0x80(%rbp),%eax
sub    $0x63,%eax
je     1e32 <Degen_Cmp+0xd32>
jmp    1deb <Degen_Cmp+0xceb>
mov    -0x80(%rbp),%eax
sub    $0x67,%eax
je     1e32 <Degen_Cmp+0xd32>
jmp    1dfc <Degen_Cmp+0xcfc>
mov    -0x80(%rbp),%eax
sub    $0x6d,%eax
je     1e32 <Degen_Cmp+0xd32>
jmp    1e0d <Degen_Cmp+0xd0d>
mov    -0x80(%rbp),%eax
add    $0xffffff8e,%eax
sub    $0x2,%eax
jb     1e32 <Degen_Cmp+0xd32>
jmp    1e21 <Degen_Cmp+0xd21>
mov    -0x80(%rbp),%eax
sub    $0x76,%eax
jne    1e37 <Degen_Cmp+0xd37>
jmp    1e32 <Degen_Cmp+0xd32>
jmp    1e3e <Degen_Cmp+0xd3e>
movl   $0x0,-0x20(%rbp)
jmp    1e48 <Degen_Cmp+0xd48>
jmp    1e48 <Degen_Cmp+0xd48>
jmp    1e4d <Degen_Cmp+0xd4d>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    195c <Degen_Cmp+0x85c>
jmp    1e69 <Degen_Cmp+0xd69>
jmp    1e6e <Degen_Cmp+0xd6e>
jmp    1e73 <Degen_Cmp+0xd73>
mov    -0x20(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<Degen_Cmp>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
xor    %ebp,%ebp
test   %r8d,%r8d
mov    $0x6,%eax
cmove  %eax,%ebp
cmove  %eax,%r8d
mov    $0x1,%al
test   %ecx,%ecx
je     130d <Degen_Cmp+0x20d>
cmp    $0x1,%ecx
je     13e5 <Degen_Cmp+0x2e5>
cmp    $0x2,%ecx
jne    1529 <Degen_Cmp+0x429>
cmp    %edx,%ebp
jge    1529 <Degen_Cmp+0x429>
movslq %r8d,%rax
mov    %ebp,%r12d
movslq %edx,%rdx
add    $0x1,%r12
add    %rax,%rsi
lea    0xeaa(%rip),%r8
mov    $0x1005,%r15d
mov    $0x20041,%r13d
mov    $0x10011,%r14d
mov    $0x480001,%ebx
mov    $0x420001,%r9d
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movsbl -0x1(%rdi,%r12,1),%r11d
mov    $0x1,%r10b
add    $0xffffff9f,%r11d
cmp    $0x18,%r11d
ja     1292 <Degen_Cmp+0x192>
mov    $0x61,%al
movslq (%r8,%r11,4),%rbp
add    %r8,%rbp
jmp    *%rbp
movsbl (%rsi),%eax
add    $0xffffff9e,%eax
cmp    $0x18,%eax
jae    1522 <Degen_Cmp+0x422>
mov    $0x860223,%ecx
bt     %eax,%ecx
jb     1292 <Degen_Cmp+0x192>
jmp    1522 <Degen_Cmp+0x422>
mov    $0x63,%al
jmp    128c <Degen_Cmp+0x18c>
movsbl (%rsi),%eax
add    $0xffffff9f,%eax
cmp    $0x17,%eax
jae    1522 <Degen_Cmp+0x422>
mov    $0x4a0449,%ecx
bt     %eax,%ecx
jb     1292 <Degen_Cmp+0x192>
jmp    1522 <Degen_Cmp+0x422>
mov    $0x67,%al
jmp    128c <Degen_Cmp+0x18c>
movsbl (%rsi),%eax
add    $0xffffff9f,%eax
cmp    $0x19,%eax
jae    1522 <Degen_Cmp+0x422>
mov    $0x1481085,%ecx
bt     %eax,%ecx
jb     1292 <Degen_Cmp+0x192>
jmp    1522 <Degen_Cmp+0x422>
movsbl (%rsi),%ebp
xor    %eax,%eax
add    $0xffffff99,%ebp
cmp    $0xd,%ebp
ja     1529 <Degen_Cmp+0x429>
mov    $0x2011,%ecx
bt     %ebp,%ecx
jb     1292 <Degen_Cmp+0x192>
jmp    1529 <Degen_Cmp+0x429>
movsbl (%rsi),%ebp
xor    %eax,%eax
add    $0xffffff9f,%ebp
cmp    $0xc,%ebp
ja     1529 <Degen_Cmp+0x429>
bt     %ebp,%r15d
jb     1292 <Degen_Cmp+0x192>
jmp    1529 <Degen_Cmp+0x429>
movsbl (%rsi),%ebp
xor    %eax,%eax
add    $0xffffff9f,%ebp
cmp    $0x11,%ebp
ja     1529 <Degen_Cmp+0x429>
bt     %ebp,%r13d
jb     1292 <Degen_Cmp+0x192>
jmp    1529 <Degen_Cmp+0x429>
movsbl (%rsi),%ebp
xor    %eax,%eax
add    $0xffffff9d,%ebp
cmp    $0x10,%ebp
ja     1529 <Degen_Cmp+0x429>
bt     %ebp,%r14d
jb     1292 <Degen_Cmp+0x192>
jmp    1529 <Degen_Cmp+0x429>
mov    $0x74,%al
cmp    %al,(%rsi)
sete   %r10b
test   %r10b,%r10b
je     1526 <Degen_Cmp+0x426>
lea    0x1(%r12),%rcx
add    $0x1,%rsi
mov    %r10d,%eax
cmp    %rdx,%r12
mov    %rcx,%r12
jl     1180 <Degen_Cmp+0x80>
jmp    1529 <Degen_Cmp+0x429>
movsbl (%rsi),%eax
add    $0xffffff9f,%eax
cmp    $0x16,%eax
jae    1522 <Degen_Cmp+0x422>
mov    $0x261045,%ecx
bt     %eax,%ecx
jb     1292 <Degen_Cmp+0x192>
jmp    1522 <Degen_Cmp+0x422>
movsbl (%rsi),%ebp
xor    %eax,%eax
add    $0xffffff9f,%ebp
cmp    $0x16,%ebp
ja     1529 <Degen_Cmp+0x429>
bt     %ebp,%ebx
jb     1292 <Degen_Cmp+0x192>
jmp    1529 <Degen_Cmp+0x429>
movsbl (%rsi),%ebp
xor    %eax,%eax
add    $0xffffff9d,%ebp
cmp    $0x16,%ebp
ja     1529 <Degen_Cmp+0x429>
bt     %ebp,%r9d
jb     1292 <Degen_Cmp+0x192>
jmp    1529 <Degen_Cmp+0x429>
cmp    %edx,%ebp
jge    1529 <Degen_Cmp+0x429>
movslq %r8d,%rax
mov    %ebp,%ecx
movslq %edx,%rdx
add    $0x1,%rcx
add    %rax,%rsi
lea    0xd9d(%rip),%r8
nopl   0x0(%rax,%rax,1)
movsbl -0x1(%rdi,%rcx,1),%ebx
mov    $0x1,%al
add    $0xffffff9f,%ebx
cmp    $0x18,%ebx
ja     13c4 <Degen_Cmp+0x2c4>
movslq (%r8,%rbx,4),%rbx
add    %r8,%rbx
jmp    *%rbx
cmpb   $0x61,(%rsi)
sete   %al
jmp    13c4 <Degen_Cmp+0x2c4>
cmpb   $0x61,(%rsi)
jmp    13a9 <Degen_Cmp+0x2a9>
cmpb   $0x63,(%rsi)
sete   %al
jmp    13c4 <Degen_Cmp+0x2c4>
cmpb   $0x63,(%rsi)
jmp    13a9 <Degen_Cmp+0x2a9>
cmpb   $0x67,(%rsi)
sete   %al
jmp    13c4 <Degen_Cmp+0x2c4>
cmpb   $0x67,(%rsi)
jmp    13a9 <Degen_Cmp+0x2a9>
movzbl (%rsi),%eax
cmp    $0x67,%al
jmp    13ba <Degen_Cmp+0x2ba>
movzbl (%rsi),%eax
and    $0xfd,%al
cmp    $0x61,%al
sete   %al
jmp    13c4 <Degen_Cmp+0x2c4>
movzbl (%rsi),%eax
cmp    $0x61,%al
sete   %bl
cmp    $0x67,%al
jmp    13bf <Degen_Cmp+0x2bf>
movzbl (%rsi),%eax
and    $0xfb,%al
cmp    $0x63,%al
sete   %al
jmp    13c4 <Degen_Cmp+0x2c4>
cmpb   $0x74,(%rsi)
sete   %al
jmp    13c4 <Degen_Cmp+0x2c4>
cmpb   $0x74,(%rsi)
setne  %al
jmp    13c4 <Degen_Cmp+0x2c4>
movzbl (%rsi),%eax
cmp    $0x61,%al
jmp    13ba <Degen_Cmp+0x2ba>
movzbl (%rsi),%eax
cmp    $0x63,%al
sete   %bl
cmp    $0x74,%al
sete   %al
or     %bl,%al
test   %al,%al
je     1529 <Degen_Cmp+0x429>
lea    0x1(%rcx),%rbp
add    $0x1,%rsi
cmp    %rdx,%rcx
mov    %rbp,%rcx
jl     1330 <Degen_Cmp+0x230>
jmp    1529 <Degen_Cmp+0x429>
cmp    %edx,%ebp
jge    1529 <Degen_Cmp+0x429>
movslq %r8d,%rax
mov    %ebp,%ebp
movslq %edx,%rcx
add    $0x1,%rbp
add    %rax,%rsi
lea    0xc61(%rip),%rdx
mov    $0x622489,%r8d
mov    $0x921843,%r9d
mov    $0x131825,%r10d
mov    $0xa41245,%r11d
nopl   0x0(%rax,%rax,1)
movsbl -0x1(%rdi,%rbp,1),%ebx
mov    $0x1,%al
add    $0xffffff9f,%ebx
cmp    $0x18,%ebx
ja     14f3 <Degen_Cmp+0x3f3>
movslq (%rdx,%rbx,4),%rbx
add    %rdx,%rbx
jmp    *%rbx
movzbl (%rsi),%ebx
add    $0x9f,%bl
cmp    $0x17,%bl
jae    1522 <Degen_Cmp+0x422>
movzbl %bl,%ebx
bt     %ebx,%r8d
jb     14f3 <Degen_Cmp+0x3f3>
jmp    1522 <Degen_Cmp+0x422>
cmpb   $0x61,(%rsi)
jmp    14f0 <Degen_Cmp+0x3f0>
movzbl (%rsi),%ebx
add    $0x9e,%bl
cmp    $0x18,%bl
jae    1522 <Degen_Cmp+0x422>
movzbl %bl,%ebx
bt     %ebx,%r9d
jb     14f3 <Degen_Cmp+0x3f3>
jmp    1522 <Degen_Cmp+0x422>
cmpb   $0x63,(%rsi)
jmp    14f0 <Degen_Cmp+0x3f0>
movzbl (%rsi),%ebx
add    $0x9e,%bl
cmp    $0x15,%bl
jae    1522 <Degen_Cmp+0x422>
movzbl %bl,%ebx
bt     %ebx,%r10d
jb     14f3 <Degen_Cmp+0x3f3>
jmp    1522 <Degen_Cmp+0x422>
cmpb   $0x67,(%rsi)
jmp    14f0 <Degen_Cmp+0x3f0>
movzbl (%rsi),%eax
and    $0xfd,%al
cmp    $0x61,%al
jmp    14f0 <Degen_Cmp+0x3f0>
movzbl (%rsi),%eax
cmp    $0x67,%al
jmp    14c5 <Degen_Cmp+0x3c5>
movzbl (%rsi),%eax
cmp    $0x63,%al
jmp    14c5 <Degen_Cmp+0x3c5>
movzbl (%rsi),%eax
cmp    $0x61,%al
setne  %bl
cmp    $0x74,%al
jmp    1503 <Degen_Cmp+0x403>
movzbl (%rsi),%ebx
add    $0x9e,%bl
cmp    $0x18,%bl
jae    1522 <Degen_Cmp+0x422>
movzbl %bl,%ebx
bt     %ebx,%r11d
jb     14f3 <Degen_Cmp+0x3f3>
jmp    1522 <Degen_Cmp+0x422>
cmpb   $0x74,(%rsi)
jmp    14f0 <Degen_Cmp+0x3f0>
movzbl (%rsi),%eax
and    $0xfb,%al
cmp    $0x63,%al
xchg   %ax,%ax
setne  %al
test   %al,%al
jne    150c <Degen_Cmp+0x40c>
jmp    1529 <Degen_Cmp+0x429>
movzbl (%rsi),%eax
cmp    $0x67,%al
setne  %bl
cmp    $0x61,%al
setne  %al
and    %bl,%al
test   %al,%al
je     1529 <Degen_Cmp+0x429>
lea    0x1(%rbp),%rbx
add    $0x1,%rsi
cmp    %rcx,%rbp
mov    %rbx,%rbp
jl     1420 <Degen_Cmp+0x320>
jmp    1529 <Degen_Cmp+0x429>
xor    %eax,%eax
jmp    1529 <Degen_Cmp+0x429>
mov    %r10d,%eax
movzbl %al,%eax
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define i32 @Degen_Cmp(i8* nocapture %0, i8* %1, i32 %2, i32 %3, i32 %4) {
%6 = icmp eq i32 %4, 0
%7 = select i1 %6, i32 6, i32 0
%8 = select i1 %6, i32 6, i32 %4
switch i32 %3, label %291 [
i32 0, label %21
i32 1, label %15
i32 2, label %9
]
9: ; preds = %5
%10 = icmp slt i32 %7, %2
br i1 %10, label %11, label %291
11: ; preds = %9
%12 = sext i32 %8 to i64
%13 = zext i32 %7 to i64
%14 = sext i32 %2 to i64
br label %207
15: ; preds = %5
%16 = icmp slt i32 %7, %2
br i1 %16, label %17, label %291
17: ; preds = %15
%18 = sext i32 %8 to i64
%19 = zext i32 %7 to i64
%20 = sext i32 %2 to i64
br label %105
21: ; preds = %5
%22 = icmp slt i32 %7, %2
br i1 %22, label %23, label %291
23: ; preds = %21
%24 = sext i32 %8 to i64
%25 = zext i32 %7 to i64
%26 = sext i32 %2 to i64
br label %27
27: ; preds = %23, %99
%28 = phi i64 [ %25, %23 ], [ %101, %99 ]
%29 = phi i64 [ %24, %23 ], [ %102, %99 ]
%30 = getelementptr inbounds i8, i8* %0, i64 %28
%31 = load i8, i8* %30
%32 = sext i8 %31 to i32
switch i32 %32, label %99 [
i32 97, label %33
i32 99, label %37
i32 103, label %41
i32 116, label %45
i32 121, label %49
i32 114, label %55
i32 109, label %61
i32 107, label %66
i32 119, label %72
i32 115, label %78
i32 98, label %83
i32 100, label %87
i32 104, label %91
i32 118, label %95
]
33: ; preds = %27
%34 = getelementptr inbounds i8, i8* %1, i64 %29
%35 = load i8, i8* %34
%36 = icmp eq i8 %35, 97
br label %99
37: ; preds = %27
%38 = getelementptr inbounds i8, i8* %1, i64 %29
%39 = load i8, i8* %38
%40 = icmp eq i8 %39, 99
br label %99
41: ; preds = %27
%42 = getelementptr inbounds i8, i8* %1, i64 %29
%43 = load i8, i8* %42
%44 = icmp eq i8 %43, 103
br label %99
45: ; preds = %27
%46 = getelementptr inbounds i8, i8* %1, i64 %29
%47 = load i8, i8* %46
%48 = icmp eq i8 %47, 116
br label %99
49: ; preds = %27
%50 = getelementptr inbounds i8, i8* %1, i64 %29
%51 = load i8, i8* %50
%52 = icmp eq i8 %51, 99
%53 = icmp eq i8 %51, 116
%54 = or i1 %52, %53
br label %99
55: ; preds = %27
%56 = getelementptr inbounds i8, i8* %1, i64 %29
%57 = load i8, i8* %56
%58 = icmp eq i8 %57, 97
%59 = icmp eq i8 %57, 103
%60 = or i1 %58, %59
br label %99
61: ; preds = %27
%62 = getelementptr inbounds i8, i8* %1, i64 %29
%63 = load i8, i8* %62
%64 = and i8 %63, -3
%65 = icmp eq i8 %64, 97
br label %99
66: ; preds = %27
%67 = getelementptr inbounds i8, i8* %1, i64 %29
%68 = load i8, i8* %67
%69 = icmp eq i8 %68, 103
%70 = icmp eq i8 %68, 116
%71 = or i1 %69, %70
br label %99
72: ; preds = %27
%73 = getelementptr inbounds i8, i8* %1, i64 %29
%74 = load i8, i8* %73
%75 = icmp eq i8 %74, 97
%76 = icmp eq i8 %74, 116
%77 = or i1 %75, %76
br label %99
78: ; preds = %27
%79 = getelementptr inbounds i8, i8* %1, i64 %29
%80 = load i8, i8* %79
%81 = and i8 %80, -5
%82 = icmp eq i8 %81, 99
br label %99
83: ; preds = %27
%84 = getelementptr inbounds i8, i8* %1, i64 %29
%85 = load i8, i8* %84
%86 = icmp ne i8 %85, 97
br label %99
87: ; preds = %27
%88 = getelementptr inbounds i8, i8* %1, i64 %29
%89 = load i8, i8* %88
%90 = icmp ne i8 %89, 99
br label %99
91: ; preds = %27
%92 = getelementptr inbounds i8, i8* %1, i64 %29
%93 = load i8, i8* %92
%94 = icmp ne i8 %93, 103
br label %99
95: ; preds = %27
%96 = getelementptr inbounds i8, i8* %1, i64 %29
%97 = load i8, i8* %96
%98 = icmp ne i8 %97, 116
br label %99
99: ; preds = %95, %91, %87, %83, %78, %72, %66, %61, %55, %49, %45, %41, %37, %33, %27
%100 = phi i1 [ true, %27 ], [ %36, %33 ], [ %40, %37 ], [ %44, %41 ], [ %48, %45 ], [ %86, %83 ], [ %90, %87 ], [ %94, %91 ], [ %98, %95 ], [ %54, %49 ], [ %60, %55 ], [ %65, %61 ], [ %71, %66 ], [ %77, %72 ], [ %82, %78 ]
%101 = add nuw nsw i64 %28, 1
%102 = add nsw i64 %29, 1
%103 = icmp slt i64 %101, %26
%104 = and i1 %100, %103
br i1 %104, label %27, label %291
105: ; preds = %17, %201
%106 = phi i64 [ %19, %17 ], [ %203, %201 ]
%107 = phi i64 [ %18, %17 ], [ %204, %201 ]
%108 = getelementptr inbounds i8, i8* %0, i64 %106
%109 = load i8, i8* %108
%110 = sext i8 %109 to i32
switch i32 %110, label %201 [
i32 97, label %111
i32 99, label %116
i32 103, label %121
i32 116, label %126
i32 121, label %131
i32 114, label %137
i32 109, label %143
i32 107, label %149
i32 119, label %154
i32 115, label %159
i32 98, label %165
i32 100, label %169
i32 104, label %173
i32 118, label %177
]
111: ; preds = %105
%112 = getelementptr inbounds i8, i8* %1, i64 %107
%113 = load i8, i8* %112
%114 = add i8 %113, -97
%115 = icmp ult i8 %114, 23
br i1 %115, label %181, label %291
116: ; preds = %105
%117 = getelementptr inbounds i8, i8* %1, i64 %107
%118 = load i8, i8* %117
%119 = add i8 %118, -98
%120 = icmp ult i8 %119, 24
br i1 %120, label %186, label %291
121: ; preds = %105
%122 = getelementptr inbounds i8, i8* %1, i64 %107
%123 = load i8, i8* %122
%124 = add i8 %123, -98
%125 = icmp ult i8 %124, 21
br i1 %125, label %191, label %291
126: ; preds = %105
%127 = getelementptr inbounds i8, i8* %1, i64 %107
%128 = load i8, i8* %127
%129 = add i8 %128, -98
%130 = icmp ult i8 %129, 24
br i1 %130, label %196, label %291
131: ; preds = %105
%132 = getelementptr inbounds i8, i8* %1, i64 %107
%133 = load i8, i8* %132
%134 = icmp ne i8 %133, 103
%135 = icmp ne i8 %133, 97
%136 = and i1 %134, %135
br label %201
137: ; preds = %105
%138 = getelementptr inbounds i8, i8* %1, i64 %107
%139 = load i8, i8* %138
%140 = icmp ne i8 %139, 99
%141 = icmp ne i8 %139, 116
%142 = and i1 %140, %141
br label %201
143: ; preds = %105
%144 = getelementptr inbounds i8, i8* %1, i64 %107
%145 = load i8, i8* %144
%146 = icmp ne i8 %145, 103
%147 = icmp ne i8 %145, 116
%148 = and i1 %146, %147
br label %201
149: ; preds = %105
%150 = getelementptr inbounds i8, i8* %1, i64 %107
%151 = load i8, i8* %150
%152 = and i8 %151, -3
%153 = icmp ne i8 %152, 97
br label %201
154: ; preds = %105
%155 = getelementptr inbounds i8, i8* %1, i64 %107
%156 = load i8, i8* %155
%157 = and i8 %156, -5
%158 = icmp ne i8 %157, 99
br label %201
159: ; preds = %105
%160 = getelementptr inbounds i8, i8* %1, i64 %107
%161 = load i8, i8* %160
%162 = icmp ne i8 %161, 97
%163 = icmp ne i8 %161, 116
%164 = and i1 %162, %163
br label %201
165: ; preds = %105
%166 = getelementptr inbounds i8, i8* %1, i64 %107
%167 = load i8, i8* %166
%168 = icmp ne i8 %167, 97
br label %201
169: ; preds = %105
%170 = getelementptr inbounds i8, i8* %1, i64 %107
%171 = load i8, i8* %170
%172 = icmp ne i8 %171, 99
br label %201
173: ; preds = %105
%174 = getelementptr inbounds i8, i8* %1, i64 %107
%175 = load i8, i8* %174
%176 = icmp ne i8 %175, 103
br label %201
177: ; preds = %105
%178 = getelementptr inbounds i8, i8* %1, i64 %107
%179 = load i8, i8* %178
%180 = icmp ne i8 %179, 116
br label %201
181: ; preds = %111
%182 = zext i8 %114 to i32
%183 = lshr i32 6431881, %182
%184 = and i32 %183, 1
%185 = icmp eq i32 %184, 0
br i1 %185, label %291, label %201
186: ; preds = %116
%187 = zext i8 %119 to i32
%188 = lshr i32 9574467, %187
%189 = and i32 %188, 1
%190 = icmp eq i32 %189, 0
br i1 %190, label %291, label %201
191: ; preds = %121
%192 = zext i8 %124 to i32
%193 = lshr i32 1251365, %192
%194 = and i32 %193, 1
%195 = icmp eq i32 %194, 0
br i1 %195, label %291, label %201
196: ; preds = %126
%197 = zext i8 %129 to i32
%198 = lshr i32 10752581, %197
%199 = and i32 %198, 1
%200 = icmp eq i32 %199, 0
br i1 %200, label %291, label %201
201: ; preds = %196, %191, %186, %181, %177, %173, %169, %165, %159, %154, %149, %143, %137, %131, %105
%202 = phi i1 [ true, %105 ], [ %168, %165 ], [ %172, %169 ], [ %176, %173 ], [ %180, %177 ], [ %136, %131 ], [ %142, %137 ], [ %148, %143 ], [ %153, %149 ], [ %158, %154 ], [ %164, %159 ], [ true, %181 ], [ true, %186 ], [ true, %191 ], [ true, %196 ]
%203 = add nuw nsw i64 %106, 1
%204 = add nsw i64 %107, 1
%205 = icmp slt i64 %203, %20
%206 = and i1 %202, %205
br i1 %206, label %105, label %291
207: ; preds = %11, %285
%208 = phi i64 [ %13, %11 ], [ %287, %285 ]
%209 = phi i64 [ %12, %11 ], [ %288, %285 ]
%210 = getelementptr inbounds i8, i8* %0, i64 %208
%211 = load i8, i8* %210
%212 = sext i8 %211 to i32
switch i32 %212, label %285 [
i32 97, label %264
i32 99, label %213
i32 103, label %214
i32 116, label %215
i32 121, label %216
i32 114, label %220
i32 109, label %224
i32 107, label %228
i32 119, label %232
i32 115, label %236
i32 98, label %240
i32 100, label %246
i32 104, label %252
i32 118, label %258
]
213: ; preds = %207
br label %264
214: ; preds = %207
br label %264
215: ; preds = %207
br label %264
216: ; preds = %207
%217 = getelementptr inbounds i8, i8* %1, i64 %209
%218 = load i8, i8* %217
%219 = sext i8 %218 to i32
switch i32 %219, label %291 [
i32 121, label %285
i32 116, label %285
i32 99, label %285
]
220: ; preds = %207
%221 = getelementptr inbounds i8, i8* %1, i64 %209
%222 = load i8, i8* %221
%223 = sext i8 %222 to i32
switch i32 %223, label %291 [
i32 114, label %285
i32 97, label %285
i32 103, label %285
]
224: ; preds = %207
%225 = getelementptr inbounds i8, i8* %1, i64 %209
%226 = load i8, i8* %225
%227 = sext i8 %226 to i32
switch i32 %227, label %291 [
i32 109, label %285
i32 99, label %285
i32 97, label %285
]
228: ; preds = %207
%229 = getelementptr inbounds i8, i8* %1, i64 %209
%230 = load i8, i8* %229
%231 = sext i8 %230 to i32
switch i32 %231, label %291 [
i32 107, label %285
i32 116, label %285
i32 103, label %285
]
232: ; preds = %207
%233 = getelementptr inbounds i8, i8* %1, i64 %209
%234 = load i8, i8* %233
%235 = sext i8 %234 to i32
switch i32 %235, label %291 [
i32 119, label %285
i32 97, label %285
i32 116, label %285
]
236: ; preds = %207
%237 = getelementptr inbounds i8, i8* %1, i64 %209
%238 = load i8, i8* %237
%239 = sext i8 %238 to i32
switch i32 %239, label %291 [
i32 115, label %285
i32 103, label %285
i32 99, label %285
]
240: ; preds = %207
%241 = getelementptr inbounds i8, i8* %1, i64 %209
%242 = load i8, i8* %241
%243 = sext i8 %242 to i32
%244 = add nsw i32 %243, -98
%245 = icmp ult i32 %244, 24
br i1 %245, label %269, label %291
246: ; preds = %207
%247 = getelementptr inbounds i8, i8* %1, i64 %209
%248 = load i8, i8* %247
%249 = sext i8 %248 to i32
%250 = add nsw i32 %249, -97
%251 = icmp ult i32 %250, 23
br i1 %251, label %273, label %291
252: ; preds = %207
%253 = getelementptr inbounds i8, i8* %1, i64 %209
%254 = load i8, i8* %253
%255 = sext i8 %254 to i32
%256 = add nsw i32 %255, -97
%257 = icmp ult i32 %256, 25
br i1 %257, label %277, label %291
258: ; preds = %207
%259 = getelementptr inbounds i8, i8* %1, i64 %209
%260 = load i8, i8* %259
%261 = sext i8 %260 to i32
%262 = add nsw i32 %261, -97
%263 = icmp ult i32 %262, 22
br i1 %263, label %281, label %291
264: ; preds = %207, %213, %214, %215
%265 = phi i8 [ 116, %215 ], [ 103, %214 ], [ 99, %213 ], [ 97, %207 ]
%266 = getelementptr inbounds i8, i8* %1, i64 %209
%267 = load i8, i8* %266
%268 = icmp eq i8 %267, %265
br label %285
269: ; preds = %240
%270 = lshr i32 8782371, %244
%271 = and i32 %270, 1
%272 = icmp eq i32 %271, 0
br i1 %272, label %291, label %285
273: ; preds = %246
%274 = lshr i32 4850761, %250
%275 = and i32 %274, 1
%276 = icmp eq i32 %275, 0
br i1 %276, label %291, label %285
277: ; preds = %252
%278 = lshr i32 21500037, %256
%279 = and i32 %278, 1
%280 = icmp eq i32 %279, 0
br i1 %280, label %291, label %285
281: ; preds = %258
%282 = lshr i32 2494533, %262
%283 = and i32 %282, 1
%284 = icmp eq i32 %283, 0
br i1 %284, label %291, label %285
285: ; preds = %281, %277, %273, %269, %264, %207, %216, %216, %216, %220, %220, %220, %224, %224, %224, %228, %228, %228, %232, %232, %232, %236, %236, %236
%286 = phi i1 [ true, %207 ], [ true, %236 ], [ true, %236 ], [ true, %236 ], [ true, %232 ], [ true, %232 ], [ true, %232 ], [ true, %228 ], [ true, %228 ], [ true, %228 ], [ true, %224 ], [ true, %224 ], [ true, %224 ], [ true, %220 ], [ true, %220 ], [ true, %220 ], [ true, %216 ], [ true, %216 ], [ true, %216 ], [ %268, %264 ], [ true, %269 ], [ true, %273 ], [ true, %277 ], [ true, %281 ]
%287 = add nuw nsw i64 %208, 1
%288 = add nsw i64 %209, 1
%289 = icmp slt i64 %287, %14
%290 = and i1 %286, %289
br i1 %290, label %207, label %291
291: ; preds = %236, %232, %228, %224, %220, %216, %285, %240, %269, %246, %273, %252, %277, %258, %281, %201, %111, %181, %116, %186, %121, %191, %126, %196, %99, %9, %15, %21, %5
%292 = phi i1 [ true, %5 ], [ true, %21 ], [ true, %15 ], [ true, %9 ], [ %100, %99 ], [ false, %196 ], [ false, %191 ], [ false, %186 ], [ false, %181 ], [ false, %126 ], [ false, %121 ], [ false, %116 ], [ false, %111 ], [ %202, %201 ], [ false, %281 ], [ false, %277 ], [ false, %273 ], [ false, %269 ], [ false, %258 ], [ false, %252 ], [ false, %246 ], [ false, %240 ], [ false, %236 ], [ false, %232 ], [ false, %228 ], [ false, %224 ], [ false, %220 ], [ false, %216 ], [ %286, %285 ]
%293 = zext i1 %292 to i32
ret i32 %293
}