int anexo1(const char caracter) {
  char c = caracter;
  if (c == ' ' || c == '0')
    return 0;
  else if (c == '1')
    return 1;
  else if (c == '2')
    return 2;
  else if (c == '3')
    return 3;
  else if (c == '4')
    return 4;
  else if (c == '5')
    return 5;
  else if (c == '6')
    return 6;
  else if (c == '7')
    return 7;
  else if (c == '8')
    return 8;
  else if (c == '9')
    return 9;
  else if (c == '&')
    return 10;
  else if (c == 'A' || c == 'a')
    return 11;
  else if (c == 'B' || c == 'b')
    return 12;
  else if (c == 'C' || c == 'c')
    return 13;
  else if (c == 'D' || c == 'd')
    return 14;
  else if (c == 'E' || c == 'e')
    return 15;
  else if (c == 'F' || c == 'f')
    return 16;
  else if (c == 'G' || c == 'g')
    return 17;
  else if (c == 'H' || c == 'h')
    return 18;
  else if (c == 'I' || c == 'i')
    return 19;
  else if (c == 'J' || c == 'j')
    return 21;
  else if (c == 'K' || c == 'k')
    return 22;
  else if (c == 'L' || c == 'l')
    return 23;
  else if (c == 'M' || c == 'm')
    return 24;
  else if (c == 'N' || c == 'n')
    return 25;
  else if (c == 'O' || c == 'o')
    return 26;
  else if (c == 'P' || c == 'p')
    return 27;
  else if (c == 'Q' || c == 'q')
    return 28;
  else if (c == 'R' || c == 'r')
    return 29;
  else if (c == 'S' || c == 's')
    return 32;
  else if (c == 'T' || c == 't')
    return 33;
  else if (c == 'U' || c == 'u')
    return 34;
  else if (c == 'V' || c == 'v')
    return 35;
  else if (c == 'W' || c == 'w')
    return 36;
  else if (c == 'X' || c == 'x')
    return 37;
  else if (c == 'Y' || c == 'y')
    return 38;
  else if (c == 'Z' || c == 'z')
    return 39;
  else if (c == '^')
    return 40;
  else
    return -1;
  return -1;
}


