#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 */
typedef int uint8_t;
typedef int uint16_t;

/* Variables and functions */
uint16_t ascii_to_unicode(uint8_t ascii_code) {
  switch (ascii_code) {
  case 1:
    return 0x263A;
  case 2:
    return 0x263B;
  case 3:
    return 0x2665;
  case 4:
    return 0x2666;
  case 5:
    return 0x2663;
  case 6:
    return 0x2660;
  case 7:
    return 0x2022;
  case 8:
    return 0x25D8;
  case 9:
    return 0x25CB;
  case 10:
    return 0x25D9;
  case 11:
    return 0x2642;
  case 12:
    return 0x2640;
  case 13:
    return 0x266A;
  case 14:
    return 0x266C;
  case 15:
    return 0x263C;
  case 16:
    return 0x25BA;
  case 17:
    return 0x25C4;
  case 18:
    return 0x2195;
  case 19:
    return 0x203C;
  case 20:
    return 0x00B6;
  case 21:
    return 0x00A7;
  case 22:
    return 0x25AC;
  case 23:
    return 0x21A8;
  case 24:
    return 0x2191;
  case 25:
    return 0x2193;
  case 26:
    return 0x2192;
  case 27:
    return 0x2190;
  case 28:
    return 0x221F;
  case 29:
    return 0x2194;
  case 30:
    return 0x25B2;
  case 31:
    return 0x25BC;
  case 127:
    return 0x2302;
  case 128:
    return 0x00C7;
  case 129:
    return 0x00FC;
  case 130:
    return 0x00E9;
  case 131:
    return 0x00E2;
  case 132:
    return 0x00E4;
  case 133:
    return 0x00E0;
  case 134:
    return 0x00E5;
  case 135:
    return 0x00E7;
  case 136:
    return 0x00EA;
  case 137:
    return 0x00EB;
  case 138:
    return 0x00E8;
  case 139:
    return 0x00EF;
  case 140:
    return 0x00EE;
  case 141:
    return 0x00EC;
  case 142:
    return 0x00C4;
  case 143:
    return 0x00C5;
  case 144:
    return 0x00C9;
  case 145:
    return 0x00E6;
  case 146:
    return 0x00C6;
  case 147:
    return 0x00F4;
  case 148:
    return 0x00F6;
  case 149:
    return 0x00F2;
  case 150:
    return 0x00FB;
  case 151:
    return 0x00F9;
  case 152:
    return 0x00FF;
  case 153:
    return 0x00D6;
  case 154:
    return 0x00DC;
  case 155:
    return 0x00A2;
  case 156:
    return 0x00A3;
  case 157:
    return 0x00A5;
  case 158:
    return 0x20A7;
  case 159:
    return 0x0192;
  case 160:
    return 0x00E1;
  case 161:
    return 0x00ED;
  case 162:
    return 0x00F3;
  case 163:
    return 0x00FA;
  case 164:
    return 0x00F1;
  case 165:
    return 0x00D1;
  case 166:
    return 0x00AA;
  case 167:
    return 0x00BA;
  case 168:
    return 0x00BF;
  case 169:
    return 0x2310;
  case 170:
    return 0x00AC;
  case 171:
    return 0x00BD;
  case 172:
    return 0x00BC;
  case 173:
    return 0x00A1;
  case 174:
    return 0x00AB;
  case 175:
    return 0x00BB;
  case 176:
    return 0x2591;
  case 177:
    return 0x2592;
  case 178:
    return 0x2593;
  case 179:
    return 0x2502;
  case 180:
    return 0x2524;
  case 181:
    return 0x2561;
  case 182:
    return 0x2562;
  case 183:
    return 0x2556;
  case 184:
    return 0x2555;
  case 185:
    return 0x2563;
  case 186:
    return 0x2551;
  case 187:
    return 0x2557;
  case 188:
    return 0x255D;
  case 189:
    return 0x255C;
  case 190:
    return 0x255B;
  case 191:
    return 0x2510;
  case 192:
    return 0x2514;
  case 193:
    return 0x2534;
  case 194:
    return 0x252C;
  case 195:
    return 0x251C;
  case 196:
    return 0x2500;
  case 197:
    return 0x253C;
  case 198:
    return 0x255E;
  case 199:
    return 0x255F;
  case 200:
    return 0x255A;
  case 201:
    return 0x2554;
  case 202:
    return 0x2569;
  case 203:
    return 0x2566;
  case 204:
    return 0x2560;
  case 205:
    return 0x2550;
  case 206:
    return 0x256C;
  case 207:
    return 0x2567;
  case 208:
    return 0x2568;
  case 209:
    return 0x2564;
  case 210:
    return 0x2565;
  case 211:
    return 0x2559;
  case 212:
    return 0x2558;
  case 213:
    return 0x2552;
  case 214:
    return 0x2553;
  case 215:
    return 0x256B;
  case 216:
    return 0x256A;
  case 217:
    return 0x2518;
  case 218:
    return 0x250C;
  case 219:
    return 0x2588;
  case 220:
    return 0x2584;
  case 221:
    return 0x258C;
  case 222:
    return 0x2590;
  case 223:
    return 0x2580;
  case 224:
    return 0x03B1;
  case 225:
    return 0x00DF;
  case 226:
    return 0x0393;
  case 227:
    return 0x03C0;
  case 228:
    return 0x03A3;
  case 229:
    return 0x03C3;
  case 230:
    return 0x00B5;
  case 231:
    return 0x03C4;
  case 232:
    return 0x03A6;
  case 233:
    return 0x0398;
  case 234:
    return 0x03A9;
  case 235:
    return 0x03B4;
  case 236:
    return 0x221E;
  case 237:
    return 0x03C6;
  case 238:
    return 0x03B5;
  case 239:
    return 0x2229;
  case 240:
    return 0x2261;
  case 241:
    return 0x00B1;
  case 242:
    return 0x2265;
  case 243:
    return 0x2264;
  case 244:
    return 0x2320;
  case 245:
    return 0x2321;
  case 246:
    return 0x00F7;
  case 247:
    return 0x2248;
  case 248:
    return 0x00B0;
  case 249:
    return 0x2219;
  case 250:
    return 0x00B7;
  case 251:
    return 0x221A;
  case 252:
    return 0x207F;
  case 253:
    return 0x00B2;
  case 254:
    return 0x25A0;
  case 0:
  case 255:
    return 0x00A0;
  default:
    if (ascii_code >= 32 && ascii_code <= 126) {
      return ascii_code;
    }
    return 0;
  }
}


