#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*/ assert(int);
int isalnum(char);
int isalpha(char);
int isblank(char);
int iscntrl(char);
int isdigit(char);
int islower(char);
int isspace(char);
int isupper(char);
char tolower(char);
char toupper(char);
int main() {
  assert(isalnum('a'));
  assert(isalnum('1'));
  assert(isalnum('A'));
  assert(isalnum('G'));
  assert(!isalnum(' '));
  assert(!isalnum('.'));
  assert(!isalnum(0));
  assert(isalpha('a'));
  assert(!isalpha('1'));
  assert(isalpha('A'));
  assert(isalpha('G'));
  assert(!isalpha(' '));
  assert(!isalpha('.'));
  assert(!isalpha(0));
  assert(!isblank('a'));
  assert(!isblank('1'));
  assert(!isblank('A'));
  assert(!isblank('G'));
  assert(isblank(' '));
  assert(!isblank('.'));
  assert(!isblank(0));
  assert(!iscntrl('a'));
  assert(!iscntrl('1'));
  assert(!iscntrl('A'));
  assert(!iscntrl('G'));
  assert(!iscntrl(' '));
  assert(!iscntrl('.'));
  assert(iscntrl(0));
  assert(!isdigit('a'));
  assert(isdigit('1'));
  assert(!isdigit('A'));
  assert(!isdigit('G'));
  assert(!isdigit(' '));
  assert(!isdigit('.'));
  assert(!isdigit(0));
  assert(islower('a'));
  assert(!islower('1'));
  assert(!islower('A'));
  assert(!islower('G'));
  assert(!islower(' '));
  assert(!islower('.'));
  assert(!islower(0));
  assert(!isupper('a'));
  assert(!isupper('1'));
  assert(isupper('A'));
  assert(isupper('G'));
  assert(!isupper(' '));
  assert(!isupper('.'));
  assert(!isupper(0));
  assert(!isspace('a'));
  assert(!isspace('1'));
  assert(!isspace('A'));
  assert(!isspace('G'));
  assert(isspace(' '));
  assert(!isspace('.'));
  assert(!isspace(0));
  assert(tolower('a') == 'a');
  assert(tolower('1') == '1');
  assert(tolower('A') == 'a');
  assert(tolower('G') == 'g');
  assert(tolower(' ') == ' ');
  assert(tolower('.') == '.');
  assert(tolower(0) == 0);
  assert(toupper('a') == 'A');
  assert(toupper('1') == '1');
  assert(toupper('A') == 'A');
  assert(toupper('G') == 'G');
  assert(toupper(' ') == ' ');
  assert(toupper('.') == '.');
  assert(toupper(0) == 0);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
mov    $0x61,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1070 <isalnum@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1070 <isalnum@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1070 <isalnum@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   10c0 <isalpha@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   10c0 <isalpha@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   10c0 <isalpha@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   10c0 <isalpha@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   10c0 <isalpha@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   10c0 <isalpha@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   10c0 <isalpha@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1080 <isblank@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1080 <isblank@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1080 <isblank@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1080 <isblank@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1080 <isblank@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1080 <isblank@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1080 <isblank@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1060 <iscntrl@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1060 <iscntrl@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1060 <iscntrl@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1060 <iscntrl@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1060 <iscntrl@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1060 <iscntrl@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1060 <iscntrl@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1030 <isdigit@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1040 <islower@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1040 <islower@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1040 <islower@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1040 <islower@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1040 <islower@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1040 <islower@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1040 <islower@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   10d0 <isupper@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   10d0 <isupper@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   10d0 <isupper@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   10d0 <isupper@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   10d0 <isupper@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   10d0 <isupper@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   10d0 <isupper@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1090 <isspace@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1090 <isspace@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1090 <isspace@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1090 <isspace@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1090 <isspace@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1090 <isspace@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1090 <isspace@plt>
cmp    $0x0,%eax
setne  %al
xor    $0xff,%al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x61,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x31,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x61,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x67,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x20,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x2e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   10b0 <tolower@plt>
movsbl %al,%eax
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x41,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x31,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x41,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x47,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x20,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x2e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %edi,%edi
call   1050 <toupper@plt>
movsbl %al,%eax
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10a0 <assert@plt>
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
mov    $0x61,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1070 <isalnum@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1070 <isalnum@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1070 <isalnum@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1070 <isalnum@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   10c0 <isalpha@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   10c0 <isalpha@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   10c0 <isalpha@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   10c0 <isalpha@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   10c0 <isalpha@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   10c0 <isalpha@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   10c0 <isalpha@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1080 <isblank@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1080 <isblank@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1080 <isblank@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1080 <isblank@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1080 <isblank@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1080 <isblank@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1080 <isblank@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1060 <iscntrl@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1060 <iscntrl@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1060 <iscntrl@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1060 <iscntrl@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1060 <iscntrl@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1060 <iscntrl@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1060 <iscntrl@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1030 <isdigit@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1030 <isdigit@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1030 <isdigit@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1030 <isdigit@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1030 <isdigit@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1030 <isdigit@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1030 <isdigit@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1040 <islower@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1040 <islower@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1040 <islower@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1040 <islower@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1040 <islower@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1040 <islower@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1040 <islower@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   10d0 <isupper@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   10d0 <isupper@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   10d0 <isupper@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x47,%edi
call   10d0 <isupper@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x20,%edi
call   10d0 <isupper@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   10d0 <isupper@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   10d0 <isupper@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1090 <isspace@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1090 <isspace@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1090 <isspace@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1090 <isspace@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1090 <isspace@plt>
mov    %eax,%edi
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1090 <isspace@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1090 <isspace@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
cmp    $0x61,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
cmp    $0x31,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
cmp    $0x61,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
cmp    $0x67,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
cmp    $0x20,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
cmp    $0x2e,%al
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   10b0 <tolower@plt>
xor    %edi,%edi
test   %al,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x61,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
cmp    $0x41,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x31,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
cmp    $0x31,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x41,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
cmp    $0x41,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x47,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
cmp    $0x47,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x20,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
cmp    $0x20,%al
sete   %dil
call   10a0 <assert@plt>
mov    $0x2e,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
cmp    $0x2e,%al
sete   %dil
call   10a0 <assert@plt>
xor    %edi,%edi
call   1050 <toupper@plt>
xor    %edi,%edi
test   %al,%al
sete   %dil
call   10a0 <assert@plt>
xor    %eax,%eax
pop    %rcx
ret

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

LLVM IR (-O2):
define i32 @main() {
%1 = tail call i32 @isalnum(i8 signext 97)
%2 = tail call i32 @assert(i32 %1)
%3 = tail call i32 @isalnum(i8 signext 49)
%4 = tail call i32 @assert(i32 %3)
%5 = tail call i32 @isalnum(i8 signext 65)
%6 = tail call i32 @assert(i32 %5)
%7 = tail call i32 @isalnum(i8 signext 71)
%8 = tail call i32 @assert(i32 %7)
%9 = tail call i32 @isalnum(i8 signext 32)
%10 = icmp eq i32 %9, 0
%11 = zext i1 %10 to i32
%12 = tail call i32 @assert(i32 %11)
%13 = tail call i32 @isalnum(i8 signext 46)
%14 = icmp eq i32 %13, 0
%15 = zext i1 %14 to i32
%16 = tail call i32 @assert(i32 %15)
%17 = tail call i32 @isalnum(i8 signext 0)
%18 = icmp eq i32 %17, 0
%19 = zext i1 %18 to i32
%20 = tail call i32 @assert(i32 %19)
%21 = tail call i32 @isalpha(i8 signext 97)
%22 = tail call i32 @assert(i32 %21)
%23 = tail call i32 @isalpha(i8 signext 49)
%24 = icmp eq i32 %23, 0
%25 = zext i1 %24 to i32
%26 = tail call i32 @assert(i32 %25)
%27 = tail call i32 @isalpha(i8 signext 65)
%28 = tail call i32 @assert(i32 %27)
%29 = tail call i32 @isalpha(i8 signext 71)
%30 = tail call i32 @assert(i32 %29)
%31 = tail call i32 @isalpha(i8 signext 32)
%32 = icmp eq i32 %31, 0
%33 = zext i1 %32 to i32
%34 = tail call i32 @assert(i32 %33)
%35 = tail call i32 @isalpha(i8 signext 46)
%36 = icmp eq i32 %35, 0
%37 = zext i1 %36 to i32
%38 = tail call i32 @assert(i32 %37)
%39 = tail call i32 @isalpha(i8 signext 0)
%40 = icmp eq i32 %39, 0
%41 = zext i1 %40 to i32
%42 = tail call i32 @assert(i32 %41)
%43 = tail call i32 @isblank(i8 signext 97)
%44 = icmp eq i32 %43, 0
%45 = zext i1 %44 to i32
%46 = tail call i32 @assert(i32 %45)
%47 = tail call i32 @isblank(i8 signext 49)
%48 = icmp eq i32 %47, 0
%49 = zext i1 %48 to i32
%50 = tail call i32 @assert(i32 %49)
%51 = tail call i32 @isblank(i8 signext 65)
%52 = icmp eq i32 %51, 0
%53 = zext i1 %52 to i32
%54 = tail call i32 @assert(i32 %53)
%55 = tail call i32 @isblank(i8 signext 71)
%56 = icmp eq i32 %55, 0
%57 = zext i1 %56 to i32
%58 = tail call i32 @assert(i32 %57)
%59 = tail call i32 @isblank(i8 signext 32)
%60 = tail call i32 @assert(i32 %59)
%61 = tail call i32 @isblank(i8 signext 46)
%62 = icmp eq i32 %61, 0
%63 = zext i1 %62 to i32
%64 = tail call i32 @assert(i32 %63)
%65 = tail call i32 @isblank(i8 signext 0)
%66 = icmp eq i32 %65, 0
%67 = zext i1 %66 to i32
%68 = tail call i32 @assert(i32 %67)
%69 = tail call i32 @iscntrl(i8 signext 97)
%70 = icmp eq i32 %69, 0
%71 = zext i1 %70 to i32
%72 = tail call i32 @assert(i32 %71)
%73 = tail call i32 @iscntrl(i8 signext 49)
%74 = icmp eq i32 %73, 0
%75 = zext i1 %74 to i32
%76 = tail call i32 @assert(i32 %75)
%77 = tail call i32 @iscntrl(i8 signext 65)
%78 = icmp eq i32 %77, 0
%79 = zext i1 %78 to i32
%80 = tail call i32 @assert(i32 %79)
%81 = tail call i32 @iscntrl(i8 signext 71)
%82 = icmp eq i32 %81, 0
%83 = zext i1 %82 to i32
%84 = tail call i32 @assert(i32 %83)
%85 = tail call i32 @iscntrl(i8 signext 32)
%86 = icmp eq i32 %85, 0
%87 = zext i1 %86 to i32
%88 = tail call i32 @assert(i32 %87)
%89 = tail call i32 @iscntrl(i8 signext 46)
%90 = icmp eq i32 %89, 0
%91 = zext i1 %90 to i32
%92 = tail call i32 @assert(i32 %91)
%93 = tail call i32 @iscntrl(i8 signext 0)
%94 = tail call i32 @assert(i32 %93)
%95 = tail call i32 @isdigit(i8 signext 97)
%96 = icmp eq i32 %95, 0
%97 = zext i1 %96 to i32
%98 = tail call i32 @assert(i32 %97)
%99 = tail call i32 @isdigit(i8 signext 49)
%100 = tail call i32 @assert(i32 %99)
%101 = tail call i32 @isdigit(i8 signext 65)
%102 = icmp eq i32 %101, 0
%103 = zext i1 %102 to i32
%104 = tail call i32 @assert(i32 %103)
%105 = tail call i32 @isdigit(i8 signext 71)
%106 = icmp eq i32 %105, 0
%107 = zext i1 %106 to i32
%108 = tail call i32 @assert(i32 %107)
%109 = tail call i32 @isdigit(i8 signext 32)
%110 = icmp eq i32 %109, 0
%111 = zext i1 %110 to i32
%112 = tail call i32 @assert(i32 %111)
%113 = tail call i32 @isdigit(i8 signext 46)
%114 = icmp eq i32 %113, 0
%115 = zext i1 %114 to i32
%116 = tail call i32 @assert(i32 %115)
%117 = tail call i32 @isdigit(i8 signext 0)
%118 = icmp eq i32 %117, 0
%119 = zext i1 %118 to i32
%120 = tail call i32 @assert(i32 %119)
%121 = tail call i32 @islower(i8 signext 97)
%122 = tail call i32 @assert(i32 %121)
%123 = tail call i32 @islower(i8 signext 49)
%124 = icmp eq i32 %123, 0
%125 = zext i1 %124 to i32
%126 = tail call i32 @assert(i32 %125)
%127 = tail call i32 @islower(i8 signext 65)
%128 = icmp eq i32 %127, 0
%129 = zext i1 %128 to i32
%130 = tail call i32 @assert(i32 %129)
%131 = tail call i32 @islower(i8 signext 71)
%132 = icmp eq i32 %131, 0
%133 = zext i1 %132 to i32
%134 = tail call i32 @assert(i32 %133)
%135 = tail call i32 @islower(i8 signext 32)
%136 = icmp eq i32 %135, 0
%137 = zext i1 %136 to i32
%138 = tail call i32 @assert(i32 %137)
%139 = tail call i32 @islower(i8 signext 46)
%140 = icmp eq i32 %139, 0
%141 = zext i1 %140 to i32
%142 = tail call i32 @assert(i32 %141)
%143 = tail call i32 @islower(i8 signext 0)
%144 = icmp eq i32 %143, 0
%145 = zext i1 %144 to i32
%146 = tail call i32 @assert(i32 %145)
%147 = tail call i32 @isupper(i8 signext 97)
%148 = icmp eq i32 %147, 0
%149 = zext i1 %148 to i32
%150 = tail call i32 @assert(i32 %149)
%151 = tail call i32 @isupper(i8 signext 49)
%152 = icmp eq i32 %151, 0
%153 = zext i1 %152 to i32
%154 = tail call i32 @assert(i32 %153)
%155 = tail call i32 @isupper(i8 signext 65)
%156 = tail call i32 @assert(i32 %155)
%157 = tail call i32 @isupper(i8 signext 71)
%158 = tail call i32 @assert(i32 %157)
%159 = tail call i32 @isupper(i8 signext 32)
%160 = icmp eq i32 %159, 0
%161 = zext i1 %160 to i32
%162 = tail call i32 @assert(i32 %161)
%163 = tail call i32 @isupper(i8 signext 46)
%164 = icmp eq i32 %163, 0
%165 = zext i1 %164 to i32
%166 = tail call i32 @assert(i32 %165)
%167 = tail call i32 @isupper(i8 signext 0)
%168 = icmp eq i32 %167, 0
%169 = zext i1 %168 to i32
%170 = tail call i32 @assert(i32 %169)
%171 = tail call i32 @isspace(i8 signext 97)
%172 = icmp eq i32 %171, 0
%173 = zext i1 %172 to i32
%174 = tail call i32 @assert(i32 %173)
%175 = tail call i32 @isspace(i8 signext 49)
%176 = icmp eq i32 %175, 0
%177 = zext i1 %176 to i32
%178 = tail call i32 @assert(i32 %177)
%179 = tail call i32 @isspace(i8 signext 65)
%180 = icmp eq i32 %179, 0
%181 = zext i1 %180 to i32
%182 = tail call i32 @assert(i32 %181)
%183 = tail call i32 @isspace(i8 signext 71)
%184 = icmp eq i32 %183, 0
%185 = zext i1 %184 to i32
%186 = tail call i32 @assert(i32 %185)
%187 = tail call i32 @isspace(i8 signext 32)
%188 = tail call i32 @assert(i32 %187)
%189 = tail call i32 @isspace(i8 signext 46)
%190 = icmp eq i32 %189, 0
%191 = zext i1 %190 to i32
%192 = tail call i32 @assert(i32 %191)
%193 = tail call i32 @isspace(i8 signext 0)
%194 = icmp eq i32 %193, 0
%195 = zext i1 %194 to i32
%196 = tail call i32 @assert(i32 %195)
%197 = tail call signext i8 @tolower(i8 signext 97)
%198 = icmp eq i8 %197, 97
%199 = zext i1 %198 to i32
%200 = tail call i32 @assert(i32 %199)
%201 = tail call signext i8 @tolower(i8 signext 49)
%202 = icmp eq i8 %201, 49
%203 = zext i1 %202 to i32
%204 = tail call i32 @assert(i32 %203)
%205 = tail call signext i8 @tolower(i8 signext 65)
%206 = icmp eq i8 %205, 97
%207 = zext i1 %206 to i32
%208 = tail call i32 @assert(i32 %207)
%209 = tail call signext i8 @tolower(i8 signext 71)
%210 = icmp eq i8 %209, 103
%211 = zext i1 %210 to i32
%212 = tail call i32 @assert(i32 %211)
%213 = tail call signext i8 @tolower(i8 signext 32)
%214 = icmp eq i8 %213, 32
%215 = zext i1 %214 to i32
%216 = tail call i32 @assert(i32 %215)
%217 = tail call signext i8 @tolower(i8 signext 46)
%218 = icmp eq i8 %217, 46
%219 = zext i1 %218 to i32
%220 = tail call i32 @assert(i32 %219)
%221 = tail call signext i8 @tolower(i8 signext 0)
%222 = icmp eq i8 %221, 0
%223 = zext i1 %222 to i32
%224 = tail call i32 @assert(i32 %223)
%225 = tail call signext i8 @toupper(i8 signext 97)
%226 = icmp eq i8 %225, 65
%227 = zext i1 %226 to i32
%228 = tail call i32 @assert(i32 %227)
%229 = tail call signext i8 @toupper(i8 signext 49)
%230 = icmp eq i8 %229, 49
%231 = zext i1 %230 to i32
%232 = tail call i32 @assert(i32 %231)
%233 = tail call signext i8 @toupper(i8 signext 65)
%234 = icmp eq i8 %233, 65
%235 = zext i1 %234 to i32
%236 = tail call i32 @assert(i32 %235)
%237 = tail call signext i8 @toupper(i8 signext 71)
%238 = icmp eq i8 %237, 71
%239 = zext i1 %238 to i32
%240 = tail call i32 @assert(i32 %239)
%241 = tail call signext i8 @toupper(i8 signext 32)
%242 = icmp eq i8 %241, 32
%243 = zext i1 %242 to i32
%244 = tail call i32 @assert(i32 %243)
%245 = tail call signext i8 @toupper(i8 signext 46)
%246 = icmp eq i8 %245, 46
%247 = zext i1 %246 to i32
%248 = tail call i32 @assert(i32 %247)
%249 = tail call signext i8 @toupper(i8 signext 0)
%250 = icmp eq i8 %249, 0
%251 = zext i1 %250 to i32
%252 = tail call i32 @assert(i32 %251)
ret i32 0
}