#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*/ printf(char *, int /*<<< orphan*/);
int /*<<< orphan*/ retIndicChar(int);
int wovel(char a, char b) {
  switch (a) {
  case 'a':
    switch (b) {
    case 'a':
      printf("%lc", retIndicChar(62));
      return 1;
    case 'e':
      return 0;
    case 'i':
      printf("%lc", retIndicChar(72));
      return 1;
    case 'o':
      return 0;
    case 'u':
      printf("%lc", retIndicChar(76));
      return 1;
    case 0:
      return 1;
    default:
      return 1;
    }
    break;
  case 'e':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(71));
      return 1;
    case 'e':
      printf("%lc", retIndicChar(64));
      return 1;
    case 'a':
    case 'i':
    case 'o':
    case 'u':
      printf("%lc", retIndicChar(71));
      return 0;
    }
    break;
  case 'i':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(63));
      return 1;
    case 'i':
      printf("%lc", retIndicChar(64));
      return 1;
    case 'a':
    case 'e':
    case 'o':
    case 'u':
      printf("%lc", retIndicChar(63));
      return 0;
    }
    break;
  case 'o':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(75));
      return 1;
    case 'o':
      printf("%lc", retIndicChar(66));
      return 1;
    case 'a':
    case 'i':
    case 'e':
    case 'u':
      printf("%lc", retIndicChar(75));
      return 0;
    }
    break;
  case 'u':
    switch (b) {
    case 0:
      printf("%lc", retIndicChar(65));
      return 1;
    case 'u':
      printf("%lc", retIndicChar(66));
      return 1;
    case 'a':
    case 'i':
    case 'o':
    case 'e':
      printf("%lc", retIndicChar(65));
      return 0;
    }
    break;
  }
  return 0;
}