x86 assembly (clang, -O0):
<anexo1>:
push   %rbp
mov    %rsp,%rbp
mov    %dil,%al
mov    %al,-0x5(%rbp)
mov    -0x5(%rbp),%al
mov    %al,-0x6(%rbp)
movsbl -0x6(%rbp),%eax
cmp    $0x20,%eax
je     112a <anexo1+0x2a>
movsbl -0x6(%rbp),%eax
cmp    $0x30,%eax
jne    1136 <anexo1+0x36>
movl   $0x0,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x31,%eax
jne    114f <anexo1+0x4f>
movl   $0x1,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x32,%eax
jne    1168 <anexo1+0x68>
movl   $0x2,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x33,%eax
jne    1181 <anexo1+0x81>
movl   $0x3,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x34,%eax
jne    119a <anexo1+0x9a>
movl   $0x4,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x35,%eax
jne    11b3 <anexo1+0xb3>
movl   $0x5,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x36,%eax
jne    11cc <anexo1+0xcc>
movl   $0x6,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x37,%eax
jne    11e5 <anexo1+0xe5>
movl   $0x7,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x38,%eax
jne    11fe <anexo1+0xfe>
movl   $0x8,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x39,%eax
jne    1217 <anexo1+0x117>
movl   $0x9,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x26,%eax
jne    1230 <anexo1+0x130>
movl   $0xa,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x41,%eax
je     124a <anexo1+0x14a>
movsbl -0x6(%rbp),%eax
cmp    $0x61,%eax
jne    1256 <anexo1+0x156>
movl   $0xb,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x42,%eax
je     1270 <anexo1+0x170>
movsbl -0x6(%rbp),%eax
cmp    $0x62,%eax
jne    127c <anexo1+0x17c>
movl   $0xc,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x43,%eax
je     1296 <anexo1+0x196>
movsbl -0x6(%rbp),%eax
cmp    $0x63,%eax
jne    12a2 <anexo1+0x1a2>
movl   $0xd,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x44,%eax
je     12bc <anexo1+0x1bc>
movsbl -0x6(%rbp),%eax
cmp    $0x64,%eax
jne    12c8 <anexo1+0x1c8>
movl   $0xe,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x45,%eax
je     12e2 <anexo1+0x1e2>
movsbl -0x6(%rbp),%eax
cmp    $0x65,%eax
jne    12ee <anexo1+0x1ee>
movl   $0xf,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x46,%eax
je     1308 <anexo1+0x208>
movsbl -0x6(%rbp),%eax
cmp    $0x66,%eax
jne    1314 <anexo1+0x214>
movl   $0x10,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x47,%eax
je     132e <anexo1+0x22e>
movsbl -0x6(%rbp),%eax
cmp    $0x67,%eax
jne    133a <anexo1+0x23a>
movl   $0x11,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x48,%eax
je     1354 <anexo1+0x254>
movsbl -0x6(%rbp),%eax
cmp    $0x68,%eax
jne    1360 <anexo1+0x260>
movl   $0x12,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x49,%eax
je     137a <anexo1+0x27a>
movsbl -0x6(%rbp),%eax
cmp    $0x69,%eax
jne    1386 <anexo1+0x286>
movl   $0x13,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x4a,%eax
je     13a0 <anexo1+0x2a0>
movsbl -0x6(%rbp),%eax
cmp    $0x6a,%eax
jne    13ac <anexo1+0x2ac>
movl   $0x15,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x4b,%eax
je     13c6 <anexo1+0x2c6>
movsbl -0x6(%rbp),%eax
cmp    $0x6b,%eax
jne    13d2 <anexo1+0x2d2>
movl   $0x16,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x4c,%eax
je     13ec <anexo1+0x2ec>
movsbl -0x6(%rbp),%eax
cmp    $0x6c,%eax
jne    13f8 <anexo1+0x2f8>
movl   $0x17,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x4d,%eax
je     1412 <anexo1+0x312>
movsbl -0x6(%rbp),%eax
cmp    $0x6d,%eax
jne    141e <anexo1+0x31e>
movl   $0x18,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x4e,%eax
je     1438 <anexo1+0x338>
movsbl -0x6(%rbp),%eax
cmp    $0x6e,%eax
jne    1444 <anexo1+0x344>
movl   $0x19,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x4f,%eax
je     145e <anexo1+0x35e>
movsbl -0x6(%rbp),%eax
cmp    $0x6f,%eax
jne    146a <anexo1+0x36a>
movl   $0x1a,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x50,%eax
je     1484 <anexo1+0x384>
movsbl -0x6(%rbp),%eax
cmp    $0x70,%eax
jne    1490 <anexo1+0x390>
movl   $0x1b,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x51,%eax
je     14aa <anexo1+0x3aa>
movsbl -0x6(%rbp),%eax
cmp    $0x71,%eax
jne    14b6 <anexo1+0x3b6>
movl   $0x1c,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x52,%eax
je     14d0 <anexo1+0x3d0>
movsbl -0x6(%rbp),%eax
cmp    $0x72,%eax
jne    14dc <anexo1+0x3dc>
movl   $0x1d,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x53,%eax
je     14f6 <anexo1+0x3f6>
movsbl -0x6(%rbp),%eax
cmp    $0x73,%eax
jne    1502 <anexo1+0x402>
movl   $0x20,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x54,%eax
je     151c <anexo1+0x41c>
movsbl -0x6(%rbp),%eax
cmp    $0x74,%eax
jne    1528 <anexo1+0x428>
movl   $0x21,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x55,%eax
je     1542 <anexo1+0x442>
movsbl -0x6(%rbp),%eax
cmp    $0x75,%eax
jne    154e <anexo1+0x44e>
movl   $0x22,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x56,%eax
je     1568 <anexo1+0x468>
movsbl -0x6(%rbp),%eax
cmp    $0x76,%eax
jne    1574 <anexo1+0x474>
movl   $0x23,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x57,%eax
je     158e <anexo1+0x48e>
movsbl -0x6(%rbp),%eax
cmp    $0x77,%eax
jne    159a <anexo1+0x49a>
movl   $0x24,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x58,%eax
je     15b4 <anexo1+0x4b4>
movsbl -0x6(%rbp),%eax
cmp    $0x78,%eax
jne    15c0 <anexo1+0x4c0>
movl   $0x25,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x59,%eax
je     15da <anexo1+0x4da>
movsbl -0x6(%rbp),%eax
cmp    $0x79,%eax
jne    15e6 <anexo1+0x4e6>
movl   $0x26,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x5a,%eax
je     1600 <anexo1+0x500>
movsbl -0x6(%rbp),%eax
cmp    $0x7a,%eax
jne    160c <anexo1+0x50c>
movl   $0x27,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movsbl -0x6(%rbp),%eax
cmp    $0x5e,%eax
jne    1625 <anexo1+0x525>
movl   $0x28,-0x4(%rbp)
jmp    162c <anexo1+0x52c>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<anexo1>:
mov    %edi,%ecx
and    $0xef,%cl
xor    %eax,%eax
cmp    $0x20,%cl
je     1157 <anexo1+0x57>
lea    -0x26(%rdi),%eax
cmp    $0x14,%al
jae    1120 <anexo1+0x20>
movzbl %al,%ecx
mov    $0xff801,%edx
bt     %ecx,%edx
jb     1149 <anexo1+0x49>
mov    %edi,%eax
and    $0xdf,%al
add    $0xbf,%al
cmp    $0x1a,%al
jae    1137 <anexo1+0x37>
movsbq %al,%rax
lea    0xf1b(%rip),%rcx
jmp    1154 <anexo1+0x54>
cmp    $0x5e,%dil
mov    $0x28,%ecx
mov    $0xffffffff,%eax
cmove  %ecx,%eax
ret
movsbq %al,%rax
lea    0xeac(%rip),%rcx
mov    (%rcx,%rax,4),%eax
ret

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

