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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ exit(int);
int islower(int);
int IsLower(int enc, int c) {
  if (enc == 0)
    return islower(c);
  if (c >= 0x61 && c <= 0x7a)
    return 1;
  switch (enc) {
  case 1:
  case 2:
  case 10:
    if (c == 0xaa)
      return 1;
    if (c == 0xb5)
      return 1;
    if (c == 0xba)
      return 1;
    if (c >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xff)
      return 1;
    break;
  case 3:
    if (c == 0xb1 || c == 0xb3)
      return 1;
    if (c == 0xb5 || c == 0xb6)
      return 1;
    if (c >= 0xb9 && c <= 0xbc)
      return 1;
    if (c >= 0xbe && c <= 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 4:
    if (c == 0xb1)
      return 1;
    if (c == 0xb5 || c == 0xb6)
      return 1;
    if (c >= 0xb9 && c <= 0xbc)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c == 0xdf)
      return 1;
    if (c >= 0xe0 && c <= 0xe2)
      return 1;
    if (c >= 0xe4 && c <= 0xef)
      return 1;
    if (c >= 0xf1 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 5:
    if (c == 0xa2)
      return 1;
    if (c == 0xb1 || c == 0xb3)
      return 1;
    if (c == 0xb5 || c == 0xb6)
      return 1;
    if (c >= 0xb9 && c <= 0xbc)
      return 1;
    if (c >= 0xbe && c <= 0xbf)
      return 1;
    if (c == 0xdf)
      return 1;
    if (c >= 0xe0 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 6:
    if (c >= 0xd0 && c <= 0xff && c != 0xf0 && c != 0xfd)
      return 1;
    break;
  case 7:
    break;
  case 8:
    if (c == 0xc0)
      return 1;
    if (c >= 0xdc && c <= 0xfe)
      return 1;
    break;
  case 9:
    if (c == 0xb5)
      return 1;
    break;
  case 11:
    if (c >= 0xb1 && c <= 0xb6)
      return 1;
    if (c >= 0xb8 && c <= 0xbc)
      return 1;
    if (c == 0xbe || c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 12:
    break;
  case 13:
    if (c == 0xb5)
      return 1;
    if (c == 0xb8)
      return 1;
    if (c == 0xba)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 14:
    if (c == 0xa2)
      return 1;
    if (c == 0xa5)
      return 1;
    if (c == 0xab)
      return 1;
    if (c == 0xb1 || c == 0xb3 || c == 0xb5)
      return 1;
    if (c >= 0xb8 && c <= 0xba)
      return 1;
    if (c == 0xbc)
      return 1;
    if (c == 0xbe || c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 15:
    if (c == 0xaa)
      return 1;
    if (c == 0xb5)
      return 1;
    if (c == 0xba)
      return 1;
    if (c >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xff)
      return 1;
    if (c == 0xa8)
      return 1;
    if (c == 0xb8)
      return 1;
    if (c == 0xbd)
      return 1;
    break;
  case 16:
    if (c == 0xa2)
      return 1;
    if (c == 0xa8)
      return 1;
    if (c == 0xae)
      return 1;
    if (c == 0xb3)
      return 1;
    if (c >= 0xb8 && c <= 0xba)
      return 1;
    if (c == 0xbd)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 18:
    if (c == 0xa3)
      return 1;
  case 17:
    if (c >= 0xc0 && c <= 0xdf)
      return 1;
    break;
  default:
    exit(-1);
  }
  return 0;
}


x86 assembly (clang, -O0):
<IsLower>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
cmpl   $0x0,-0x8(%rbp)
jne    1148 <IsLower+0x28>
mov    -0xc(%rbp),%edi
call   1030 <islower@plt>
mov    %eax,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0x61,-0xc(%rbp)
jl     1168 <IsLower+0x48>
cmpl   $0x7a,-0xc(%rbp)
jg     1168 <IsLower+0x48>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x11,%eax
ja     1a8d <IsLower+0x96d>
mov    -0x18(%rbp),%rax
lea    0xe78(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cmpl   $0xaa,-0xc(%rbp)
jne    11aa <IsLower+0x8a>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb5,-0xc(%rbp)
jne    11c3 <IsLower+0xa3>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xba,-0xc(%rbp)
jne    11dc <IsLower+0xbc>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     1202 <IsLower+0xe2>
cmpl   $0xf6,-0xc(%rbp)
jg     1202 <IsLower+0xe2>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf8,-0xc(%rbp)
jl     1228 <IsLower+0x108>
cmpl   $0xff,-0xc(%rbp)
jg     1228 <IsLower+0x108>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xb1,-0xc(%rbp)
je     1247 <IsLower+0x127>
cmpl   $0xb3,-0xc(%rbp)
jne    1253 <IsLower+0x133>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb5,-0xc(%rbp)
je     126d <IsLower+0x14d>
cmpl   $0xb6,-0xc(%rbp)
jne    1279 <IsLower+0x159>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb9,-0xc(%rbp)
jl     129f <IsLower+0x17f>
cmpl   $0xbc,-0xc(%rbp)
jg     129f <IsLower+0x17f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbe,-0xc(%rbp)
jl     12c5 <IsLower+0x1a5>
cmpl   $0xbf,-0xc(%rbp)
jg     12c5 <IsLower+0x1a5>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     12eb <IsLower+0x1cb>
cmpl   $0xf6,-0xc(%rbp)
jg     12eb <IsLower+0x1cb>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf8,-0xc(%rbp)
jl     1311 <IsLower+0x1f1>
cmpl   $0xfe,-0xc(%rbp)
jg     1311 <IsLower+0x1f1>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xb1,-0xc(%rbp)
jne    132f <IsLower+0x20f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb5,-0xc(%rbp)
je     1349 <IsLower+0x229>
cmpl   $0xb6,-0xc(%rbp)
jne    1355 <IsLower+0x235>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb9,-0xc(%rbp)
jl     137b <IsLower+0x25b>
cmpl   $0xbc,-0xc(%rbp)
jg     137b <IsLower+0x25b>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbf,-0xc(%rbp)
jne    1394 <IsLower+0x274>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jne    13ad <IsLower+0x28d>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xe0,-0xc(%rbp)
jl     13d3 <IsLower+0x2b3>
cmpl   $0xe2,-0xc(%rbp)
jg     13d3 <IsLower+0x2b3>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xe4,-0xc(%rbp)
jl     13f9 <IsLower+0x2d9>
cmpl   $0xef,-0xc(%rbp)
jg     13f9 <IsLower+0x2d9>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf1,-0xc(%rbp)
jl     141f <IsLower+0x2ff>
cmpl   $0xf6,-0xc(%rbp)
jg     141f <IsLower+0x2ff>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf8,-0xc(%rbp)
jl     1445 <IsLower+0x325>
cmpl   $0xfe,-0xc(%rbp)
jg     1445 <IsLower+0x325>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xa2,-0xc(%rbp)
jne    1463 <IsLower+0x343>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb1,-0xc(%rbp)
je     147d <IsLower+0x35d>
cmpl   $0xb3,-0xc(%rbp)
jne    1489 <IsLower+0x369>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb5,-0xc(%rbp)
je     14a3 <IsLower+0x383>
cmpl   $0xb6,-0xc(%rbp)
jne    14af <IsLower+0x38f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb9,-0xc(%rbp)
jl     14d5 <IsLower+0x3b5>
cmpl   $0xbc,-0xc(%rbp)
jg     14d5 <IsLower+0x3b5>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbe,-0xc(%rbp)
jl     14fb <IsLower+0x3db>
cmpl   $0xbf,-0xc(%rbp)
jg     14fb <IsLower+0x3db>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jne    1514 <IsLower+0x3f4>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xe0,-0xc(%rbp)
jl     153a <IsLower+0x41a>
cmpl   $0xf6,-0xc(%rbp)
jg     153a <IsLower+0x41a>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf8,-0xc(%rbp)
jl     1560 <IsLower+0x440>
cmpl   $0xfe,-0xc(%rbp)
jg     1560 <IsLower+0x440>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xd0,-0xc(%rbp)
jl     15a5 <IsLower+0x485>
cmpl   $0xff,-0xc(%rbp)
jg     15a5 <IsLower+0x485>
cmpl   $0xf0,-0xc(%rbp)
je     15a5 <IsLower+0x485>
cmpl   $0xfd,-0xc(%rbp)
je     15a5 <IsLower+0x485>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
jmp    1a97 <IsLower+0x977>
cmpl   $0xc0,-0xc(%rbp)
jne    15c8 <IsLower+0x4a8>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdc,-0xc(%rbp)
jl     15ee <IsLower+0x4ce>
cmpl   $0xfe,-0xc(%rbp)
jg     15ee <IsLower+0x4ce>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xb5,-0xc(%rbp)
jne    160c <IsLower+0x4ec>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xb1,-0xc(%rbp)
jl     1637 <IsLower+0x517>
cmpl   $0xb6,-0xc(%rbp)
jg     1637 <IsLower+0x517>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb8,-0xc(%rbp)
jl     165d <IsLower+0x53d>
cmpl   $0xbc,-0xc(%rbp)
jg     165d <IsLower+0x53d>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbe,-0xc(%rbp)
je     1677 <IsLower+0x557>
cmpl   $0xbf,-0xc(%rbp)
jne    1683 <IsLower+0x563>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     16a9 <IsLower+0x589>
cmpl   $0xff,-0xc(%rbp)
jg     16a9 <IsLower+0x589>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
jmp    1a97 <IsLower+0x977>
cmpl   $0xb5,-0xc(%rbp)
jne    16cc <IsLower+0x5ac>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb8,-0xc(%rbp)
jne    16e5 <IsLower+0x5c5>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xba,-0xc(%rbp)
jne    16fe <IsLower+0x5de>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbf,-0xc(%rbp)
jne    1717 <IsLower+0x5f7>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     173d <IsLower+0x61d>
cmpl   $0xf6,-0xc(%rbp)
jg     173d <IsLower+0x61d>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf8,-0xc(%rbp)
jl     1763 <IsLower+0x643>
cmpl   $0xfe,-0xc(%rbp)
jg     1763 <IsLower+0x643>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xa2,-0xc(%rbp)
jne    1781 <IsLower+0x661>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xa5,-0xc(%rbp)
jne    179a <IsLower+0x67a>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xab,-0xc(%rbp)
jne    17b3 <IsLower+0x693>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb1,-0xc(%rbp)
je     17da <IsLower+0x6ba>
cmpl   $0xb3,-0xc(%rbp)
je     17da <IsLower+0x6ba>
cmpl   $0xb5,-0xc(%rbp)
jne    17e6 <IsLower+0x6c6>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb8,-0xc(%rbp)
jl     180c <IsLower+0x6ec>
cmpl   $0xba,-0xc(%rbp)
jg     180c <IsLower+0x6ec>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbc,-0xc(%rbp)
jne    1825 <IsLower+0x705>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbe,-0xc(%rbp)
je     183f <IsLower+0x71f>
cmpl   $0xbf,-0xc(%rbp)
jne    184b <IsLower+0x72b>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     1871 <IsLower+0x751>
cmpl   $0xff,-0xc(%rbp)
jg     1871 <IsLower+0x751>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xaa,-0xc(%rbp)
jne    188f <IsLower+0x76f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb5,-0xc(%rbp)
jne    18a8 <IsLower+0x788>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xba,-0xc(%rbp)
jne    18c1 <IsLower+0x7a1>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     18e7 <IsLower+0x7c7>
cmpl   $0xf6,-0xc(%rbp)
jg     18e7 <IsLower+0x7c7>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xf8,-0xc(%rbp)
jl     190d <IsLower+0x7ed>
cmpl   $0xff,-0xc(%rbp)
jg     190d <IsLower+0x7ed>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xa8,-0xc(%rbp)
jne    1926 <IsLower+0x806>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb8,-0xc(%rbp)
jne    193f <IsLower+0x81f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbd,-0xc(%rbp)
jne    1958 <IsLower+0x838>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xa2,-0xc(%rbp)
jne    1976 <IsLower+0x856>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xa8,-0xc(%rbp)
jne    198f <IsLower+0x86f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xae,-0xc(%rbp)
jne    19a8 <IsLower+0x888>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb3,-0xc(%rbp)
jne    19c1 <IsLower+0x8a1>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xb8,-0xc(%rbp)
jl     19e7 <IsLower+0x8c7>
cmpl   $0xba,-0xc(%rbp)
jg     19e7 <IsLower+0x8c7>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbd,-0xc(%rbp)
jne    1a00 <IsLower+0x8e0>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xbf,-0xc(%rbp)
jne    1a19 <IsLower+0x8f9>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
cmpl   $0xdf,-0xc(%rbp)
jl     1a3f <IsLower+0x91f>
cmpl   $0xff,-0xc(%rbp)
jg     1a3f <IsLower+0x91f>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
cmpl   $0xa3,-0xc(%rbp)
jne    1a5d <IsLower+0x93d>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a62 <IsLower+0x942>
cmpl   $0xc0,-0xc(%rbp)
jl     1a88 <IsLower+0x968>
cmpl   $0xdf,-0xc(%rbp)
jg     1a88 <IsLower+0x968>
movl   $0x1,-0x4(%rbp)
jmp    1a9e <IsLower+0x97e>
jmp    1a97 <IsLower+0x977>
mov    $0xffffffff,%edi
call   1040 <exit@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<IsLower>:
push   %rax
test   %edi,%edi
je     1134 <IsLower+0x14>
lea    -0x61(%rsi),%ecx
mov    $0x1,%eax
cmp    $0x1a,%ecx
jae    113c <IsLower+0x1c>
pop    %rcx
ret
mov    %esi,%edi
pop    %rax
jmp    1030 <islower@plt>
add    $0xffffffff,%edi
cmp    $0x11,%edi
ja     13f2 <IsLower+0x2d2>
lea    0xeb1(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
lea    -0xaa(%rsi),%ecx
cmp    $0x10,%ecx
ja     116d <IsLower+0x4d>
mov    $0x10801,%edx
bt     %ecx,%edx
jb     1132 <IsLower+0x12>
lea    -0xdf(%rsi),%ecx
cmp    $0x18,%ecx
jb     1132 <IsLower+0x12>
and    $0xfffffff8,%esi
cmp    $0xf8,%esi
jne    13ee <IsLower+0x2ce>
jmp    1132 <IsLower+0x12>
lea    -0xdf(%rsi),%ecx
cmp    $0x18,%ecx
jb     1132 <IsLower+0x12>
add    $0xffffff4f,%esi
cmp    $0x4d,%esi
ja     13ee <IsLower+0x2ce>
lea    0x1012(%rip),%rcx
movslq (%rcx,%rsi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
lea    -0xb1(%rsi),%ecx
cmp    $0x2e,%ecx
ja     11d2 <IsLower+0xb2>
movabs $0x400000004f31,%rdx
bt     %rcx,%rdx
jb     1132 <IsLower+0x12>
lea    -0xe4(%rsi),%ecx
cmp    $0xc,%ecx
jb     1132 <IsLower+0x12>
add    $0xffffff20,%esi
cmp    $0x1f,%esi
jae    13ee <IsLower+0x2ce>
movslq %esi,%rax
lea    0x10fa(%rip),%rcx
jmp    12ae <IsLower+0x18e>
lea    -0xe0(%rsi),%ecx
cmp    $0x17,%ecx
jb     1132 <IsLower+0x12>
add    $0xffffff5e,%esi
cmp    $0x5c,%esi
ja     13ee <IsLower+0x2ce>
lea    0xe24(%rip),%rcx
movslq (%rcx,%rsi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
lea    -0xd0(%rsi),%eax
cmp    $0x2f,%eax
ja     13ee <IsLower+0x2ce>
cmp    $0xfd,%esi
setne  %al
cmp    $0xf0,%esi
setne  %cl
and    %al,%cl
movzbl %cl,%eax
pop    %rcx
ret
cmp    $0xc0,%esi
je     1132 <IsLower+0x12>
add    $0xffffff24,%esi
cmp    $0x23,%esi
jae    13ee <IsLower+0x2ce>
jmp    1132 <IsLower+0x12>
cmp    $0xb5,%esi
je     1132 <IsLower+0x12>
jmp    13ee <IsLower+0x2ce>
lea    -0xdf(%rsi),%ecx
cmp    $0x21,%ecx
jb     1132 <IsLower+0x12>
add    $0xffffff4f,%esi
cmp    $0xf,%esi
jae    13ee <IsLower+0x2ce>
movslq %esi,%rax
lea    0x10c2(%rip),%rcx
mov    (%rcx,%rax,4),%eax
pop    %rcx
ret
lea    -0xb5(%rsi),%ecx
cmp    $0xa,%ecx
ja     12cc <IsLower+0x1ac>
mov    $0x429,%edx
bt     %ecx,%edx
jb     1132 <IsLower+0x12>
lea    -0xdf(%rsi),%ecx
cmp    $0x18,%ecx
jb     1132 <IsLower+0x12>
add    $0xffffff08,%esi
cmp    $0x7,%esi
jae    13ee <IsLower+0x2ce>
jmp    1132 <IsLower+0x12>
lea    -0xa2(%rsi),%ecx
cmp    $0x13,%ecx
ja     1308 <IsLower+0x1e8>
mov    $0xa8209,%edx
bt     %ecx,%edx
jb     1132 <IsLower+0x12>
lea    -0xdf(%rsi),%ecx
cmp    $0x21,%ecx
jb     1132 <IsLower+0x12>
add    $0xffffff48,%esi
cmp    $0x8,%esi
jae    13ee <IsLower+0x2ce>
movslq %esi,%rax
lea    0x107c(%rip),%rcx
jmp    12ae <IsLower+0x18e>
lea    -0xaa(%rsi),%ecx
cmp    $0x10,%ecx
ja     134e <IsLower+0x22e>
mov    $0x10801,%edx
bt     %ecx,%edx
jb     1132 <IsLower+0x12>
lea    -0xdf(%rsi),%ecx
cmp    $0x18,%ecx
jb     1132 <IsLower+0x12>
mov    %esi,%ecx
and    $0xfffffff8,%ecx
cmp    $0xf8,%ecx
je     1132 <IsLower+0x12>
add    $0xffffff58,%esi
cmp    $0x15,%esi
ja     13ee <IsLower+0x2ce>
mov    $0x210001,%ecx
bt     %esi,%ecx
jb     1132 <IsLower+0x12>
jmp    13ee <IsLower+0x2ce>
lea    -0xa2(%rsi),%ecx
cmp    $0x11,%ecx
ja     13a2 <IsLower+0x282>
mov    $0x21041,%edx
bt     %ecx,%edx
jb     1132 <IsLower+0x12>
lea    -0xb8(%rsi),%ecx
cmp    $0x3,%ecx
jb     1132 <IsLower+0x12>
mov    %esi,%ecx
or     $0x2,%ecx
cmp    $0xbf,%ecx
je     1132 <IsLower+0x12>
add    $0xffffff21,%esi
cmp    $0x21,%esi
jb     1132 <IsLower+0x12>
jmp    13ee <IsLower+0x2ce>
cmp    $0xa3,%esi
je     1132 <IsLower+0x12>
and    $0xffffffe0,%esi
cmp    $0xc0,%esi
je     1132 <IsLower+0x12>
xor    %eax,%eax
pop    %rcx
ret
mov    $0xffffffff,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
define i32 @IsLower(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
store i32 %0, i32* %4
store i32 %1, i32* %5
%6 = load i32, i32* %4
%7 = icmp eq i32 %6, 0
br i1 %7, label %8, label %11
8: ; preds = %2
%9 = load i32, i32* %5
%10 = call i32 @islower(i32 %9)
store i32 %10, i32* %3
br label %431
11: ; preds = %2
%12 = load i32, i32* %5
%13 = icmp sge i32 %12, 97
br i1 %13, label %14, label %18
14: ; preds = %11
%15 = load i32, i32* %5
%16 = icmp sle i32 %15, 122
br i1 %16, label %17, label %18
17: ; preds = %14
store i32 1, i32* %3
br label %431
18: ; preds = %14, %11
%19 = load i32, i32* %4
switch i32 %19, label %428 [
i32 1, label %20
i32 2, label %20
i32 10, label %20
i32 3, label %47
i32 4, label %90
i32 5, label %145
i32 6, label %196
i32 7, label %210
i32 8, label %211
i32 9, label %223
i32 11, label %228
i32 12, label %257
i32 13, label %258
i32 14, label %289
i32 15, label %337
i32 16, label %376
i32 18, label %415
i32 17, label %420
]
20: ; preds = %18, %18, %18
%21 = load i32, i32* %5
%22 = icmp eq i32 %21, 170
br i1 %22, label %23, label %24
23: ; preds = %20
store i32 1, i32* %3
br label %431
24: ; preds = %20
%25 = load i32, i32* %5
%26 = icmp eq i32 %25, 181
br i1 %26, label %27, label %28
27: ; preds = %24
store i32 1, i32* %3
br label %431
28: ; preds = %24
%29 = load i32, i32* %5
%30 = icmp eq i32 %29, 186
br i1 %30, label %31, label %32
31: ; preds = %28
store i32 1, i32* %3
br label %431
32: ; preds = %28
%33 = load i32, i32* %5
%34 = icmp sge i32 %33, 223
br i1 %34, label %35, label %39
35: ; preds = %32
%36 = load i32, i32* %5
%37 = icmp sle i32 %36, 246
br i1 %37, label %38, label %39
38: ; preds = %35
store i32 1, i32* %3
br label %431
39: ; preds = %35, %32
%40 = load i32, i32* %5
%41 = icmp sge i32 %40, 248
br i1 %41, label %42, label %46
42: ; preds = %39
%43 = load i32, i32* %5
%44 = icmp sle i32 %43, 255
br i1 %44, label %45, label %46
45: ; preds = %42
store i32 1, i32* %3
br label %431
46: ; preds = %42, %39
br label %430
47: ; preds = %18
%48 = load i32, i32* %5
%49 = icmp eq i32 %48, 177
br i1 %49, label %53, label %50
50: ; preds = %47
%51 = load i32, i32* %5
%52 = icmp eq i32 %51, 179
br i1 %52, label %53, label %54
53: ; preds = %50, %47
store i32 1, i32* %3
br label %431
54: ; preds = %50
%55 = load i32, i32* %5
%56 = icmp eq i32 %55, 181
br i1 %56, label %60, label %57
57: ; preds = %54
%58 = load i32, i32* %5
%59 = icmp eq i32 %58, 182
br i1 %59, label %60, label %61
60: ; preds = %57, %54
store i32 1, i32* %3
br label %431
61: ; preds = %57
%62 = load i32, i32* %5
%63 = icmp sge i32 %62, 185
br i1 %63, label %64, label %68
64: ; preds = %61
%65 = load i32, i32* %5
%66 = icmp sle i32 %65, 188
br i1 %66, label %67, label %68
67: ; preds = %64
store i32 1, i32* %3
br label %431
68: ; preds = %64, %61
%69 = load i32, i32* %5
%70 = icmp sge i32 %69, 190
br i1 %70, label %71, label %75
71: ; preds = %68
%72 = load i32, i32* %5
%73 = icmp sle i32 %72, 191
br i1 %73, label %74, label %75
74: ; preds = %71
store i32 1, i32* %3
br label %431
75: ; preds = %71, %68
%76 = load i32, i32* %5
%77 = icmp sge i32 %76, 223
br i1 %77, label %78, label %82
78: ; preds = %75
%79 = load i32, i32* %5
%80 = icmp sle i32 %79, 246
br i1 %80, label %81, label %82
81: ; preds = %78
store i32 1, i32* %3
br label %431
82: ; preds = %78, %75
%83 = load i32, i32* %5
%84 = icmp sge i32 %83, 248
br i1 %84, label %85, label %89
85: ; preds = %82
%86 = load i32, i32* %5
%87 = icmp sle i32 %86, 254
br i1 %87, label %88, label %89
88: ; preds = %85
store i32 1, i32* %3
br label %431
89: ; preds = %85, %82
br label %430
90: ; preds = %18
%91 = load i32, i32* %5
%92 = icmp eq i32 %91, 177
br i1 %92, label %93, label %94
93: ; preds = %90
store i32 1, i32* %3
br label %431
94: ; preds = %90
%95 = load i32, i32* %5
%96 = icmp eq i32 %95, 181
br i1 %96, label %100, label %97
97: ; preds = %94
%98 = load i32, i32* %5
%99 = icmp eq i32 %98, 182
br i1 %99, label %100, label %101
100: ; preds = %97, %94
store i32 1, i32* %3
br label %431
101: ; preds = %97
%102 = load i32, i32* %5
%103 = icmp sge i32 %102, 185
br i1 %103, label %104, label %108
104: ; preds = %101
%105 = load i32, i32* %5
%106 = icmp sle i32 %105, 188
br i1 %106, label %107, label %108
107: ; preds = %104
store i32 1, i32* %3
br label %431
108: ; preds = %104, %101
%109 = load i32, i32* %5
%110 = icmp eq i32 %109, 191
br i1 %110, label %111, label %112
111: ; preds = %108
store i32 1, i32* %3
br label %431
112: ; preds = %108
%113 = load i32, i32* %5
%114 = icmp eq i32 %113, 223
br i1 %114, label %115, label %116
115: ; preds = %112
store i32 1, i32* %3
br label %431
116: ; preds = %112
%117 = load i32, i32* %5
%118 = icmp sge i32 %117, 224
br i1 %118, label %119, label %123
119: ; preds = %116
%120 = load i32, i32* %5
%121 = icmp sle i32 %120, 226
br i1 %121, label %122, label %123
122: ; preds = %119
store i32 1, i32* %3
br label %431
123: ; preds = %119, %116
%124 = load i32, i32* %5
%125 = icmp sge i32 %124, 228
br i1 %125, label %126, label %130
126: ; preds = %123
%127 = load i32, i32* %5
%128 = icmp sle i32 %127, 239
br i1 %128, label %129, label %130
129: ; preds = %126
store i32 1, i32* %3
br label %431
130: ; preds = %126, %123
%131 = load i32, i32* %5
%132 = icmp sge i32 %131, 241
br i1 %132, label %133, label %137
133: ; preds = %130
%134 = load i32, i32* %5
%135 = icmp sle i32 %134, 246
br i1 %135, label %136, label %137
136: ; preds = %133
store i32 1, i32* %3
br label %431
137: ; preds = %133, %130
%138 = load i32, i32* %5
%139 = icmp sge i32 %138, 248
br i1 %139, label %140, label %144
140: ; preds = %137
%141 = load i32, i32* %5
%142 = icmp sle i32 %141, 254
br i1 %142, label %143, label %144
143: ; preds = %140
store i32 1, i32* %3
br label %431
144: ; preds = %140, %137
br label %430
145: ; preds = %18
%146 = load i32, i32* %5
%147 = icmp eq i32 %146, 162
br i1 %147, label %148, label %149
148: ; preds = %145
store i32 1, i32* %3
br label %431
149: ; preds = %145
%150 = load i32, i32* %5
%151 = icmp eq i32 %150, 177
br i1 %151, label %155, label %152
152: ; preds = %149
%153 = load i32, i32* %5
%154 = icmp eq i32 %153, 179
br i1 %154, label %155, label %156
155: ; preds = %152, %149
store i32 1, i32* %3
br label %431
156: ; preds = %152
%157 = load i32, i32* %5
%158 = icmp eq i32 %157, 181
br i1 %158, label %162, label %159
159: ; preds = %156
%160 = load i32, i32* %5
%161 = icmp eq i32 %160, 182
br i1 %161, label %162, label %163
162: ; preds = %159, %156
store i32 1, i32* %3
br label %431
163: ; preds = %159
%164 = load i32, i32* %5
%165 = icmp sge i32 %164, 185
br i1 %165, label %166, label %170
166: ; preds = %163
%167 = load i32, i32* %5
%168 = icmp sle i32 %167, 188
br i1 %168, label %169, label %170
169: ; preds = %166
store i32 1, i32* %3
br label %431
170: ; preds = %166, %163
%171 = load i32, i32* %5
%172 = icmp sge i32 %171, 190
br i1 %172, label %173, label %177
173: ; preds = %170
%174 = load i32, i32* %5
%175 = icmp sle i32 %174, 191
br i1 %175, label %176, label %177
176: ; preds = %173
store i32 1, i32* %3
br label %431
177: ; preds = %173, %170
%178 = load i32, i32* %5
%179 = icmp eq i32 %178, 223
br i1 %179, label %180, label %181
180: ; preds = %177
store i32 1, i32* %3
br label %431
181: ; preds = %177
%182 = load i32, i32* %5
%183 = icmp sge i32 %182, 224
br i1 %183, label %184, label %188
184: ; preds = %181
%185 = load i32, i32* %5
%186 = icmp sle i32 %185, 246
br i1 %186, label %187, label %188
187: ; preds = %184
store i32 1, i32* %3
br label %431
188: ; preds = %184, %181
%189 = load i32, i32* %5
%190 = icmp sge i32 %189, 248
br i1 %190, label %191, label %195
191: ; preds = %188
%192 = load i32, i32* %5
%193 = icmp sle i32 %192, 254
br i1 %193, label %194, label %195
194: ; preds = %191
store i32 1, i32* %3
br label %431
195: ; preds = %191, %188
br label %430
196: ; preds = %18
%197 = load i32, i32* %5
%198 = icmp sge i32 %197, 208
br i1 %198, label %199, label %209
199: ; preds = %196
%200 = load i32, i32* %5
%201 = icmp sle i32 %200, 255
br i1 %201, label %202, label %209
202: ; preds = %199
%203 = load i32, i32* %5
%204 = icmp ne i32 %203, 240
br i1 %204, label %205, label %209
205: ; preds = %202
%206 = load i32, i32* %5
%207 = icmp ne i32 %206, 253
br i1 %207, label %208, label %209
208: ; preds = %205
store i32 1, i32* %3
br label %431
209: ; preds = %205, %202, %199, %196
br label %430
210: ; preds = %18
br label %430
211: ; preds = %18
%212 = load i32, i32* %5
%213 = icmp eq i32 %212, 192
br i1 %213, label %214, label %215
214: ; preds = %211
store i32 1, i32* %3
br label %431
215: ; preds = %211
%216 = load i32, i32* %5
%217 = icmp sge i32 %216, 220
br i1 %217, label %218, label %222
218: ; preds = %215
%219 = load i32, i32* %5
%220 = icmp sle i32 %219, 254
br i1 %220, label %221, label %222
221: ; preds = %218
store i32 1, i32* %3
br label %431
222: ; preds = %218, %215
br label %430
223: ; preds = %18
%224 = load i32, i32* %5
%225 = icmp eq i32 %224, 181
br i1 %225, label %226, label %227
226: ; preds = %223
store i32 1, i32* %3
br label %431
227: ; preds = %223
br label %430
228: ; preds = %18
%229 = load i32, i32* %5
%230 = icmp sge i32 %229, 177
br i1 %230, label %231, label %235
231: ; preds = %228
%232 = load i32, i32* %5
%233 = icmp sle i32 %232, 182
br i1 %233, label %234, label %235
234: ; preds = %231
store i32 1, i32* %3
br label %431
235: ; preds = %231, %228
%236 = load i32, i32* %5
%237 = icmp sge i32 %236, 184
br i1 %237, label %238, label %242
238: ; preds = %235
%239 = load i32, i32* %5
%240 = icmp sle i32 %239, 188
br i1 %240, label %241, label %242
241: ; preds = %238
store i32 1, i32* %3
br label %431
242: ; preds = %238, %235
%243 = load i32, i32* %5
%244 = icmp eq i32 %243, 190
br i1 %244, label %248, label %245
245: ; preds = %242
%246 = load i32, i32* %5
%247 = icmp eq i32 %246, 191
br i1 %247, label %248, label %249
248: ; preds = %245, %242
store i32 1, i32* %3
br label %431
249: ; preds = %245
%250 = load i32, i32* %5
%251 = icmp sge i32 %250, 223
br i1 %251, label %252, label %256
252: ; preds = %249
%253 = load i32, i32* %5
%254 = icmp sle i32 %253, 255
br i1 %254, label %255, label %256
255: ; preds = %252
store i32 1, i32* %3
br label %431
256: ; preds = %252, %249
br label %430
257: ; preds = %18
br label %430
258: ; preds = %18
%259 = load i32, i32* %5
%260 = icmp eq i32 %259, 181
br i1 %260, label %261, label %262
261: ; preds = %258
store i32 1, i32* %3
br label %431
262: ; preds = %258
%263 = load i32, i32* %5
%264 = icmp eq i32 %263, 184
br i1 %264, label %265, label %266
265: ; preds = %262
store i32 1, i32* %3
br label %431
266: ; preds = %262
%267 = load i32, i32* %5
%268 = icmp eq i32 %267, 186
br i1 %268, label %269, label %270
269: ; preds = %266
store i32 1, i32* %3
br label %431
270: ; preds = %266
%271 = load i32, i32* %5
%272 = icmp eq i32 %271, 191
br i1 %272, label %273, label %274
273: ; preds = %270
store i32 1, i32* %3
br label %431
274: ; preds = %270
%275 = load i32, i32* %5
%276 = icmp sge i32 %275, 223
br i1 %276, label %277, label %281
277: ; preds = %274
%278 = load i32, i32* %5
%279 = icmp sle i32 %278, 246
br i1 %279, label %280, label %281
280: ; preds = %277
store i32 1, i32* %3
br label %431
281: ; preds = %277, %274
%282 = load i32, i32* %5
%283 = icmp sge i32 %282, 248
br i1 %283, label %284, label %288
284: ; preds = %281
%285 = load i32, i32* %5
%286 = icmp sle i32 %285, 254
br i1 %286, label %287, label %288
287: ; preds = %284
store i32 1, i32* %3
br label %431
288: ; preds = %284, %281
br label %430
289: ; preds = %18
%290 = load i32, i32* %5
%291 = icmp eq i32 %290, 162
br i1 %291, label %292, label %293
292: ; preds = %289
store i32 1, i32* %3
br label %431
293: ; preds = %289
%294 = load i32, i32* %5
%295 = icmp eq i32 %294, 165
br i1 %295, label %296, label %297
296: ; preds = %293
store i32 1, i32* %3
br label %431
297: ; preds = %293
%298 = load i32, i32* %5
%299 = icmp eq i32 %298, 171
br i1 %299, label %300, label %301
300: ; preds = %297
store i32 1, i32* %3
br label %431
301: ; preds = %297
%302 = load i32, i32* %5
%303 = icmp eq i32 %302, 177
br i1 %303, label %310, label %304
304: ; preds = %301
%305 = load i32, i32* %5
%306 = icmp eq i32 %305, 179
br i1 %306, label %310, label %307
307: ; preds = %304
%308 = load i32, i32* %5
%309 = icmp eq i32 %308, 181
br i1 %309, label %310, label %311
310: ; preds = %307, %304, %301
store i32 1, i32* %3
br label %431
311: ; preds = %307
%312 = load i32, i32* %5
%313 = icmp sge i32 %312, 184
br i1 %313, label %314, label %318
314: ; preds = %311
%315 = load i32, i32* %5
%316 = icmp sle i32 %315, 186
br i1 %316, label %317, label %318
317: ; preds = %314
store i32 1, i32* %3
br label %431
318: ; preds = %314, %311
%319 = load i32, i32* %5
%320 = icmp eq i32 %319, 188
br i1 %320, label %321, label %322
321: ; preds = %318
store i32 1, i32* %3
br label %431
322: ; preds = %318
%323 = load i32, i32* %5
%324 = icmp eq i32 %323, 190
br i1 %324, label %328, label %325
325: ; preds = %322
%326 = load i32, i32* %5
%327 = icmp eq i32 %326, 191
br i1 %327, label %328, label %329
328: ; preds = %325, %322
store i32 1, i32* %3
br label %431
329: ; preds = %325
%330 = load i32, i32* %5
%331 = icmp sge i32 %330, 223
br i1 %331, label %332, label %336
332: ; preds = %329
%333 = load i32, i32* %5
%334 = icmp sle i32 %333, 255
br i1 %334, label %335, label %336
335: ; preds = %332
store i32 1, i32* %3
br label %431
336: ; preds = %332, %329
br label %430
337: ; preds = %18
%338 = load i32, i32* %5
%339 = icmp eq i32 %338, 170
br i1 %339, label %340, label %341
340: ; preds = %337
store i32 1, i32* %3
br label %431
341: ; preds = %337
%342 = load i32, i32* %5
%343 = icmp eq i32 %342, 181
br i1 %343, label %344, label %345
344: ; preds = %341
store i32 1, i32* %3
br label %431
345: ; preds = %341
%346 = load i32, i32* %5
%347 = icmp eq i32 %346, 186
br i1 %347, label %348, label %349
348: ; preds = %345
store i32 1, i32* %3
br label %431
349: ; preds = %345
%350 = load i32, i32* %5
%351 = icmp sge i32 %350, 223
br i1 %351, label %352, label %356
352: ; preds = %349
%353 = load i32, i32* %5
%354 = icmp sle i32 %353, 246
br i1 %354, label %355, label %356
355: ; preds = %352
store i32 1, i32* %3
br label %431
356: ; preds = %352, %349
%357 = load i32, i32* %5
%358 = icmp sge i32 %357, 248
br i1 %358, label %359, label %363
359: ; preds = %356
%360 = load i32, i32* %5
%361 = icmp sle i32 %360, 255
br i1 %361, label %362, label %363
362: ; preds = %359
store i32 1, i32* %3
br label %431
363: ; preds = %359, %356
%364 = load i32, i32* %5
%365 = icmp eq i32 %364, 168
br i1 %365, label %366, label %367
366: ; preds = %363
store i32 1, i32* %3
br label %431
367: ; preds = %363
%368 = load i32, i32* %5
%369 = icmp eq i32 %368, 184
br i1 %369, label %370, label %371
370: ; preds = %367
store i32 1, i32* %3
br label %431
371: ; preds = %367
%372 = load i32, i32* %5
%373 = icmp eq i32 %372, 189
br i1 %373, label %374, label %375
374: ; preds = %371
store i32 1, i32* %3
br label %431
375: ; preds = %371
br label %430
376: ; preds = %18
%377 = load i32, i32* %5
%378 = icmp eq i32 %377, 162
br i1 %378, label %379, label %380
379: ; preds = %376
store i32 1, i32* %3
br label %431
380: ; preds = %376
%381 = load i32, i32* %5
%382 = icmp eq i32 %381, 168
br i1 %382, label %383, label %384
383: ; preds = %380
store i32 1, i32* %3
br label %431
384: ; preds = %380
%385 = load i32, i32* %5
%386 = icmp eq i32 %385, 174
br i1 %386, label %387, label %388
387: ; preds = %384
store i32 1, i32* %3
br label %431
388: ; preds = %384
%389 = load i32, i32* %5
%390 = icmp eq i32 %389, 179
br i1 %390, label %391, label %392
391: ; preds = %388
store i32 1, i32* %3
br label %431
392: ; preds = %388
%393 = load i32, i32* %5
%394 = icmp sge i32 %393, 184
br i1 %394, label %395, label %399
395: ; preds = %392
%396 = load i32, i32* %5
%397 = icmp sle i32 %396, 186
br i1 %397, label %398, label %399
398: ; preds = %395
store i32 1, i32* %3
br label %431
399: ; preds = %395, %392
%400 = load i32, i32* %5
%401 = icmp eq i32 %400, 189
br i1 %401, label %402, label %403
402: ; preds = %399
store i32 1, i32* %3
br label %431
403: ; preds = %399
%404 = load i32, i32* %5
%405 = icmp eq i32 %404, 191
br i1 %405, label %406, label %407
406: ; preds = %403
store i32 1, i32* %3
br label %431
407: ; preds = %403
%408 = load i32, i32* %5
%409 = icmp sge i32 %408, 223
br i1 %409, label %410, label %414
410: ; preds = %407
%411 = load i32, i32* %5
%412 = icmp sle i32 %411, 255
br i1 %412, label %413, label %414
413: ; preds = %410
store i32 1, i32* %3
br label %431
414: ; preds = %410, %407
br label %430
415: ; preds = %18
%416 = load i32, i32* %5
%417 = icmp eq i32 %416, 163
br i1 %417, label %418, label %419
418: ; preds = %415
store i32 1, i32* %3
br label %431
419: ; preds = %415
br label %420
420: ; preds = %18, %419
%421 = load i32, i32* %5
%422 = icmp sge i32 %421, 192
br i1 %422, label %423, label %427
423: ; preds = %420
%424 = load i32, i32* %5
%425 = icmp sle i32 %424, 223
br i1 %425, label %426, label %427
426: ; preds = %423
store i32 1, i32* %3
br label %431
427: ; preds = %423, %420
br label %430
428: ; preds = %18
%429 = call i32 @exit(i32 -1)
unreachable
430: ; preds = %427, %414, %375, %336, %288, %257, %256, %227, %222, %210, %209, %195, %144, %89, %46
store i32 0, i32* %3
br label %431
431: ; preds = %430, %426, %418, %413, %406, %402, %398, %391, %387, %383, %379, %374, %370, %366, %362, %355, %348, %344, %340, %335, %328, %321, %317, %310, %300, %296, %292, %287, %280, %273, %269, %265, %261, %255, %248, %241, %234, %226, %221, %214, %208, %194, %187, %180, %176, %169, %162, %155, %148, %143, %136, %129, %122, %115, %111, %107, %100, %93, %88, %81, %74, %67, %60, %53, %45, %38, %31, %27, %23, %17, %8
%432 = load i32, i32* %3
ret i32 %432
}

LLVM IR (-O2):
@switch.table.IsLower = [31 x i32] [i32 1, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1]
@switch.table.IsLower.1 = [15 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 1, i32 1]
@switch.table.IsLower.2 = [8 x i32] [i32 1, i32 1, i32 1, i32 0, i32 1, i32 0, i32 1, i32 1]
define i32 @IsLower(i32 %0, i32 %1) {
%3 = icmp eq i32 %0, 0
br i1 %3, label %4, label %6
4: ; preds = %2
%5 = tail call i32 @islower(i32 %1)
br label %106
6: ; preds = %2
%7 = add i32 %1, -97
%8 = icmp ult i32 %7, 26
br i1 %8, label %106, label %9
9: ; preds = %6
switch i32 %0, label %91 [
i32 1, label %10
i32 2, label %10
i32 10, label %10
i32 3, label %17
i32 4, label %21
i32 5, label %28
i32 6, label %32
i32 7, label %93
i32 8, label %40
i32 9, label %45
i32 11, label %47
i32 12, label %93
i32 13, label %53
i32 14, label %60
i32 15, label %67
i32 16, label %75
i32 18, label %83
i32 17, label %88
]
10: ; preds = %9, %9, %9
switch i32 %1, label %11 [
i32 170, label %106
i32 181, label %106
i32 186, label %106
]
11: ; preds = %10
%12 = add i32 %1, -223
%13 = icmp ult i32 %12, 24
%14 = and i32 %1, -8
%15 = icmp eq i32 %14, 248
%16 = or i1 %13, %15
br i1 %16, label %106, label %93
17: ; preds = %9
%18 = add i32 %1, -223
%19 = icmp ult i32 %18, 24
br i1 %19, label %106, label %20
20: ; preds = %17
switch i32 %1, label %93 [
i32 254, label %106
i32 253, label %106
i32 252, label %106
i32 251, label %106
i32 250, label %106
i32 249, label %106
i32 248, label %106
i32 191, label %106
i32 190, label %106
i32 188, label %106
i32 187, label %106
i32 186, label %106
i32 185, label %106
i32 182, label %106
i32 181, label %106
i32 179, label %106
i32 177, label %106
]
21: ; preds = %9
switch i32 %1, label %22 [
i32 188, label %106
i32 187, label %106
i32 186, label %106
i32 185, label %106
i32 182, label %106
i32 181, label %106
i32 177, label %106
i32 191, label %106
i32 223, label %106
]
22: ; preds = %21
%23 = add i32 %1, -228
%24 = icmp ult i32 %23, 12
br i1 %24, label %106, label %25
25: ; preds = %22
%26 = add i32 %1, -224
%27 = icmp ult i32 %26, 31
br i1 %27, label %94, label %93
28: ; preds = %9
%29 = add i32 %1, -224
%30 = icmp ult i32 %29, 23
br i1 %30, label %106, label %31
31: ; preds = %28
switch i32 %1, label %93 [
i32 254, label %106
i32 253, label %106
i32 252, label %106
i32 251, label %106
i32 250, label %106
i32 249, label %106
i32 248, label %106
i32 223, label %106
i32 191, label %106
i32 190, label %106
i32 188, label %106
i32 187, label %106
i32 186, label %106
i32 185, label %106
i32 182, label %106
i32 181, label %106
i32 179, label %106
i32 177, label %106
i32 162, label %106
]
32: ; preds = %9
%33 = add i32 %1, -208
%34 = icmp ult i32 %33, 48
br i1 %34, label %35, label %93
35: ; preds = %32
%36 = icmp ne i32 %1, 253
%37 = icmp ne i32 %1, 240
%38 = and i1 %36, %37
%39 = zext i1 %38 to i32
br label %106
40: ; preds = %9
%41 = icmp eq i32 %1, 192
%42 = add i32 %1, -220
%43 = icmp ult i32 %42, 35
%44 = or i1 %41, %43
br i1 %44, label %106, label %93
45: ; preds = %9
%46 = icmp eq i32 %1, 181
br i1 %46, label %106, label %93
47: ; preds = %9
%48 = add i32 %1, -223
%49 = icmp ult i32 %48, 33
br i1 %49, label %106, label %50
50: ; preds = %47
%51 = add i32 %1, -177
%52 = icmp ult i32 %51, 15
br i1 %52, label %98, label %93
53: ; preds = %9
switch i32 %1, label %54 [
i32 181, label %106
i32 184, label %106
i32 186, label %106
i32 191, label %106
]
54: ; preds = %53
%55 = add i32 %1, -223
%56 = icmp ult i32 %55, 24
%57 = add i32 %1, -248
%58 = icmp ult i32 %57, 7
%59 = or i1 %56, %58
br i1 %59, label %106, label %93
60: ; preds = %9
switch i32 %1, label %61 [
i32 162, label %106
i32 165, label %106
i32 171, label %106
i32 181, label %106
i32 179, label %106
i32 177, label %106
]
61: ; preds = %60
%62 = add i32 %1, -223
%63 = icmp ult i32 %62, 33
br i1 %63, label %106, label %64
64: ; preds = %61
%65 = add i32 %1, -184
%66 = icmp ult i32 %65, 8
br i1 %66, label %102, label %93
67: ; preds = %9
switch i32 %1, label %68 [
i32 170, label %106
i32 181, label %106
i32 186, label %106
]
68: ; preds = %67
%69 = add i32 %1, -223
%70 = icmp ult i32 %69, 24
%71 = and i32 %1, -8
%72 = icmp eq i32 %71, 248
%73 = or i1 %70, %72
br i1 %73, label %106, label %74
74: ; preds = %68
switch i32 %1, label %93 [
i32 168, label %106
i32 184, label %106
i32 189, label %106
]
75: ; preds = %9
switch i32 %1, label %76 [
i32 162, label %106
i32 168, label %106
i32 174, label %106
i32 179, label %106
]
76: ; preds = %75
%77 = add i32 %1, -184
%78 = icmp ult i32 %77, 3
br i1 %78, label %106, label %79
79: ; preds = %76
switch i32 %1, label %80 [
i32 189, label %106
i32 191, label %106
]
80: ; preds = %79
%81 = add i32 %1, -223
%82 = icmp ult i32 %81, 33
br i1 %82, label %106, label %93
83: ; preds = %9
%84 = icmp eq i32 %1, 163
%85 = and i32 %1, -32
%86 = icmp eq i32 %85, 192
%87 = or i1 %84, %86
br i1 %87, label %106, label %93
88: ; preds = %9
%89 = and i32 %1, -32
%90 = icmp eq i32 %89, 192
br i1 %90, label %106, label %93
91: ; preds = %9
%92 = tail call i32 @exit(i32 -1)
unreachable
93: ; preds = %64, %50, %25, %31, %20, %83, %54, %40, %11, %74, %32, %88, %80, %45, %9, %9
br label %106
94: ; preds = %25
%95 = sext i32 %26 to i64
%96 = getelementptr inbounds [31 x i32], [31 x i32]* @switch.table.IsLower, i64 0, i64 %95
%97 = load i32, i32* %96
br label %106
98: ; preds = %50
%99 = sext i32 %51 to i64
%100 = getelementptr inbounds [15 x i32], [15 x i32]* @switch.table.IsLower.1, i64 0, i64 %99
%101 = load i32, i32* %100
br label %106
102: ; preds = %64
%103 = sext i32 %65 to i64
%104 = getelementptr inbounds [8 x i32], [8 x i32]* @switch.table.IsLower.2, i64 0, i64 %103
%105 = load i32, i32* %104
br label %106
106: ; preds = %102, %98, %94, %61, %47, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %31, %28, %22, %21, %21, %21, %21, %21, %21, %21, %21, %21, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %20, %17, %60, %60, %60, %60, %60, %60, %35, %88, %83, %80, %79, %79, %76, %75, %75, %75, %75, %74, %74, %74, %68, %67, %67, %67, %54, %53, %53, %53, %53, %45, %40, %11, %10, %10, %10, %6, %93, %4
%107 = phi i32 [ %5, %4 ], [ 0, %93 ], [ 1, %6 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %11 ], [ 1, %20 ], [ 1, %21 ], [ 1, %31 ], [ 1, %40 ], [ 1, %45 ], [ 1, %53 ], [ 1, %53 ], [ 1, %53 ], [ 1, %53 ], [ 1, %54 ], [ 1, %60 ], [ 1, %60 ], [ 1, %60 ], [ 1, %67 ], [ 1, %67 ], [ 1, %67 ], [ 1, %68 ], [ 1, %74 ], [ 1, %74 ], [ 1, %74 ], [ 1, %75 ], [ 1, %75 ], [ 1, %75 ], [ 1, %75 ], [ 1, %76 ], [ 1, %79 ], [ 1, %79 ], [ 1, %80 ], [ 1, %83 ], [ 1, %88 ], [ %39, %35 ], [ 1, %60 ], [ 1, %60 ], [ 1, %60 ], [ 1, %17 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %20 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %21 ], [ 1, %22 ], [ 1, %28 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %31 ], [ 1, %47 ], [ 1, %61 ], [ %97, %94 ], [ %101, %98 ], [ %105, %102 ]
ret i32 %107
}