#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 */
scalar_t__ isascii(char const);
char initial_ascii(const char *name) {
  int b1, b2;
  if (isascii(name[0]))
    return name[0];
  b1 = name[0] + 256;
  b2 = name[1] + 256;
  switch (b1) {
  case 0xc3:
    if (b2 >= 0x80 && b2 <= 0x86)
      return 'A';
    else if (b2 == 0x87)
      return 'C';
    else if (b2 >= 0x88 && b2 <= 0x8b)
      return 'E';
    else if (b2 >= 0x8c && b2 <= 0x8f)
      return 'I';
    else if (b2 == 0x90)
      return 'D';
    else if (b2 == 0x91)
      return 'N';
    else if (b2 >= 0x92 && b2 <= 0x98)
      return 'O';
    else if (b2 >= 0x99 && b2 <= 0x9c)
      return 'U';
    else if (b2 == 0x9d)
      return 'Y';
    else if (b2 == 0x9f)
      return 'S';
    else if (b2 >= 0xa0 && b2 <= 0xa6)
      return 'A';
    else if (b2 == 0xa7)
      return 'C';
    else if (b2 >= 0xa8 && b2 <= 0xab)
      return 'E';
    else if (b2 >= 0xac && b2 <= 0xaf)
      return 'I';
    else if (b2 == 0xb0)
      return 'D';
    else if (b2 == 0xb1)
      return 'N';
    else if (b2 >= 0xb2 && b2 <= 0xb8)
      return 'O';
    else if (b2 >= 0xb9 && b2 <= 0xbc)
      return 'U';
    else if (b2 >= 0xbd && b2 <= 0xbf)
      return 'Y';
    break;
  case 0xc4:
    if (b2 >= 0x80 && b2 <= 0x85)
      return 'A';
    else if (b2 >= 0x86 && b2 <= 0x8d)
      return 'C';
    else if (b2 >= 0x8e || b2 <= 0x91)
      return 'D';
    else if (b2 >= 0x92 && b2 <= 0x9b)
      return 'E';
    else if (b2 >= 0x9c && b2 <= 0xa3)
      return 'G';
    else if (b2 >= 0xa4 && b2 <= 0xa7)
      return 'H';
    else if (b2 >= 0xa8 && b2 <= 0xb3)
      return 'I';
    else if (b2 >= 0xb4 && b2 <= 0xb5)
      return 'J';
    else if (b2 >= 0xb6 && b2 <= 0xb8)
      return 'K';
    else if (b2 >= 0xb9 && b2 <= 0xbf)
      return 'L';
    break;
  case 0xc5:
    if (b2 >= 0x80 && b2 <= 0x82)
      return 'L';
    else if (b2 >= 0x83 && b2 <= 0x8b)
      return 'N';
    else if (b2 >= 0x8c || b2 <= 0x93)
      return 'O';
    else if (b2 >= 0x94 && b2 <= 0x99)
      return 'R';
    else if (b2 >= 0x9a && b2 <= 0xa1)
      return 'S';
    else if (b2 >= 0xa2 && b2 <= 0xa7)
      return 'T';
    else if (b2 >= 0xa8 && b2 <= 0xb3)
      return 'U';
    else if (b2 >= 0xb4 && b2 <= 0xb5)
      return 'W';
    else if (b2 >= 0xb6 && b2 <= 0xb8)
      return 'Y';
    else if (b2 >= 0xb9 && b2 <= 0xbf)
      return 'Z';
    break;
  case 0xc6:
    if (b2 >= 0x80 && b2 <= 0x85)
      return 'B';
    else if (b2 >= 0x86 && b2 <= 0x88)
      return 'C';
    else if (b2 >= 0x89 || b2 <= 0x8d)
      return 'D';
    else if (b2 >= 0x8e && b2 <= 0x90)
      return 'E';
    else if (b2 >= 0x91 && b2 <= 0x92)
      return 'F';
    else if (b2 >= 0x93 && b2 <= 0x94)
      return 'G';
    else if (b2 == 0x95)
      return 'H';
    else if (b2 >= 0x96 && b2 <= 0x97)
      return 'I';
    else if (b2 >= 0x98 && b2 <= 0x99)
      return 'K';
    else if (b2 >= 0xba && b2 <= 0x9b)
      return 'L';
    else if (b2 == 0xbc)
      return 'M';
    else if (b2 >= 0x9d && b2 <= 0x9e)
      return 'N';
    else if (b2 >= 0x9f && b2 <= 0xa3)
      return 'O';
    else if (b2 >= 0xa4 && b2 <= 0xa5)
      return 'P';
    else if (b2 == 0xa6)
      return 'R';
    else if (b2 >= 0xa7 && b2 <= 0xaa)
      return 'S';
    else if (b2 >= 0xab && b2 <= 0xae)
      return 'T';
    else if (b2 >= 0xaf && b2 <= 0xb1)
      return 'U';
    else if (b2 == 0xb2)
      return 'V';
    else if (b2 >= 0xb3 && b2 <= 0xb4)
      return 'Y';
    else if (b2 >= 0xb5 && b2 <= 0xbe)
      return 'Z';
    break;
  }
  return '.';
}