x86 assembly (clang, -O0):
<wovel>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %sil,%al
mov    %dil,%cl
mov    %cl,-0x5(%rbp)
mov    %al,-0x6(%rbp)
movsbl -0x5(%rbp),%eax
add    $0xffffff9f,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x14,%eax
ja     15cb <wovel+0x4ab>
mov    -0x10(%rbp),%rax
lea    0xeab(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x6(%rbp),%eax
mov    %eax,-0x14(%rbp)
test   %eax,%eax
je     124b <wovel+0x12b>
jmp    1172 <wovel+0x52>
mov    -0x14(%rbp),%eax
sub    $0x61,%eax
je     11c7 <wovel+0xa7>
jmp    1183 <wovel+0x63>
mov    -0x14(%rbp),%eax
sub    $0x65,%eax
je     11eb <wovel+0xcb>
jmp    1194 <wovel+0x74>
mov    -0x14(%rbp),%eax
sub    $0x69,%eax
je     11f7 <wovel+0xd7>
jmp    11a5 <wovel+0x85>
mov    -0x14(%rbp),%eax
sub    $0x6f,%eax
je     121b <wovel+0xfb>
jmp    11b6 <wovel+0x96>
mov    -0x14(%rbp),%eax
sub    $0x75,%eax
je     1227 <wovel+0x107>
jmp    1257 <wovel+0x137>
mov    $0x3e,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xe7a(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
movl   $0x0,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x48,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xe4a(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
movl   $0x0,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x4c,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xe1a(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
movsbl -0x6(%rbp),%eax
mov    %eax,-0x18(%rbp)
test   %eax,%eax
je     12cc <wovel+0x1ac>
jmp    1277 <wovel+0x157>
mov    -0x18(%rbp),%eax
sub    $0x61,%eax
je     1314 <wovel+0x1f4>
jmp    1288 <wovel+0x168>
mov    -0x18(%rbp),%eax
sub    $0x65,%eax
je     12f0 <wovel+0x1d0>
jmp    1299 <wovel+0x179>
mov    -0x18(%rbp),%eax
sub    $0x69,%eax
je     1314 <wovel+0x1f4>
jmp    12aa <wovel+0x18a>
mov    -0x18(%rbp),%eax
sub    $0x6f,%eax
je     1314 <wovel+0x1f4>
jmp    12bb <wovel+0x19b>
mov    -0x18(%rbp),%eax
sub    $0x75,%eax
je     1314 <wovel+0x1f4>
jmp    1338 <wovel+0x218>
mov    $0x47,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xd75(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x40,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xd51(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x47,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xd2d(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
jmp    15cb <wovel+0x4ab>
movsbl -0x6(%rbp),%eax
mov    %eax,-0x1c(%rbp)
test   %eax,%eax
je     13a6 <wovel+0x286>
jmp    1351 <wovel+0x231>
mov    -0x1c(%rbp),%eax
sub    $0x61,%eax
je     13ee <wovel+0x2ce>
jmp    1362 <wovel+0x242>
mov    -0x1c(%rbp),%eax
sub    $0x65,%eax
je     13ee <wovel+0x2ce>
jmp    1373 <wovel+0x253>
mov    -0x1c(%rbp),%eax
sub    $0x69,%eax
je     13ca <wovel+0x2aa>
jmp    1384 <wovel+0x264>
mov    -0x1c(%rbp),%eax
sub    $0x6f,%eax
je     13ee <wovel+0x2ce>
jmp    1395 <wovel+0x275>
mov    -0x1c(%rbp),%eax
sub    $0x75,%eax
je     13ee <wovel+0x2ce>
jmp    1412 <wovel+0x2f2>
mov    $0x3f,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xc9b(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x40,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xc77(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x3f,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xc53(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
jmp    15cb <wovel+0x4ab>
movsbl -0x6(%rbp),%eax
mov    %eax,-0x20(%rbp)
test   %eax,%eax
je     1480 <wovel+0x360>
jmp    142b <wovel+0x30b>
mov    -0x20(%rbp),%eax
sub    $0x61,%eax
je     14c8 <wovel+0x3a8>
jmp    143c <wovel+0x31c>
mov    -0x20(%rbp),%eax
sub    $0x65,%eax
je     14c8 <wovel+0x3a8>
jmp    144d <wovel+0x32d>
mov    -0x20(%rbp),%eax
sub    $0x69,%eax
je     14c8 <wovel+0x3a8>
jmp    145e <wovel+0x33e>
mov    -0x20(%rbp),%eax
sub    $0x6f,%eax
je     14a4 <wovel+0x384>
jmp    146f <wovel+0x34f>
mov    -0x20(%rbp),%eax
sub    $0x75,%eax
je     14c8 <wovel+0x3a8>
jmp    14ec <wovel+0x3cc>
mov    $0x4b,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xbc1(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x42,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xb9d(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x4b,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xb79(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
jmp    15cb <wovel+0x4ab>
movsbl -0x6(%rbp),%eax
mov    %eax,-0x24(%rbp)
test   %eax,%eax
je     155a <wovel+0x43a>
jmp    1505 <wovel+0x3e5>
mov    -0x24(%rbp),%eax
sub    $0x61,%eax
je     15a2 <wovel+0x482>
jmp    1516 <wovel+0x3f6>
mov    -0x24(%rbp),%eax
sub    $0x65,%eax
je     15a2 <wovel+0x482>
jmp    1527 <wovel+0x407>
mov    -0x24(%rbp),%eax
sub    $0x69,%eax
je     15a2 <wovel+0x482>
jmp    1538 <wovel+0x418>
mov    -0x24(%rbp),%eax
sub    $0x6f,%eax
je     15a2 <wovel+0x482>
jmp    1549 <wovel+0x429>
mov    -0x24(%rbp),%eax
sub    $0x75,%eax
je     157e <wovel+0x45e>
jmp    15c6 <wovel+0x4a6>
mov    $0x41,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xae7(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x42,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xac3(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
mov    $0x41,%edi
call   1040 <retIndicChar@plt>
mov    %eax,%esi
lea    0xa9f(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    15d2 <wovel+0x4b2>
jmp    15cb <wovel+0x4ab>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<wovel>:
push   %rbx
add    $0xffffff9f,%edi
ror    %edi
xor    %ebx,%ebx
cmp    $0xa,%edi
ja     126c <wovel+0x14c>
lea    0xec8(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
movsbl %sil,%ecx
lea    -0x61(%rcx),%eax
cmp    $0x14,%eax
ja     11f6 <wovel+0xd6>
lea    0xed4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x3e,%edi
jmp    1254 <wovel+0x134>
movsbl %sil,%eax
lea    -0x61(%rax),%ecx
cmp    $0x14,%ecx
ja     11ff <wovel+0xdf>
mov    $0x104101,%edx
bt     %ecx,%edx
jae    11fa <wovel+0xda>
mov    $0x47,%edi
jmp    11e1 <wovel+0xc1>
movsbl %sil,%eax
lea    -0x61(%rax),%ecx
cmp    $0x14,%ecx
ja     1216 <wovel+0xf6>
mov    $0x104011,%edx
bt     %ecx,%edx
jae    120a <wovel+0xea>
mov    $0x3f,%edi
jmp    11e1 <wovel+0xc1>
movsbl %sil,%eax
lea    -0x61(%rax),%ecx
cmp    $0x14,%ecx
ja     1226 <wovel+0x106>
mov    $0x100111,%edx
bt     %ecx,%edx
jae    1221 <wovel+0x101>
mov    $0x4b,%edi
jmp    11e1 <wovel+0xc1>
movsbl %sil,%eax
lea    -0x61(%rax),%ecx
cmp    $0x14,%ecx
ja     123d <wovel+0x11d>
mov    $0x4111,%edx
bt     %ecx,%edx
jae    1231 <wovel+0x111>
mov    $0x41,%edi
call   1040 <retIndicChar@plt>
lea    0xe93(%rip),%rdi
mov    %eax,%esi
call   1030 <printf@plt>
jmp    126c <wovel+0x14c>
test   %ecx,%ecx
jmp    1267 <wovel+0x147>
cmp    $0x4,%ecx
je     120f <wovel+0xef>
test   %eax,%eax
jne    126c <wovel+0x14c>
mov    $0x47,%edi
jmp    1254 <wovel+0x134>
cmp    $0x8,%ecx
jne    1216 <wovel+0xf6>
mov    $0x40,%edi
jmp    1254 <wovel+0x134>
test   %eax,%eax
jne    126c <wovel+0x14c>
mov    $0x3f,%edi
jmp    1254 <wovel+0x134>
cmp    $0xe,%ecx
je     1236 <wovel+0x116>
test   %eax,%eax
jne    126c <wovel+0x14c>
mov    $0x4b,%edi
jmp    1254 <wovel+0x134>
cmp    $0x14,%ecx
jne    123d <wovel+0x11d>
mov    $0x42,%edi
jmp    1254 <wovel+0x134>
test   %eax,%eax
jne    126c <wovel+0x14c>
mov    $0x41,%edi
jmp    1254 <wovel+0x134>
mov    $0x48,%edi
jmp    1254 <wovel+0x134>
mov    $0x4c,%edi
call   1040 <retIndicChar@plt>
lea    0xe20(%rip),%rdi
mov    %eax,%esi
call   1030 <printf@plt>
mov    $0x1,%ebx
mov    %ebx,%eax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [4 x i8] c"%lc\00"
define i32 @wovel(i8 signext %0, i8 signext %1) {
%3 = alloca i32
%4 = alloca i8
%5 = alloca i8
store i8 %0, i8* %4
store i8 %1, i8* %5
%6 = load i8, i8* %4
%7 = sext i8 %6 to i32
switch i32 %7, label %76 [
i32 97, label %8
i32 101, label %24
i32 105, label %37
i32 111, label %50
i32 117, label %63
]
8: ; preds = %2
%9 = load i8, i8* %5
%10 = sext i8 %9 to i32
switch i32 %10, label %23 [
i32 97, label %11
i32 101, label %14
i32 105, label %15
i32 111, label %18
i32 117, label %19
i32 0, label %22
]
11: ; preds = %8
%12 = call i32 @retIndicChar(i32 62)
%13 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %12)
store i32 1, i32* %3
br label %77
14: ; preds = %8
store i32 0, i32* %3
br label %77
15: ; preds = %8
%16 = call i32 @retIndicChar(i32 72)
%17 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %16)
store i32 1, i32* %3
br label %77
18: ; preds = %8
store i32 0, i32* %3
br label %77
19: ; preds = %8
%20 = call i32 @retIndicChar(i32 76)
%21 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %20)
store i32 1, i32* %3
br label %77
22: ; preds = %8
store i32 1, i32* %3
br label %77
23: ; preds = %8
store i32 1, i32* %3
br label %77
24: ; preds = %2
%25 = load i8, i8* %5
%26 = sext i8 %25 to i32
switch i32 %26, label %36 [
i32 0, label %27
i32 101, label %30
i32 97, label %33
i32 105, label %33
i32 111, label %33
i32 117, label %33
]
27: ; preds = %24
%28 = call i32 @retIndicChar(i32 71)
%29 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %28)
store i32 1, i32* %3
br label %77
30: ; preds = %24
%31 = call i32 @retIndicChar(i32 64)
%32 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %31)
store i32 1, i32* %3
br label %77
33: ; preds = %24, %24, %24, %24
%34 = call i32 @retIndicChar(i32 71)
%35 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %34)
store i32 0, i32* %3
br label %77
36: ; preds = %24
br label %76
37: ; preds = %2
%38 = load i8, i8* %5
%39 = sext i8 %38 to i32
switch i32 %39, label %49 [
i32 0, label %40
i32 105, label %43
i32 97, label %46
i32 101, label %46
i32 111, label %46
i32 117, label %46
]
40: ; preds = %37
%41 = call i32 @retIndicChar(i32 63)
%42 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %41)
store i32 1, i32* %3
br label %77
43: ; preds = %37
%44 = call i32 @retIndicChar(i32 64)
%45 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %44)
store i32 1, i32* %3
br label %77
46: ; preds = %37, %37, %37, %37
%47 = call i32 @retIndicChar(i32 63)
%48 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %47)
store i32 0, i32* %3
br label %77
49: ; preds = %37
br label %76
50: ; preds = %2
%51 = load i8, i8* %5
%52 = sext i8 %51 to i32
switch i32 %52, label %62 [
i32 0, label %53
i32 111, label %56
i32 97, label %59
i32 105, label %59
i32 101, label %59
i32 117, label %59
]
53: ; preds = %50
%54 = call i32 @retIndicChar(i32 75)
%55 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %54)
store i32 1, i32* %3
br label %77
56: ; preds = %50
%57 = call i32 @retIndicChar(i32 66)
%58 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %57)
store i32 1, i32* %3
br label %77
59: ; preds = %50, %50, %50, %50
%60 = call i32 @retIndicChar(i32 75)
%61 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %60)
store i32 0, i32* %3
br label %77
62: ; preds = %50
br label %76
63: ; preds = %2
%64 = load i8, i8* %5
%65 = sext i8 %64 to i32
switch i32 %65, label %75 [
i32 0, label %66
i32 117, label %69
i32 97, label %72
i32 105, label %72
i32 111, label %72
i32 101, label %72
]
66: ; preds = %63
%67 = call i32 @retIndicChar(i32 65)
%68 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %67)
store i32 1, i32* %3
br label %77
69: ; preds = %63
%70 = call i32 @retIndicChar(i32 66)
%71 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %70)
store i32 1, i32* %3
br label %77
72: ; preds = %63, %63, %63, %63
%73 = call i32 @retIndicChar(i32 65)
%74 = call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %73)
store i32 0, i32* %3
br label %77
75: ; preds = %63
br label %76
76: ; preds = %2, %75, %62, %49, %36
store i32 0, i32* %3
br label %77
77: ; preds = %76, %72, %69, %66, %59, %56, %53, %46, %43, %40, %33, %30, %27, %23, %22, %19, %18, %15, %14, %11
%78 = load i32, i32* %3
ret i32 %78
}

LLVM IR (-O2):
@.str = [4 x i8] c"%lc\00"
define i32 @wovel(i8 signext %0, i8 signext %1) {
%3 = sext i8 %0 to i32
%4 = add nsw i32 %3, -97
%5 = tail call i32 @llvm.fshl.i32(i32 %4, i32 %4, i32 31)
switch i32 %5, label %63 [
i32 0, label %6
i32 2, label %19
i32 4, label %30
i32 7, label %41
i32 10, label %52
]
6: ; preds = %2
%7 = sext i8 %1 to i32
switch i32 %7, label %18 [
i32 97, label %8
i32 101, label %63
i32 105, label %11
i32 111, label %63
i32 117, label %14
i32 0, label %17
]
8: ; preds = %6
%9 = tail call i32 @retIndicChar(i32 62)
%10 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %9)
br label %63
11: ; preds = %6
%12 = tail call i32 @retIndicChar(i32 72)
%13 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %12)
br label %63
14: ; preds = %6
%15 = tail call i32 @retIndicChar(i32 76)
%16 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %15)
br label %63
17: ; preds = %6
br label %63
18: ; preds = %6
br label %63
19: ; preds = %2
%20 = sext i8 %1 to i32
switch i32 %20, label %63 [
i32 0, label %21
i32 101, label %24
i32 97, label %27
i32 105, label %27
i32 111, label %27
i32 117, label %27
]
21: ; preds = %19
%22 = tail call i32 @retIndicChar(i32 71)
%23 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %22)
br label %63
24: ; preds = %19
%25 = tail call i32 @retIndicChar(i32 64)
%26 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %25)
br label %63
27: ; preds = %19, %19, %19, %19
%28 = tail call i32 @retIndicChar(i32 71)
%29 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %28)
br label %63
30: ; preds = %2
%31 = sext i8 %1 to i32
switch i32 %31, label %63 [
i32 0, label %32
i32 105, label %35
i32 97, label %38
i32 101, label %38
i32 111, label %38
i32 117, label %38
]
32: ; preds = %30
%33 = tail call i32 @retIndicChar(i32 63)
%34 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %33)
br label %63
35: ; preds = %30
%36 = tail call i32 @retIndicChar(i32 64)
%37 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %36)
br label %63
38: ; preds = %30, %30, %30, %30
%39 = tail call i32 @retIndicChar(i32 63)
%40 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %39)
br label %63
41: ; preds = %2
%42 = sext i8 %1 to i32
switch i32 %42, label %63 [
i32 0, label %43
i32 111, label %46
i32 97, label %49
i32 105, label %49
i32 101, label %49
i32 117, label %49
]
43: ; preds = %41
%44 = tail call i32 @retIndicChar(i32 75)
%45 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %44)
br label %63
46: ; preds = %41
%47 = tail call i32 @retIndicChar(i32 66)
%48 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %47)
br label %63
49: ; preds = %41, %41, %41, %41
%50 = tail call i32 @retIndicChar(i32 75)
%51 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %50)
br label %63
52: ; preds = %2
%53 = sext i8 %1 to i32
switch i32 %53, label %63 [
i32 0, label %54
i32 117, label %57
i32 97, label %60
i32 105, label %60
i32 111, label %60
i32 101, label %60
]
54: ; preds = %52
%55 = tail call i32 @retIndicChar(i32 65)
%56 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %55)
br label %63
57: ; preds = %52
%58 = tail call i32 @retIndicChar(i32 66)
%59 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %58)
br label %63
60: ; preds = %52, %52, %52, %52
%61 = tail call i32 @retIndicChar(i32 65)
%62 = tail call i32 @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %61)
br label %63
63: ; preds = %2, %19, %30, %41, %52, %6, %6, %60, %57, %54, %49, %46, %43, %38, %35, %32, %27, %24, %21, %18, %17, %14, %11, %8
%64 = phi i32 [ 0, %60 ], [ 1, %57 ], [ 1, %54 ], [ 0, %49 ], [ 1, %46 ], [ 1, %43 ], [ 0, %38 ], [ 1, %35 ], [ 1, %32 ], [ 0, %27 ], [ 1, %24 ], [ 1, %21 ], [ 1, %18 ], [ 1, %17 ], [ 1, %14 ], [ 1, %11 ], [ 1, %8 ], [ 0, %6 ], [ 0, %6 ], [ 0, %52 ], [ 0, %41 ], [ 0, %30 ], [ 0, %19 ], [ 0, %2 ]
ret i32 %64
}