x86 assembly (clang, -O0):
<ascii_to_unicode>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %rax,-0x10(%rbp)
sub    $0xff,%rax
ja     18ae <ascii_to_unicode+0x7ae>
mov    -0x10(%rbp),%rax
lea    0xedb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x263a,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x263b,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2665,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2666,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2663,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2660,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2022,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25d8,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25cb,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25d9,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2642,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2640,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x266a,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x266c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x263c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25ba,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25c4,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2195,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x203c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xb6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xa7,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25ac,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x21a8,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2191,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2193,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2192,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2190,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x221f,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2194,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25b2,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25bc,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2302,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xc7,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xfc,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe9,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe2,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe4,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe0,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe5,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe7,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xea,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xeb,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe8,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xef,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xee,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xec,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xc4,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xc5,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xc9,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xc6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf4,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf2,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xfb,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf9,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xff,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xd6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xdc,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xa2,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xa3,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xa5,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x20a7,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x192,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xe1,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xed,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf3,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xfa,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf1,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xd1,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xaa,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xba,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xbf,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2310,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xac,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xbd,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xbc,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xa1,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xab,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xbb,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2591,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2592,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2593,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2502,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2524,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2561,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2562,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2556,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2555,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2563,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2551,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2557,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x255d,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x255c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x255b,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2510,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2514,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2534,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x252c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x251c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2500,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x253c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x255e,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x255f,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x255a,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2554,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2569,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2566,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2560,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2550,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x256c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2567,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2568,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2564,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2565,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2559,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2558,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2552,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2553,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x256b,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x256a,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2518,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x250c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2588,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2584,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x258c,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2590,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2580,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3b1,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xdf,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x393,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3c0,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3a3,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3c3,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xb5,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3c4,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3a6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x398,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3a9,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3b4,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x221e,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3c6,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x3b5,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2229,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2261,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xb1,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2265,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2264,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2320,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2321,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xf7,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2248,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xb0,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x2219,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xb7,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x221a,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x207f,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xb2,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x25a0,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0xa0,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
cmpl   $0x20,-0x8(%rbp)
jl     18cd <ascii_to_unicode+0x7cd>
cmpl   $0x7e,-0x8(%rbp)
jg     18cd <ascii_to_unicode+0x7cd>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    18d4 <ascii_to_unicode+0x7d4>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<ascii_to_unicode>:
cmp    $0xff,%edi
ja     11dd <ascii_to_unicode+0xdd>
mov    $0x263a,%eax
mov    %edi,%ecx
lea    0xee6(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0xa0,%eax
ret
mov    $0x263b,%eax
ret
mov    $0x2665,%eax
ret
mov    $0x2666,%eax
ret
mov    $0x2663,%eax
ret
mov    $0x2660,%eax
ret
mov    $0x2022,%eax
ret
mov    $0x25d8,%eax
ret
mov    $0x25cb,%eax
ret
mov    $0x25d9,%eax
ret
mov    $0x2642,%eax
ret
mov    $0x2640,%eax
ret
mov    $0x266a,%eax
ret
mov    $0x266c,%eax
ret
mov    $0x263c,%eax
ret
mov    $0x25ba,%eax
ret
mov    $0x25c4,%eax
ret
mov    $0x2195,%eax
ret
mov    $0x203c,%eax
ret
mov    $0xb6,%eax
ret
mov    $0xa7,%eax
ret
mov    $0x25ac,%eax
ret
mov    $0x21a8,%eax
ret
mov    $0x2191,%eax
ret
mov    $0x2193,%eax
ret
mov    $0x2192,%eax
ret
mov    $0x2190,%eax
ret
mov    $0x221f,%eax
ret
mov    $0x2194,%eax
ret
mov    $0x25b2,%eax
ret
mov    $0x25bc,%eax
ret
lea    -0x20(%rdi),%ecx
xor    %eax,%eax
cmp    $0x5f,%ecx
cmovb  %edi,%eax
ret
mov    $0x2302,%eax
ret
mov    $0xc7,%eax
ret
mov    $0xfc,%eax
ret
mov    $0xe9,%eax
ret
mov    $0xe2,%eax
ret
mov    $0xe4,%eax
ret
mov    $0xe0,%eax
ret
mov    $0xe5,%eax
ret
mov    $0xe7,%eax
ret
mov    $0xea,%eax
ret
mov    $0xeb,%eax
ret
mov    $0xe8,%eax
ret
mov    $0xef,%eax
ret
mov    $0xee,%eax
ret
mov    $0xec,%eax
ret
mov    $0xc4,%eax
ret
mov    $0xc5,%eax
ret
mov    $0xc9,%eax
ret
mov    $0xe6,%eax
ret
mov    $0xc6,%eax
ret
mov    $0xf4,%eax
ret
mov    $0xf6,%eax
ret
mov    $0xf2,%eax
ret
mov    $0xfb,%eax
ret
mov    $0xf9,%eax
ret
mov    $0xff,%eax
ret
mov    $0xd6,%eax
ret
mov    $0xdc,%eax
ret
mov    $0xa2,%eax
ret
mov    $0xa3,%eax
ret
mov    $0xa5,%eax
ret
mov    $0x20a7,%eax
ret
mov    $0x192,%eax
ret
mov    $0xe1,%eax
ret
mov    $0xed,%eax
ret
mov    $0xf3,%eax
ret
mov    $0xfa,%eax
ret
mov    $0xf1,%eax
ret
mov    $0xd1,%eax
ret
mov    $0xaa,%eax
ret
mov    $0xba,%eax
ret
mov    $0xbf,%eax
ret
mov    $0x2310,%eax
ret
mov    $0xac,%eax
ret
mov    $0xbd,%eax
ret
mov    $0xbc,%eax
ret
mov    $0xa1,%eax
ret
mov    $0xab,%eax
ret
mov    $0xbb,%eax
ret
mov    $0x2591,%eax
ret
mov    $0x2592,%eax
ret
mov    $0x2593,%eax
ret
mov    $0x2502,%eax
ret
mov    $0x2524,%eax
ret
mov    $0x2561,%eax
ret
mov    $0x2562,%eax
ret
mov    $0x2556,%eax
ret
mov    $0x2555,%eax
ret
mov    $0x2563,%eax
ret
mov    $0x2551,%eax
ret
mov    $0x2557,%eax
ret
mov    $0x255d,%eax
ret
mov    $0x255c,%eax
ret
mov    $0x255b,%eax
ret
mov    $0x2510,%eax
ret
mov    $0x2514,%eax
ret
mov    $0x2534,%eax
ret
mov    $0x252c,%eax
ret
mov    $0x251c,%eax
ret
mov    $0x2500,%eax
ret
mov    $0x253c,%eax
ret
mov    $0x255e,%eax
ret
mov    $0x255f,%eax
ret
mov    $0x255a,%eax
ret
mov    $0x2554,%eax
ret
mov    $0x2569,%eax
ret
mov    $0x2566,%eax
ret
mov    $0x2560,%eax
ret
mov    $0x2550,%eax
ret
mov    $0x256c,%eax
ret
mov    $0x2567,%eax
ret
mov    $0x2568,%eax
ret
mov    $0x2564,%eax
ret
mov    $0x2565,%eax
ret
mov    $0x2559,%eax
ret
mov    $0x2558,%eax
ret
mov    $0x2552,%eax
ret
mov    $0x2553,%eax
ret
mov    $0x256b,%eax
ret
mov    $0x256a,%eax
ret
mov    $0x2518,%eax
ret
mov    $0x250c,%eax
ret
mov    $0x2588,%eax
ret
mov    $0x2584,%eax
ret
mov    $0x258c,%eax
ret
mov    $0x2590,%eax
ret
mov    $0x2580,%eax
ret
mov    $0x3b1,%eax
ret
mov    $0xdf,%eax
ret
mov    $0x393,%eax
ret
mov    $0x3c0,%eax
ret
mov    $0x3a3,%eax
ret
mov    $0x3c3,%eax
ret
mov    $0xb5,%eax
ret
mov    $0x3c4,%eax
ret
mov    $0x3a6,%eax
ret
mov    $0x398,%eax
ret
mov    $0x3a9,%eax
ret
mov    $0x3b4,%eax
ret
mov    $0x221e,%eax
ret
mov    $0x3c6,%eax
ret
mov    $0x3b5,%eax
ret
mov    $0x2229,%eax
ret
mov    $0x2261,%eax
ret
mov    $0xb1,%eax
ret
mov    $0x2265,%eax
ret
mov    $0x2264,%eax
ret
mov    $0x2320,%eax
ret
mov    $0x2321,%eax
ret
mov    $0xf7,%eax
ret
mov    $0x2248,%eax
ret
mov    $0xb0,%eax
ret
mov    $0x2219,%eax
ret
mov    $0xb7,%eax
ret
mov    $0x221a,%eax
ret
mov    $0x207f,%eax
ret
mov    $0xb2,%eax
ret
mov    $0x25a0,%eax
ret

LLVM IR (-O0):
define i32 @ascii_to_unicode(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
switch i32 %4, label %165 [
i32 1, label %5
i32 2, label %6
i32 3, label %7
i32 4, label %8
i32 5, label %9
i32 6, label %10
i32 7, label %11
i32 8, label %12
i32 9, label %13
i32 10, label %14
i32 11, label %15
i32 12, label %16
i32 13, label %17
i32 14, label %18
i32 15, label %19
i32 16, label %20
i32 17, label %21
i32 18, label %22
i32 19, label %23
i32 20, label %24
i32 21, label %25
i32 22, label %26
i32 23, label %27
i32 24, label %28
i32 25, label %29
i32 26, label %30
i32 27, label %31
i32 28, label %32
i32 29, label %33
i32 30, label %34
i32 31, label %35
i32 127, label %36
i32 128, label %37
i32 129, label %38
i32 130, label %39
i32 131, label %40
i32 132, label %41
i32 133, label %42
i32 134, label %43
i32 135, label %44
i32 136, label %45
i32 137, label %46
i32 138, label %47
i32 139, label %48
i32 140, label %49
i32 141, label %50
i32 142, label %51
i32 143, label %52
i32 144, label %53
i32 145, label %54
i32 146, label %55
i32 147, label %56
i32 148, label %57
i32 149, label %58
i32 150, label %59
i32 151, label %60
i32 152, label %61
i32 153, label %62
i32 154, label %63
i32 155, label %64
i32 156, label %65
i32 157, label %66
i32 158, label %67
i32 159, label %68
i32 160, label %69
i32 161, label %70
i32 162, label %71
i32 163, label %72
i32 164, label %73
i32 165, label %74
i32 166, label %75
i32 167, label %76
i32 168, label %77
i32 169, label %78
i32 170, label %79
i32 171, label %80
i32 172, label %81
i32 173, label %82
i32 174, label %83
i32 175, label %84
i32 176, label %85
i32 177, label %86
i32 178, label %87
i32 179, label %88
i32 180, label %89
i32 181, label %90
i32 182, label %91
i32 183, label %92
i32 184, label %93
i32 185, label %94
i32 186, label %95
i32 187, label %96
i32 188, label %97
i32 189, label %98
i32 190, label %99
i32 191, label %100
i32 192, label %101
i32 193, label %102
i32 194, label %103
i32 195, label %104
i32 196, label %105
i32 197, label %106
i32 198, label %107
i32 199, label %108
i32 200, label %109
i32 201, label %110
i32 202, label %111
i32 203, label %112
i32 204, label %113
i32 205, label %114
i32 206, label %115
i32 207, label %116
i32 208, label %117
i32 209, label %118
i32 210, label %119
i32 211, label %120
i32 212, label %121
i32 213, label %122
i32 214, label %123
i32 215, label %124
i32 216, label %125
i32 217, label %126
i32 218, label %127
i32 219, label %128
i32 220, label %129
i32 221, label %130
i32 222, label %131
i32 223, label %132
i32 224, label %133
i32 225, label %134
i32 226, label %135
i32 227, label %136
i32 228, label %137
i32 229, label %138
i32 230, label %139
i32 231, label %140
i32 232, label %141
i32 233, label %142
i32 234, label %143
i32 235, label %144
i32 236, label %145
i32 237, label %146
i32 238, label %147
i32 239, label %148
i32 240, label %149
i32 241, label %150
i32 242, label %151
i32 243, label %152
i32 244, label %153
i32 245, label %154
i32 246, label %155
i32 247, label %156
i32 248, label %157
i32 249, label %158
i32 250, label %159
i32 251, label %160
i32 252, label %161
i32 253, label %162
i32 254, label %163
i32 0, label %164
i32 255, label %164
]
5: ; preds = %1
store i32 9786, i32* %2
br label %174
6: ; preds = %1
store i32 9787, i32* %2
br label %174
7: ; preds = %1
store i32 9829, i32* %2
br label %174
8: ; preds = %1
store i32 9830, i32* %2
br label %174
9: ; preds = %1
store i32 9827, i32* %2
br label %174
10: ; preds = %1
store i32 9824, i32* %2
br label %174
11: ; preds = %1
store i32 8226, i32* %2
br label %174
12: ; preds = %1
store i32 9688, i32* %2
br label %174
13: ; preds = %1
store i32 9675, i32* %2
br label %174
14: ; preds = %1
store i32 9689, i32* %2
br label %174
15: ; preds = %1
store i32 9794, i32* %2
br label %174
16: ; preds = %1
store i32 9792, i32* %2
br label %174
17: ; preds = %1
store i32 9834, i32* %2
br label %174
18: ; preds = %1
store i32 9836, i32* %2
br label %174
19: ; preds = %1
store i32 9788, i32* %2
br label %174
20: ; preds = %1
store i32 9658, i32* %2
br label %174
21: ; preds = %1
store i32 9668, i32* %2
br label %174
22: ; preds = %1
store i32 8597, i32* %2
br label %174
23: ; preds = %1
store i32 8252, i32* %2
br label %174
24: ; preds = %1
store i32 182, i32* %2
br label %174
25: ; preds = %1
store i32 167, i32* %2
br label %174
26: ; preds = %1
store i32 9644, i32* %2
br label %174
27: ; preds = %1
store i32 8616, i32* %2
br label %174
28: ; preds = %1
store i32 8593, i32* %2
br label %174
29: ; preds = %1
store i32 8595, i32* %2
br label %174
30: ; preds = %1
store i32 8594, i32* %2
br label %174
31: ; preds = %1
store i32 8592, i32* %2
br label %174
32: ; preds = %1
store i32 8735, i32* %2
br label %174
33: ; preds = %1
store i32 8596, i32* %2
br label %174
34: ; preds = %1
store i32 9650, i32* %2
br label %174
35: ; preds = %1
store i32 9660, i32* %2
br label %174
36: ; preds = %1
store i32 8962, i32* %2
br label %174
37: ; preds = %1
store i32 199, i32* %2
br label %174
38: ; preds = %1
store i32 252, i32* %2
br label %174
39: ; preds = %1
store i32 233, i32* %2
br label %174
40: ; preds = %1
store i32 226, i32* %2
br label %174
41: ; preds = %1
store i32 228, i32* %2
br label %174
42: ; preds = %1
store i32 224, i32* %2
br label %174
43: ; preds = %1
store i32 229, i32* %2
br label %174
44: ; preds = %1
store i32 231, i32* %2
br label %174
45: ; preds = %1
store i32 234, i32* %2
br label %174
46: ; preds = %1
store i32 235, i32* %2
br label %174
47: ; preds = %1
store i32 232, i32* %2
br label %174
48: ; preds = %1
store i32 239, i32* %2
br label %174
49: ; preds = %1
store i32 238, i32* %2
br label %174
50: ; preds = %1
store i32 236, i32* %2
br label %174
51: ; preds = %1
store i32 196, i32* %2
br label %174
52: ; preds = %1
store i32 197, i32* %2
br label %174
53: ; preds = %1
store i32 201, i32* %2
br label %174
54: ; preds = %1
store i32 230, i32* %2
br label %174
55: ; preds = %1
store i32 198, i32* %2
br label %174
56: ; preds = %1
store i32 244, i32* %2
br label %174
57: ; preds = %1
store i32 246, i32* %2
br label %174
58: ; preds = %1
store i32 242, i32* %2
br label %174
59: ; preds = %1
store i32 251, i32* %2
br label %174
60: ; preds = %1
store i32 249, i32* %2
br label %174
61: ; preds = %1
store i32 255, i32* %2
br label %174
62: ; preds = %1
store i32 214, i32* %2
br label %174
63: ; preds = %1
store i32 220, i32* %2
br label %174
64: ; preds = %1
store i32 162, i32* %2
br label %174
65: ; preds = %1
store i32 163, i32* %2
br label %174
66: ; preds = %1
store i32 165, i32* %2
br label %174
67: ; preds = %1
store i32 8359, i32* %2
br label %174
68: ; preds = %1
store i32 402, i32* %2
br label %174
69: ; preds = %1
store i32 225, i32* %2
br label %174
70: ; preds = %1
store i32 237, i32* %2
br label %174
71: ; preds = %1
store i32 243, i32* %2
br label %174
72: ; preds = %1
store i32 250, i32* %2
br label %174
73: ; preds = %1
store i32 241, i32* %2
br label %174
74: ; preds = %1
store i32 209, i32* %2
br label %174
75: ; preds = %1
store i32 170, i32* %2
br label %174
76: ; preds = %1
store i32 186, i32* %2
br label %174
77: ; preds = %1
store i32 191, i32* %2
br label %174
78: ; preds = %1
store i32 8976, i32* %2
br label %174
79: ; preds = %1
store i32 172, i32* %2
br label %174
80: ; preds = %1
store i32 189, i32* %2
br label %174
81: ; preds = %1
store i32 188, i32* %2
br label %174
82: ; preds = %1
store i32 161, i32* %2
br label %174
83: ; preds = %1
store i32 171, i32* %2
br label %174
84: ; preds = %1
store i32 187, i32* %2
br label %174
85: ; preds = %1
store i32 9617, i32* %2
br label %174
86: ; preds = %1
store i32 9618, i32* %2
br label %174
87: ; preds = %1
store i32 9619, i32* %2
br label %174
88: ; preds = %1
store i32 9474, i32* %2
br label %174
89: ; preds = %1
store i32 9508, i32* %2
br label %174
90: ; preds = %1
store i32 9569, i32* %2
br label %174
91: ; preds = %1
store i32 9570, i32* %2
br label %174
92: ; preds = %1
store i32 9558, i32* %2
br label %174
93: ; preds = %1
store i32 9557, i32* %2
br label %174
94: ; preds = %1
store i32 9571, i32* %2
br label %174
95: ; preds = %1
store i32 9553, i32* %2
br label %174
96: ; preds = %1
store i32 9559, i32* %2
br label %174
97: ; preds = %1
store i32 9565, i32* %2
br label %174
98: ; preds = %1
store i32 9564, i32* %2
br label %174
99: ; preds = %1
store i32 9563, i32* %2
br label %174
100: ; preds = %1
store i32 9488, i32* %2
br label %174
101: ; preds = %1
store i32 9492, i32* %2
br label %174
102: ; preds = %1
store i32 9524, i32* %2
br label %174
103: ; preds = %1
store i32 9516, i32* %2
br label %174
104: ; preds = %1
store i32 9500, i32* %2
br label %174
105: ; preds = %1
store i32 9472, i32* %2
br label %174
106: ; preds = %1
store i32 9532, i32* %2
br label %174
107: ; preds = %1
store i32 9566, i32* %2
br label %174
108: ; preds = %1
store i32 9567, i32* %2
br label %174
109: ; preds = %1
store i32 9562, i32* %2
br label %174
110: ; preds = %1
store i32 9556, i32* %2
br label %174
111: ; preds = %1
store i32 9577, i32* %2
br label %174
112: ; preds = %1
store i32 9574, i32* %2
br label %174
113: ; preds = %1
store i32 9568, i32* %2
br label %174
114: ; preds = %1
store i32 9552, i32* %2
br label %174
115: ; preds = %1
store i32 9580, i32* %2
br label %174
116: ; preds = %1
store i32 9575, i32* %2
br label %174
117: ; preds = %1
store i32 9576, i32* %2
br label %174
118: ; preds = %1
store i32 9572, i32* %2
br label %174
119: ; preds = %1
store i32 9573, i32* %2
br label %174
120: ; preds = %1
store i32 9561, i32* %2
br label %174
121: ; preds = %1
store i32 9560, i32* %2
br label %174
122: ; preds = %1
store i32 9554, i32* %2
br label %174
123: ; preds = %1
store i32 9555, i32* %2
br label %174
124: ; preds = %1
store i32 9579, i32* %2
br label %174
125: ; preds = %1
store i32 9578, i32* %2
br label %174
126: ; preds = %1
store i32 9496, i32* %2
br label %174
127: ; preds = %1
store i32 9484, i32* %2
br label %174
128: ; preds = %1
store i32 9608, i32* %2
br label %174
129: ; preds = %1
store i32 9604, i32* %2
br label %174
130: ; preds = %1
store i32 9612, i32* %2
br label %174
131: ; preds = %1
store i32 9616, i32* %2
br label %174
132: ; preds = %1
store i32 9600, i32* %2
br label %174
133: ; preds = %1
store i32 945, i32* %2
br label %174
134: ; preds = %1
store i32 223, i32* %2
br label %174
135: ; preds = %1
store i32 915, i32* %2
br label %174
136: ; preds = %1
store i32 960, i32* %2
br label %174
137: ; preds = %1
store i32 931, i32* %2
br label %174
138: ; preds = %1
store i32 963, i32* %2
br label %174
139: ; preds = %1
store i32 181, i32* %2
br label %174
140: ; preds = %1
store i32 964, i32* %2
br label %174
141: ; preds = %1
store i32 934, i32* %2
br label %174
142: ; preds = %1
store i32 920, i32* %2
br label %174
143: ; preds = %1
store i32 937, i32* %2
br label %174
144: ; preds = %1
store i32 948, i32* %2
br label %174
145: ; preds = %1
store i32 8734, i32* %2
br label %174
146: ; preds = %1
store i32 966, i32* %2
br label %174
147: ; preds = %1
store i32 949, i32* %2
br label %174
148: ; preds = %1
store i32 8745, i32* %2
br label %174
149: ; preds = %1
store i32 8801, i32* %2
br label %174
150: ; preds = %1
store i32 177, i32* %2
br label %174
151: ; preds = %1
store i32 8805, i32* %2
br label %174
152: ; preds = %1
store i32 8804, i32* %2
br label %174
153: ; preds = %1
store i32 8992, i32* %2
br label %174
154: ; preds = %1
store i32 8993, i32* %2
br label %174
155: ; preds = %1
store i32 247, i32* %2
br label %174
156: ; preds = %1
store i32 8776, i32* %2
br label %174
157: ; preds = %1
store i32 176, i32* %2
br label %174
158: ; preds = %1
store i32 8729, i32* %2
br label %174
159: ; preds = %1
store i32 183, i32* %2
br label %174
160: ; preds = %1
store i32 8730, i32* %2
br label %174
161: ; preds = %1
store i32 8319, i32* %2
br label %174
162: ; preds = %1
store i32 178, i32* %2
br label %174
163: ; preds = %1
store i32 9632, i32* %2
br label %174
164: ; preds = %1, %1
store i32 160, i32* %2
br label %174
165: ; preds = %1
%166 = load i32, i32* %3
%167 = icmp sge i32 %166, 32
br i1 %167, label %168, label %173
168: ; preds = %165
%169 = load i32, i32* %3
%170 = icmp sle i32 %169, 126
br i1 %170, label %171, label %173
171: ; preds = %168
%172 = load i32, i32* %3
store i32 %172, i32* %2
br label %174
173: ; preds = %168, %165
store i32 0, i32* %2
br label %174
174: ; preds = %173, %171, %164, %163, %162, %161, %160, %159, %158, %157, %156, %155, %154, %153, %152, %151, %150, %149, %148, %147, %146, %145, %144, %143, %142, %141, %140, %139, %138, %137, %136, %135, %134, %133, %132, %131, %130, %129, %128, %127, %126, %125, %124, %123, %122, %121, %120, %119, %118, %117, %116, %115, %114, %113, %112, %111, %110, %109, %108, %107, %106, %105, %104, %103, %102, %101, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5
%175 = load i32, i32* %2
ret i32 %175
}

LLVM IR (-O2):
define i32 @ascii_to_unicode(i32 %0) {
switch i32 %0, label %161 [
i32 1, label %165
i32 2, label %2
i32 3, label %3
i32 4, label %4
i32 5, label %5
i32 6, label %6
i32 7, label %7
i32 8, label %8
i32 9, label %9
i32 10, label %10
i32 11, label %11
i32 12, label %12
i32 13, label %13
i32 14, label %14
i32 15, label %15
i32 16, label %16
i32 17, label %17
i32 18, label %18
i32 19, label %19
i32 20, label %20
i32 21, label %21
i32 22, label %22
i32 23, label %23
i32 24, label %24
i32 25, label %25
i32 26, label %26
i32 27, label %27
i32 28, label %28
i32 29, label %29
i32 30, label %30
i32 31, label %31
i32 127, label %32
i32 128, label %33
i32 129, label %34
i32 130, label %35
i32 131, label %36
i32 132, label %37
i32 133, label %38
i32 134, label %39
i32 135, label %40
i32 136, label %41
i32 137, label %42
i32 138, label %43
i32 139, label %44
i32 140, label %45
i32 141, label %46
i32 142, label %47
i32 143, label %48
i32 144, label %49
i32 145, label %50
i32 146, label %51
i32 147, label %52
i32 148, label %53
i32 149, label %54
i32 150, label %55
i32 151, label %56
i32 152, label %57
i32 153, label %58
i32 154, label %59
i32 155, label %60
i32 156, label %61
i32 157, label %62
i32 158, label %63
i32 159, label %64
i32 160, label %65
i32 161, label %66
i32 162, label %67
i32 163, label %68
i32 164, label %69
i32 165, label %70
i32 166, label %71
i32 167, label %72
i32 168, label %73
i32 169, label %74
i32 170, label %75
i32 171, label %76
i32 172, label %77
i32 173, label %78
i32 174, label %79
i32 175, label %80
i32 176, label %81
i32 177, label %82
i32 178, label %83
i32 179, label %84
i32 180, label %85
i32 181, label %86
i32 182, label %87
i32 183, label %88
i32 184, label %89
i32 185, label %90
i32 186, label %91
i32 187, label %92
i32 188, label %93
i32 189, label %94
i32 190, label %95
i32 191, label %96
i32 192, label %97
i32 193, label %98
i32 194, label %99
i32 195, label %100
i32 196, label %101
i32 197, label %102
i32 198, label %103
i32 199, label %104
i32 200, label %105
i32 201, label %106
i32 202, label %107
i32 203, label %108
i32 204, label %109
i32 205, label %110
i32 206, label %111
i32 207, label %112
i32 208, label %113
i32 209, label %114
i32 210, label %115
i32 211, label %116
i32 212, label %117
i32 213, label %118
i32 214, label %119
i32 215, label %120
i32 216, label %121
i32 217, label %122
i32 218, label %123
i32 219, label %124
i32 220, label %125
i32 221, label %126
i32 222, label %127
i32 223, label %128
i32 224, label %129
i32 225, label %130
i32 226, label %131
i32 227, label %132
i32 228, label %133
i32 229, label %134
i32 230, label %135
i32 231, label %136
i32 232, label %137
i32 233, label %138
i32 234, label %139
i32 235, label %140
i32 236, label %141
i32 237, label %142
i32 238, label %143
i32 239, label %144
i32 240, label %145
i32 241, label %146
i32 242, label %147
i32 243, label %148
i32 244, label %149
i32 245, label %150
i32 246, label %151
i32 247, label %152
i32 248, label %153
i32 249, label %154
i32 250, label %155
i32 251, label %156
i32 252, label %157
i32 253, label %158
i32 254, label %159
i32 0, label %160
i32 255, label %160
]
2: ; preds = %1
br label %165
3: ; preds = %1
br label %165
4: ; preds = %1
br label %165
5: ; preds = %1
br label %165
6: ; preds = %1
br label %165
7: ; preds = %1
br label %165
8: ; preds = %1
br label %165
9: ; preds = %1
br label %165
10: ; preds = %1
br label %165
11: ; preds = %1
br label %165
12: ; preds = %1
br label %165
13: ; preds = %1
br label %165
14: ; preds = %1
br label %165
15: ; preds = %1
br label %165
16: ; preds = %1
br label %165
17: ; preds = %1
br label %165
18: ; preds = %1
br label %165
19: ; preds = %1
br label %165
20: ; preds = %1
br label %165
21: ; preds = %1
br label %165
22: ; preds = %1
br label %165
23: ; preds = %1
br label %165
24: ; preds = %1
br label %165
25: ; preds = %1
br label %165
26: ; preds = %1
br label %165
27: ; preds = %1
br label %165
28: ; preds = %1
br label %165
29: ; preds = %1
br label %165
30: ; preds = %1
br label %165
31: ; preds = %1
br label %165
32: ; preds = %1
br label %165
33: ; preds = %1
br label %165
34: ; preds = %1
br label %165
35: ; preds = %1
br label %165
36: ; preds = %1
br label %165
37: ; preds = %1
br label %165
38: ; preds = %1
br label %165
39: ; preds = %1
br label %165
40: ; preds = %1
br label %165
41: ; preds = %1
br label %165
42: ; preds = %1
br label %165
43: ; preds = %1
br label %165
44: ; preds = %1
br label %165
45: ; preds = %1
br label %165
46: ; preds = %1
br label %165
47: ; preds = %1
br label %165
48: ; preds = %1
br label %165
49: ; preds = %1
br label %165
50: ; preds = %1
br label %165
51: ; preds = %1
br label %165
52: ; preds = %1
br label %165
53: ; preds = %1
br label %165
54: ; preds = %1
br label %165
55: ; preds = %1
br label %165
56: ; preds = %1
br label %165
57: ; preds = %1
br label %165
58: ; preds = %1
br label %165
59: ; preds = %1
br label %165
60: ; preds = %1
br label %165
61: ; preds = %1
br label %165
62: ; preds = %1
br label %165
63: ; preds = %1
br label %165
64: ; preds = %1
br label %165
65: ; preds = %1
br label %165
66: ; preds = %1
br label %165
67: ; preds = %1
br label %165
68: ; preds = %1
br label %165
69: ; preds = %1
br label %165
70: ; preds = %1
br label %165
71: ; preds = %1
br label %165
72: ; preds = %1
br label %165
73: ; preds = %1
br label %165
74: ; preds = %1
br label %165
75: ; preds = %1
br label %165
76: ; preds = %1
br label %165
77: ; preds = %1
br label %165
78: ; preds = %1
br label %165
79: ; preds = %1
br label %165
80: ; preds = %1
br label %165
81: ; preds = %1
br label %165
82: ; preds = %1
br label %165
83: ; preds = %1
br label %165
84: ; preds = %1
br label %165
85: ; preds = %1
br label %165
86: ; preds = %1
br label %165
87: ; preds = %1
br label %165
88: ; preds = %1
br label %165
89: ; preds = %1
br label %165
90: ; preds = %1
br label %165
91: ; preds = %1
br label %165
92: ; preds = %1
br label %165
93: ; preds = %1
br label %165
94: ; preds = %1
br label %165
95: ; preds = %1
br label %165
96: ; preds = %1
br label %165
97: ; preds = %1
br label %165
98: ; preds = %1
br label %165
99: ; preds = %1
br label %165
100: ; preds = %1
br label %165
101: ; preds = %1
br label %165
102: ; preds = %1
br label %165
103: ; preds = %1
br label %165
104: ; preds = %1
br label %165
105: ; preds = %1
br label %165
106: ; preds = %1
br label %165
107: ; preds = %1
br label %165
108: ; preds = %1
br label %165
109: ; preds = %1
br label %165
110: ; preds = %1
br label %165
111: ; preds = %1
br label %165
112: ; preds = %1
br label %165
113: ; preds = %1
br label %165
114: ; preds = %1
br label %165
115: ; preds = %1
br label %165
116: ; preds = %1
br label %165
117: ; preds = %1
br label %165
118: ; preds = %1
br label %165
119: ; preds = %1
br label %165
120: ; preds = %1
br label %165
121: ; preds = %1
br label %165
122: ; preds = %1
br label %165
123: ; preds = %1
br label %165
124: ; preds = %1
br label %165
125: ; preds = %1
br label %165
126: ; preds = %1
br label %165
127: ; preds = %1
br label %165
128: ; preds = %1
br label %165
129: ; preds = %1
br label %165
130: ; preds = %1
br label %165
131: ; preds = %1
br label %165
132: ; preds = %1
br label %165
133: ; preds = %1
br label %165
134: ; preds = %1
br label %165
135: ; preds = %1
br label %165
136: ; preds = %1
br label %165
137: ; preds = %1
br label %165
138: ; preds = %1
br label %165
139: ; preds = %1
br label %165
140: ; preds = %1
br label %165
141: ; preds = %1
br label %165
142: ; preds = %1
br label %165
143: ; preds = %1
br label %165
144: ; preds = %1
br label %165
145: ; preds = %1
br label %165
146: ; preds = %1
br label %165
147: ; preds = %1
br label %165
148: ; preds = %1
br label %165
149: ; preds = %1
br label %165
150: ; preds = %1
br label %165
151: ; preds = %1
br label %165
152: ; preds = %1
br label %165
153: ; preds = %1
br label %165
154: ; preds = %1
br label %165
155: ; preds = %1
br label %165
156: ; preds = %1
br label %165
157: ; preds = %1
br label %165
158: ; preds = %1
br label %165
159: ; preds = %1
br label %165
160: ; preds = %1, %1
br label %165
161: ; preds = %1
%162 = add i32 %0, -32
%163 = icmp ult i32 %162, 95
%164 = select i1 %163, i32 %0, i32 0
br label %165
165: ; preds = %161, %1, %160, %159, %158, %157, %156, %155, %154, %153, %152, %151, %150, %149, %148, %147, %146, %145, %144, %143, %142, %141, %140, %139, %138, %137, %136, %135, %134, %133, %132, %131, %130, %129, %128, %127, %126, %125, %124, %123, %122, %121, %120, %119, %118, %117, %116, %115, %114, %113, %112, %111, %110, %109, %108, %107, %106, %105, %104, %103, %102, %101, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6, %5, %4, %3, %2
%166 = phi i32 [ 160, %160 ], [ 9632, %159 ], [ 178, %158 ], [ 8319, %157 ], [ 8730, %156 ], [ 183, %155 ], [ 8729, %154 ], [ 176, %153 ], [ 8776, %152 ], [ 247, %151 ], [ 8993, %150 ], [ 8992, %149 ], [ 8804, %148 ], [ 8805, %147 ], [ 177, %146 ], [ 8801, %145 ], [ 8745, %144 ], [ 949, %143 ], [ 966, %142 ], [ 8734, %141 ], [ 948, %140 ], [ 937, %139 ], [ 920, %138 ], [ 934, %137 ], [ 964, %136 ], [ 181, %135 ], [ 963, %134 ], [ 931, %133 ], [ 960, %132 ], [ 915, %131 ], [ 223, %130 ], [ 945, %129 ], [ 9600, %128 ], [ 9616, %127 ], [ 9612, %126 ], [ 9604, %125 ], [ 9608, %124 ], [ 9484, %123 ], [ 9496, %122 ], [ 9578, %121 ], [ 9579, %120 ], [ 9555, %119 ], [ 9554, %118 ], [ 9560, %117 ], [ 9561, %116 ], [ 9573, %115 ], [ 9572, %114 ], [ 9576, %113 ], [ 9575, %112 ], [ 9580, %111 ], [ 9552, %110 ], [ 9568, %109 ], [ 9574, %108 ], [ 9577, %107 ], [ 9556, %106 ], [ 9562, %105 ], [ 9567, %104 ], [ 9566, %103 ], [ 9532, %102 ], [ 9472, %101 ], [ 9500, %100 ], [ 9516, %99 ], [ 9524, %98 ], [ 9492, %97 ], [ 9488, %96 ], [ 9563, %95 ], [ 9564, %94 ], [ 9565, %93 ], [ 9559, %92 ], [ 9553, %91 ], [ 9571, %90 ], [ 9557, %89 ], [ 9558, %88 ], [ 9570, %87 ], [ 9569, %86 ], [ 9508, %85 ], [ 9474, %84 ], [ 9619, %83 ], [ 9618, %82 ], [ 9617, %81 ], [ 187, %80 ], [ 171, %79 ], [ 161, %78 ], [ 188, %77 ], [ 189, %76 ], [ 172, %75 ], [ 8976, %74 ], [ 191, %73 ], [ 186, %72 ], [ 170, %71 ], [ 209, %70 ], [ 241, %69 ], [ 250, %68 ], [ 243, %67 ], [ 237, %66 ], [ 225, %65 ], [ 402, %64 ], [ 8359, %63 ], [ 165, %62 ], [ 163, %61 ], [ 162, %60 ], [ 220, %59 ], [ 214, %58 ], [ 255, %57 ], [ 249, %56 ], [ 251, %55 ], [ 242, %54 ], [ 246, %53 ], [ 244, %52 ], [ 198, %51 ], [ 230, %50 ], [ 201, %49 ], [ 197, %48 ], [ 196, %47 ], [ 236, %46 ], [ 238, %45 ], [ 239, %44 ], [ 232, %43 ], [ 235, %42 ], [ 234, %41 ], [ 231, %40 ], [ 229, %39 ], [ 224, %38 ], [ 228, %37 ], [ 226, %36 ], [ 233, %35 ], [ 252, %34 ], [ 199, %33 ], [ 8962, %32 ], [ 9660, %31 ], [ 9650, %30 ], [ 8596, %29 ], [ 8735, %28 ], [ 8592, %27 ], [ 8594, %26 ], [ 8595, %25 ], [ 8593, %24 ], [ 8616, %23 ], [ 9644, %22 ], [ 167, %21 ], [ 182, %20 ], [ 8252, %19 ], [ 8597, %18 ], [ 9668, %17 ], [ 9658, %16 ], [ 9788, %15 ], [ 9836, %14 ], [ 9834, %13 ], [ 9792, %12 ], [ 9794, %11 ], [ 9689, %10 ], [ 9675, %9 ], [ 9688, %8 ], [ 8226, %7 ], [ 9824, %6 ], [ 9827, %5 ], [ 9830, %4 ], [ 9829, %3 ], [ 9787, %2 ], [ 9786, %1 ], [ %164, %161 ]
ret i32 %166
}