LLVM IR (-O2):
@switch.table.anexo1 = [20 x i32] [i32 10, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9]
@switch.table.anexo1.1 = [26 x i32] [i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39]
define i32 @anexo1(i8 signext %0) {
%2 = and i8 %0, -17
%3 = icmp eq i8 %2, 32
br i1 %3, label %27, label %4
4: ; preds = %1
%5 = add i8 %0, -38
%6 = icmp ult i8 %5, 20
br i1 %6, label %14, label %7
7: ; preds = %14, %4
%8 = and i8 %0, -33
%9 = add i8 %8, -65
%10 = icmp ult i8 %9, 26
br i1 %10, label %23, label %11
11: ; preds = %7
%12 = icmp eq i8 %0, 94
%13 = select i1 %12, i32 40, i32 -1
br label %27
14: ; preds = %4
%15 = zext i8 %5 to i32
%16 = lshr i32 1046529, %15
%17 = and i32 %16, 1
%18 = icmp eq i32 %17, 0
br i1 %18, label %7, label %19
19: ; preds = %14
%20 = sext i8 %5 to i64
%21 = getelementptr inbounds [20 x i32], [20 x i32]* @switch.table.anexo1, i64 0, i64 %20
%22 = load i32, i32* %21
br label %27
23: ; preds = %7
%24 = sext i8 %9 to i64
%25 = getelementptr inbounds [26 x i32], [26 x i32]* @switch.table.anexo1.1, i64 0, i64 %24
%26 = load i32, i32* %25
br label %27
27: ; preds = %23, %19, %11, %1
%28 = phi i32 [ 0, %1 ], [ %13, %11 ], [ %22, %19 ], [ %26, %23 ]
ret i32 %28
}