x86 assembly (clang, -O0):
<initial_ascii>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%edi
call   1030 <isascii@plt>
cmp    $0x0,%rax
je     1140 <initial_ascii+0x30>
mov    -0x10(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
add    $0x100,%eax
mov    %eax,-0x14(%rbp)
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
add    $0x100,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
add    $0xffffff3d,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x3,%eax
ja     1a4e <initial_ascii+0x93e>
mov    -0x20(%rbp),%rax
lea    0xe7f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
cmpl   $0x80,-0x18(%rbp)
jl     11ad <initial_ascii+0x9d>
cmpl   $0x86,-0x18(%rbp)
jg     11ad <initial_ascii+0x9d>
movb   $0x41,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x87,-0x18(%rbp)
jne    11c3 <initial_ascii+0xb3>
movb   $0x43,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x88,-0x18(%rbp)
jl     11e6 <initial_ascii+0xd6>
cmpl   $0x8b,-0x18(%rbp)
jg     11e6 <initial_ascii+0xd6>
movb   $0x45,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x8c,-0x18(%rbp)
jl     1209 <initial_ascii+0xf9>
cmpl   $0x8f,-0x18(%rbp)
jg     1209 <initial_ascii+0xf9>
movb   $0x49,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x90,-0x18(%rbp)
jne    121f <initial_ascii+0x10f>
movb   $0x44,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x91,-0x18(%rbp)
jne    1235 <initial_ascii+0x125>
movb   $0x4e,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x92,-0x18(%rbp)
jl     1258 <initial_ascii+0x148>
cmpl   $0x98,-0x18(%rbp)
jg     1258 <initial_ascii+0x148>
movb   $0x4f,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x99,-0x18(%rbp)
jl     127b <initial_ascii+0x16b>
cmpl   $0x9c,-0x18(%rbp)
jg     127b <initial_ascii+0x16b>
movb   $0x55,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x9d,-0x18(%rbp)
jne    1291 <initial_ascii+0x181>
movb   $0x59,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x9f,-0x18(%rbp)
jne    12a7 <initial_ascii+0x197>
movb   $0x53,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa0,-0x18(%rbp)
jl     12ca <initial_ascii+0x1ba>
cmpl   $0xa6,-0x18(%rbp)
jg     12ca <initial_ascii+0x1ba>
movb   $0x41,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa7,-0x18(%rbp)
jne    12e0 <initial_ascii+0x1d0>
movb   $0x43,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa8,-0x18(%rbp)
jl     1303 <initial_ascii+0x1f3>
cmpl   $0xab,-0x18(%rbp)
jg     1303 <initial_ascii+0x1f3>
movb   $0x45,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xac,-0x18(%rbp)
jl     1326 <initial_ascii+0x216>
cmpl   $0xaf,-0x18(%rbp)
jg     1326 <initial_ascii+0x216>
movb   $0x49,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb0,-0x18(%rbp)
jne    133c <initial_ascii+0x22c>
movb   $0x44,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb1,-0x18(%rbp)
jne    1352 <initial_ascii+0x242>
movb   $0x4e,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb2,-0x18(%rbp)
jl     1375 <initial_ascii+0x265>
cmpl   $0xb8,-0x18(%rbp)
jg     1375 <initial_ascii+0x265>
movb   $0x4f,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb9,-0x18(%rbp)
jl     1398 <initial_ascii+0x288>
cmpl   $0xbc,-0x18(%rbp)
jg     1398 <initial_ascii+0x288>
movb   $0x55,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xbd,-0x18(%rbp)
jl     13bb <initial_ascii+0x2ab>
cmpl   $0xbf,-0x18(%rbp)
jg     13bb <initial_ascii+0x2ab>
movb   $0x59,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
jmp    13c0 <initial_ascii+0x2b0>
jmp    13c5 <initial_ascii+0x2b5>
jmp    13ca <initial_ascii+0x2ba>
jmp    13cf <initial_ascii+0x2bf>
jmp    13d4 <initial_ascii+0x2c4>
jmp    13d9 <initial_ascii+0x2c9>
jmp    13de <initial_ascii+0x2ce>
jmp    13e3 <initial_ascii+0x2d3>
jmp    13e8 <initial_ascii+0x2d8>
jmp    13ed <initial_ascii+0x2dd>
jmp    13f2 <initial_ascii+0x2e2>
jmp    13f7 <initial_ascii+0x2e7>
jmp    13fc <initial_ascii+0x2ec>
jmp    1401 <initial_ascii+0x2f1>
jmp    1406 <initial_ascii+0x2f6>
jmp    140b <initial_ascii+0x2fb>
jmp    1410 <initial_ascii+0x300>
jmp    1415 <initial_ascii+0x305>
jmp    1a4e <initial_ascii+0x93e>
cmpl   $0x80,-0x18(%rbp)
jl     143d <initial_ascii+0x32d>
cmpl   $0x85,-0x18(%rbp)
jg     143d <initial_ascii+0x32d>
movb   $0x41,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x86,-0x18(%rbp)
jl     1460 <initial_ascii+0x350>
cmpl   $0x8d,-0x18(%rbp)
jg     1460 <initial_ascii+0x350>
movb   $0x43,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x8e,-0x18(%rbp)
jge    147a <initial_ascii+0x36a>
cmpl   $0x91,-0x18(%rbp)
jg     1483 <initial_ascii+0x373>
movb   $0x44,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x92,-0x18(%rbp)
jl     14a6 <initial_ascii+0x396>
cmpl   $0x9b,-0x18(%rbp)
jg     14a6 <initial_ascii+0x396>
movb   $0x45,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x9c,-0x18(%rbp)
jl     14c9 <initial_ascii+0x3b9>
cmpl   $0xa3,-0x18(%rbp)
jg     14c9 <initial_ascii+0x3b9>
movb   $0x47,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa4,-0x18(%rbp)
jl     14ec <initial_ascii+0x3dc>
cmpl   $0xa7,-0x18(%rbp)
jg     14ec <initial_ascii+0x3dc>
movb   $0x48,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa8,-0x18(%rbp)
jl     150f <initial_ascii+0x3ff>
cmpl   $0xb3,-0x18(%rbp)
jg     150f <initial_ascii+0x3ff>
movb   $0x49,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb4,-0x18(%rbp)
jl     1532 <initial_ascii+0x422>
cmpl   $0xb5,-0x18(%rbp)
jg     1532 <initial_ascii+0x422>
movb   $0x4a,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb6,-0x18(%rbp)
jl     1555 <initial_ascii+0x445>
cmpl   $0xb8,-0x18(%rbp)
jg     1555 <initial_ascii+0x445>
movb   $0x4b,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb9,-0x18(%rbp)
jl     1578 <initial_ascii+0x468>
cmpl   $0xbf,-0x18(%rbp)
jg     1578 <initial_ascii+0x468>
movb   $0x4c,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
jmp    157d <initial_ascii+0x46d>
jmp    1582 <initial_ascii+0x472>
jmp    1587 <initial_ascii+0x477>
jmp    158c <initial_ascii+0x47c>
jmp    1591 <initial_ascii+0x481>
jmp    1596 <initial_ascii+0x486>
jmp    159b <initial_ascii+0x48b>
jmp    15a0 <initial_ascii+0x490>
jmp    15a5 <initial_ascii+0x495>
jmp    1a4e <initial_ascii+0x93e>
cmpl   $0x80,-0x18(%rbp)
jl     15cd <initial_ascii+0x4bd>
cmpl   $0x82,-0x18(%rbp)
jg     15cd <initial_ascii+0x4bd>
movb   $0x4c,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x83,-0x18(%rbp)
jl     15f0 <initial_ascii+0x4e0>
cmpl   $0x8b,-0x18(%rbp)
jg     15f0 <initial_ascii+0x4e0>
movb   $0x4e,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x8c,-0x18(%rbp)
jge    160a <initial_ascii+0x4fa>
cmpl   $0x93,-0x18(%rbp)
jg     1613 <initial_ascii+0x503>
movb   $0x4f,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x94,-0x18(%rbp)
jl     1636 <initial_ascii+0x526>
cmpl   $0x99,-0x18(%rbp)
jg     1636 <initial_ascii+0x526>
movb   $0x52,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x9a,-0x18(%rbp)
jl     1659 <initial_ascii+0x549>
cmpl   $0xa1,-0x18(%rbp)
jg     1659 <initial_ascii+0x549>
movb   $0x53,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa2,-0x18(%rbp)
jl     167c <initial_ascii+0x56c>
cmpl   $0xa7,-0x18(%rbp)
jg     167c <initial_ascii+0x56c>
movb   $0x54,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa8,-0x18(%rbp)
jl     169f <initial_ascii+0x58f>
cmpl   $0xb3,-0x18(%rbp)
jg     169f <initial_ascii+0x58f>
movb   $0x55,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb4,-0x18(%rbp)
jl     16c2 <initial_ascii+0x5b2>
cmpl   $0xb5,-0x18(%rbp)
jg     16c2 <initial_ascii+0x5b2>
movb   $0x57,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb6,-0x18(%rbp)
jl     16e5 <initial_ascii+0x5d5>
cmpl   $0xb8,-0x18(%rbp)
jg     16e5 <initial_ascii+0x5d5>
movb   $0x59,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb9,-0x18(%rbp)
jl     1708 <initial_ascii+0x5f8>
cmpl   $0xbf,-0x18(%rbp)
jg     1708 <initial_ascii+0x5f8>
movb   $0x5a,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
jmp    170d <initial_ascii+0x5fd>
jmp    1712 <initial_ascii+0x602>
jmp    1717 <initial_ascii+0x607>
jmp    171c <initial_ascii+0x60c>
jmp    1721 <initial_ascii+0x611>
jmp    1726 <initial_ascii+0x616>
jmp    172b <initial_ascii+0x61b>
jmp    1730 <initial_ascii+0x620>
jmp    1735 <initial_ascii+0x625>
jmp    1a4e <initial_ascii+0x93e>
cmpl   $0x80,-0x18(%rbp)
jl     175d <initial_ascii+0x64d>
cmpl   $0x85,-0x18(%rbp)
jg     175d <initial_ascii+0x64d>
movb   $0x42,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x86,-0x18(%rbp)
jl     1780 <initial_ascii+0x670>
cmpl   $0x88,-0x18(%rbp)
jg     1780 <initial_ascii+0x670>
movb   $0x43,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x89,-0x18(%rbp)
jge    179a <initial_ascii+0x68a>
cmpl   $0x8d,-0x18(%rbp)
jg     17a3 <initial_ascii+0x693>
movb   $0x44,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x8e,-0x18(%rbp)
jl     17c6 <initial_ascii+0x6b6>
cmpl   $0x90,-0x18(%rbp)
jg     17c6 <initial_ascii+0x6b6>
movb   $0x45,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x91,-0x18(%rbp)
jl     17e9 <initial_ascii+0x6d9>
cmpl   $0x92,-0x18(%rbp)
jg     17e9 <initial_ascii+0x6d9>
movb   $0x46,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x93,-0x18(%rbp)
jl     180c <initial_ascii+0x6fc>
cmpl   $0x94,-0x18(%rbp)
jg     180c <initial_ascii+0x6fc>
movb   $0x47,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x95,-0x18(%rbp)
jne    1822 <initial_ascii+0x712>
movb   $0x48,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x96,-0x18(%rbp)
jl     1845 <initial_ascii+0x735>
cmpl   $0x97,-0x18(%rbp)
jg     1845 <initial_ascii+0x735>
movb   $0x49,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x98,-0x18(%rbp)
jl     1868 <initial_ascii+0x758>
cmpl   $0x99,-0x18(%rbp)
jg     1868 <initial_ascii+0x758>
movb   $0x4b,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xba,-0x18(%rbp)
jl     188b <initial_ascii+0x77b>
cmpl   $0x9b,-0x18(%rbp)
jg     188b <initial_ascii+0x77b>
movb   $0x4c,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xbc,-0x18(%rbp)
jne    18a1 <initial_ascii+0x791>
movb   $0x4d,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x9d,-0x18(%rbp)
jl     18c4 <initial_ascii+0x7b4>
cmpl   $0x9e,-0x18(%rbp)
jg     18c4 <initial_ascii+0x7b4>
movb   $0x4e,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0x9f,-0x18(%rbp)
jl     18e7 <initial_ascii+0x7d7>
cmpl   $0xa3,-0x18(%rbp)
jg     18e7 <initial_ascii+0x7d7>
movb   $0x4f,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa4,-0x18(%rbp)
jl     190a <initial_ascii+0x7fa>
cmpl   $0xa5,-0x18(%rbp)
jg     190a <initial_ascii+0x7fa>
movb   $0x50,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa6,-0x18(%rbp)
jne    1920 <initial_ascii+0x810>
movb   $0x52,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xa7,-0x18(%rbp)
jl     1943 <initial_ascii+0x833>
cmpl   $0xaa,-0x18(%rbp)
jg     1943 <initial_ascii+0x833>
movb   $0x53,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xab,-0x18(%rbp)
jl     1966 <initial_ascii+0x856>
cmpl   $0xae,-0x18(%rbp)
jg     1966 <initial_ascii+0x856>
movb   $0x54,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xaf,-0x18(%rbp)
jl     1989 <initial_ascii+0x879>
cmpl   $0xb1,-0x18(%rbp)
jg     1989 <initial_ascii+0x879>
movb   $0x55,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb2,-0x18(%rbp)
jne    199f <initial_ascii+0x88f>
movb   $0x56,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb3,-0x18(%rbp)
jl     19c2 <initial_ascii+0x8b2>
cmpl   $0xb4,-0x18(%rbp)
jg     19c2 <initial_ascii+0x8b2>
movb   $0x59,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
cmpl   $0xb5,-0x18(%rbp)
jl     19e5 <initial_ascii+0x8d5>
cmpl   $0xbe,-0x18(%rbp)
jg     19e5 <initial_ascii+0x8d5>
movb   $0x5a,-0x1(%rbp)
jmp    1a52 <initial_ascii+0x942>
jmp    19ea <initial_ascii+0x8da>
jmp    19ef <initial_ascii+0x8df>
jmp    19f4 <initial_ascii+0x8e4>
jmp    19f9 <initial_ascii+0x8e9>
jmp    19fe <initial_ascii+0x8ee>
jmp    1a03 <initial_ascii+0x8f3>
jmp    1a08 <initial_ascii+0x8f8>
jmp    1a0d <initial_ascii+0x8fd>
jmp    1a12 <initial_ascii+0x902>
jmp    1a17 <initial_ascii+0x907>
jmp    1a1c <initial_ascii+0x90c>
jmp    1a21 <initial_ascii+0x911>
jmp    1a26 <initial_ascii+0x916>
jmp    1a2b <initial_ascii+0x91b>
jmp    1a30 <initial_ascii+0x920>
jmp    1a35 <initial_ascii+0x925>
jmp    1a3a <initial_ascii+0x92a>
jmp    1a3f <initial_ascii+0x92f>
jmp    1a44 <initial_ascii+0x934>
jmp    1a49 <initial_ascii+0x939>
jmp    1a4e <initial_ascii+0x93e>
movb   $0x2e,-0x1(%rbp)
movsbl -0x1(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<initial_ascii>:
push   %rbx
mov    %rdi,%rbx
movsbl (%rdi),%edi
call   1030 <isascii@plt>
mov    %rax,%rcx
mov    (%rbx),%al
test   %rcx,%rcx
je     1128 <initial_ascii+0x18>
pop    %rbx
ret
movsbl %al,%eax
add    $0x3d,%eax
cmp    $0x3,%eax
ja     124e <initial_ascii+0x13e>
movsbl 0x1(%rbx),%ecx
lea    0xebe(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
jmp    *%rax
mov    $0x41,%al
cmp    $0x87,%cl
jl     1126 <initial_ascii+0x16>
lea    0x100(%rcx),%esi
cmp    $0x87,%esi
jne    1194 <initial_ascii+0x84>
mov    $0x43,%al
pop    %rbx
ret
mov    $0x41,%al
cmp    $0x86,%cl
jl     1126 <initial_ascii+0x16>
cmp    $0x8e,%cl
jmp    118b <initial_ascii+0x7b>
mov    $0x4c,%al
cmp    $0x83,%cl
jl     1126 <initial_ascii+0x16>
cmp    $0x8c,%cl
setl   %al
xor    $0x4f,%al
pop    %rbx
ret
mov    $0x42,%al
cmp    $0x86,%cl
jl     1126 <initial_ascii+0x16>
cmp    $0x89,%cl
setl   %cl
mov    $0x44,%al
sub    %cl,%al
pop    %rbx
ret
mov    %ecx,%edx
and    $0xfc,%dl
cmp    $0x88,%dl
je     11a7 <initial_ascii+0x97>
cmp    $0x8c,%dl
jne    11ab <initial_ascii+0x9b>
mov    $0x49,%al
pop    %rbx
ret
mov    $0x45,%al
pop    %rbx
ret
cmp    $0xffffff90,%ecx
je     11b9 <initial_ascii+0xa9>
cmp    $0xffffff91,%ecx
jne    11bd <initial_ascii+0xad>
mov    $0x4e,%al
pop    %rbx
ret
mov    $0x44,%al
pop    %rbx
ret
lea    0x6e(%rcx),%edi
cmp    $0x7,%dil
jae    11ca <initial_ascii+0xba>
mov    $0x4f,%al
pop    %rbx
ret
lea    0x67(%rcx),%edi
cmp    $0x4,%dil
jae    11d7 <initial_ascii+0xc7>
mov    $0x55,%al
pop    %rbx
ret
cmp    $0xffffff9d,%ecx
je     11e5 <initial_ascii+0xd5>
cmp    $0xffffff9f,%ecx
jne    11e9 <initial_ascii+0xd9>
mov    $0x53,%al
pop    %rbx
ret
mov    $0x59,%al
pop    %rbx
ret
lea    0x60(%rcx),%edi
cmp    $0x7,%dil
jb     1126 <initial_ascii+0x16>
mov    $0x43,%al
cmp    $0xa7,%esi
je     1126 <initial_ascii+0x16>
mov    $0x45,%al
cmp    $0xa8,%dl
je     1126 <initial_ascii+0x16>
cmp    $0xac,%dl
je     11a3 <initial_ascii+0x93>
mov    $0x44,%al
cmp    $0xffffffb0,%ecx
je     1126 <initial_ascii+0x16>
cmp    $0xffffffb1,%ecx
je     11b5 <initial_ascii+0xa5>
lea    0x4e(%rcx),%edx
mov    $0x4f,%al
cmp    $0x7,%dl
jb     1126 <initial_ascii+0x16>
lea    0x47(%rcx),%edx
mov    $0x55,%al
cmp    $0x4,%dl
jb     1126 <initial_ascii+0x16>
add    $0x43,%cl
mov    $0x59,%al
cmp    $0x3,%cl
jb     1126 <initial_ascii+0x16>
mov    $0x2e,%al
pop    %rbx
ret

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

LLVM IR (-O2):
define signext i8 @initial_ascii(i8* nocapture %0) {
%2 = load i8, i8* %0
%3 = tail call i64 @isascii(i8 signext %2)
%4 = icmp eq i64 %3, 0
%5 = load i8, i8* %0
br i1 %4, label %6, label %63
6: ; preds = %1
%7 = sext i8 %5 to i32
%8 = getelementptr inbounds i8, i8* %0, i64 1
%9 = load i8, i8* %8
%10 = sext i8 %9 to i32
%11 = add nsw i32 %10, 256
switch i32 %7, label %60 [
i32 -61, label %12
i32 -60, label %45
i32 -59, label %50
i32 -58, label %55
]
12: ; preds = %6
%13 = icmp slt i8 %9, -121
br i1 %13, label %63, label %14
14: ; preds = %12
%15 = icmp eq i32 %11, 135
br i1 %15, label %63, label %16
16: ; preds = %14
%17 = and i8 %9, -4
switch i8 %17, label %18 [
i8 -120, label %63
i8 -116, label %61
]
18: ; preds = %16
switch i32 %10, label %20 [
i32 -112, label %63
i32 -111, label %19
]
19: ; preds = %18
br label %63
20: ; preds = %18
%21 = add i8 %9, 110
%22 = icmp ult i8 %21, 7
br i1 %22, label %63, label %23
23: ; preds = %20
%24 = add i8 %9, 103
%25 = icmp ult i8 %24, 4
br i1 %25, label %63, label %26
26: ; preds = %23
switch i32 %10, label %28 [
i32 -99, label %63
i32 -97, label %27
]
27: ; preds = %26
br label %63
28: ; preds = %26
%29 = add i8 %9, 96
%30 = icmp ult i8 %29, 7
br i1 %30, label %63, label %31
31: ; preds = %28
%32 = icmp eq i32 %11, 167
br i1 %32, label %63, label %33
33: ; preds = %31
switch i8 %17, label %34 [
i8 -88, label %63
i8 -84, label %62
]
34: ; preds = %33
switch i32 %10, label %36 [
i32 -80, label %63
i32 -79, label %35
]
35: ; preds = %34
br label %63
36: ; preds = %34
%37 = add i8 %9, 78
%38 = icmp ult i8 %37, 7
br i1 %38, label %63, label %39
39: ; preds = %36
%40 = add i8 %9, 71
%41 = icmp ult i8 %40, 4
br i1 %41, label %63, label %42
42: ; preds = %39
%43 = add i8 %9, 67
%44 = icmp ult i8 %43, 3
br i1 %44, label %63, label %60
45: ; preds = %6
%46 = icmp slt i8 %9, -122
br i1 %46, label %63, label %47
47: ; preds = %45
%48 = icmp slt i8 %9, -114
%49 = select i1 %48, i8 67, i8 68
br label %63
50: ; preds = %6
%51 = icmp slt i8 %9, -125
br i1 %51, label %63, label %52
52: ; preds = %50
%53 = icmp slt i8 %9, -116
%54 = select i1 %53, i8 78, i8 79
br label %63
55: ; preds = %6
%56 = icmp slt i8 %9, -122
br i1 %56, label %63, label %57
57: ; preds = %55
%58 = icmp slt i8 %9, -119
%59 = select i1 %58, i8 67, i8 68
br label %63
60: ; preds = %42, %6
br label %63
61: ; preds = %16
br label %63
62: ; preds = %33
br label %63
63: ; preds = %1, %33, %62, %16, %61, %57, %52, %47, %55, %50, %45, %42, %39, %36, %34, %31, %28, %26, %23, %20, %18, %14, %12, %60, %35, %27, %19
%64 = phi i8 [ 46, %60 ], [ 78, %19 ], [ 83, %27 ], [ 78, %35 ], [ 65, %12 ], [ 67, %14 ], [ 69, %16 ], [ 68, %18 ], [ 79, %20 ], [ 85, %23 ], [ 89, %26 ], [ 65, %28 ], [ 67, %31 ], [ 69, %33 ], [ 68, %34 ], [ 79, %36 ], [ 85, %39 ], [ 89, %42 ], [ 65, %45 ], [ 76, %50 ], [ 66, %55 ], [ %49, %47 ], [ %54, %52 ], [ %59, %57 ], [ 73, %61 ], [ 73, %62 ], [ %5, %1 ]
ret i8 %64
}