int char_unicode_to_cp437(unsigned int c) {
  if (c >= 32 && c <= 127)
    return c;
  switch (c) {
  case 0x263A:
    return 1;
  case 0x263B:
    return 2;
  case 0x2661:
  case 0x2665:
    return 3;
  case 0x2662:
  case 0x25C6:
  case 0x2666:
    return 4;
  case 0x2667:
  case 0x2663:
    return 5;
  case 0x2664:
  case 0x2660:
    return 6;
  case 0x25CF:
    return 7;
  case 0x25D8:
    return 8;
  case 0x25CB:
  case 0x25E6:
  case 0x25EF:
    return 9;
  case 0x25D9:
    return 10;
  case 0x2642:
    return 11;
  case 0x2640:
    return 12;
  case 0x266A:
    return 13;
  case 0x266B:
    return 14;
  case 0x2195:
    return 18;
  case 0x203C:
    return 19;
  case 0x00B6:
    return 20;
  case 0x00A7:
    return 21;
  case 0x21A8:
    return 23;
  case 0x2191:
    return 24;
  case 0x2193:
    return 25;
  case 0x2192:
    return 26;
  case 0x2190:
    return 27;
  case 0x2194:
    return 29;
  case 0x266F:
    return '#';
  case 0x00A6:
    return 124;
  case 0x0394:
  case 0x2302:
    return 127;
  case 0x20B5:
  case 0x20B2:
  case 0x00A2:
    return 155;
  case 0x00A3:
    return 156;
  case 0x00A5:
    return 157;
  case 0x2310:
    return 169;
  case 0x00AC:
    return 170;
  case 0x00BD:
    return 171;
  case 0x00BC:
    return 172;
  case 0x00A1:
    return 173;
  case 0x00AB:
    return 174;
  case 0x00BB:
    return 175;
  case 0x2591:
    return 176;
  case 0x2592:
    return 177;
  case 0x2593:
    return 178;
  case 0x2502:
    return 179;
  case 0x2524:
    return 180;
  case 0x2561:
    return 181;
  case 0x2562:
    return 182;
  case 0x2556:
    return 183;
  case 0x2555:
    return 184;
  case 0x2563:
    return 185;
  case 0x2551:
    return 186;
  case 0x2557:
    return 187;
  case 0x255D:
    return 188;
  case 0x255C:
    return 189;
  case 0x255B:
    return 190;
  case 0x2510:
    return 191;
  case 0x2514:
    return 192;
  case 0x2534:
    return 193;
  case 0x252C:
    return 194;
  case 0x251C:
    return 195;
  case 0x2500:
    return 196;
  case 0x253C:
    return 197;
  case 0x255E:
    return 198;
  case 0x255F:
    return 199;
  case 0x255A:
    return 200;
  case 0x2554:
    return 201;
  case 0x2569:
    return 202;
  case 0x2566:
    return 203;
  case 0x2560:
    return 204;
  case 0x2550:
    return 205;
  case 0x256C:
    return 206;
  case 0x2567:
    return 207;
  case 0x2568:
    return 208;
  case 0x2564:
    return 209;
  case 0x2565:
    return 210;
  case 0x2559:
    return 211;
  case 0x2558:
    return 212;
  case 0x2552:
    return 213;
  case 0x2553:
    return 214;
  case 0x256B:
    return 215;
  case 0x256A:
    return 216;
  case 0x2518:
    return 217;
  case 0x250C:
    return 218;
  case 0x25A0:
    return 219;
  case 0x2584:
    return 220;
  case 0x258C:
    return 221;
  case 0x2590:
    return 222;
  case 0x2580:
    return 223;
  case 0x03B1:
    return 224;
  case 0x03B2:
    return 225;
  case 0x0393:
    return 226;
  case 0x03C0:
    return 227;
  case 0x03A3:
  case 0x2211:
    return 228;
  case 0x03C3:
    return 229;
  case 0x03BC:
  case 0x00b5:
    return 230;
  case 0x03C4:
  case 0x03D2:
    return 231;
  case 0x03B8:
    return 233;
  case 0x03A9:
    return 234;
  case 0x03B4:
    return 235;
  case 0x221E:
    return 236;
  case 0x00D8:
  case 0x00F8:
    return 237;
  case 0x03F5:
    return 238;
  case 0x2229:
  case 0x03A0:
    return 239;
  case 0x039E:
    return 240;
  case 0x00b1:
    return 241;
  case 0x2265:
    return 242;
  case 0x2264:
    return 243;
  case 0x2320:
    return 244;
  case 0x2321:
    return 245;
  case 0x00F7:
    return 246;
  case 0x2248:
    return 247;
  case 0x00B0:
    return 248;
  case 0x00B7:
    return 249;
  case 0x2219:
  case 0x0387:
    return 250;
  case 0x221A:
    return 251;
  case 0x00B2:
    return 253;
  case 0x220E:
    return 254;
  };
  return c;
}


x86 assembly (clang, -O0):
<char_unicode_to_cp437>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
cmpl   $0x20,-0x8(%rbp)
jb     1126 <char_unicode_to_cp437+0x26>
cmpl   $0x7f,-0x8(%rbp)
ja     1126 <char_unicode_to_cp437+0x26>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
sub    $0xa1,%eax
je     1c67 <char_unicode_to_cp437+0xb67>
jmp    113c <char_unicode_to_cp437+0x3c>
mov    -0xc(%rbp),%eax
sub    $0xa2,%eax
je     1c13 <char_unicode_to_cp437+0xb13>
jmp    114f <char_unicode_to_cp437+0x4f>
mov    -0xc(%rbp),%eax
sub    $0xa3,%eax
je     1c1f <char_unicode_to_cp437+0xb1f>
jmp    1162 <char_unicode_to_cp437+0x62>
mov    -0xc(%rbp),%eax
sub    $0xa5,%eax
je     1c2b <char_unicode_to_cp437+0xb2b>
jmp    1175 <char_unicode_to_cp437+0x75>
mov    -0xc(%rbp),%eax
sub    $0xa6,%eax
je     1bfb <char_unicode_to_cp437+0xafb>
jmp    1188 <char_unicode_to_cp437+0x88>
mov    -0xc(%rbp),%eax
sub    $0xa7,%eax
je     1b9b <char_unicode_to_cp437+0xa9b>
jmp    119b <char_unicode_to_cp437+0x9b>
mov    -0xc(%rbp),%eax
sub    $0xab,%eax
je     1c73 <char_unicode_to_cp437+0xb73>
jmp    11ae <char_unicode_to_cp437+0xae>
mov    -0xc(%rbp),%eax
sub    $0xac,%eax
je     1c43 <char_unicode_to_cp437+0xb43>
jmp    11c1 <char_unicode_to_cp437+0xc1>
mov    -0xc(%rbp),%eax
sub    $0xb0,%eax
je     1fdf <char_unicode_to_cp437+0xedf>
jmp    11d4 <char_unicode_to_cp437+0xd4>
mov    -0xc(%rbp),%eax
sub    $0xb1,%eax
je     1f8b <char_unicode_to_cp437+0xe8b>
jmp    11e7 <char_unicode_to_cp437+0xe7>
mov    -0xc(%rbp),%eax
sub    $0xb2,%eax
je     200f <char_unicode_to_cp437+0xf0f>
jmp    11fa <char_unicode_to_cp437+0xfa>
mov    -0xc(%rbp),%eax
sub    $0xb5,%eax
je     1f13 <char_unicode_to_cp437+0xe13>
jmp    120d <char_unicode_to_cp437+0x10d>
mov    -0xc(%rbp),%eax
sub    $0xb6,%eax
je     1b8f <char_unicode_to_cp437+0xa8f>
jmp    1220 <char_unicode_to_cp437+0x120>
mov    -0xc(%rbp),%eax
sub    $0xb7,%eax
je     1feb <char_unicode_to_cp437+0xeeb>
jmp    1233 <char_unicode_to_cp437+0x133>
mov    -0xc(%rbp),%eax
sub    $0xbb,%eax
je     1c7f <char_unicode_to_cp437+0xb7f>
jmp    1246 <char_unicode_to_cp437+0x146>
mov    -0xc(%rbp),%eax
sub    $0xbc,%eax
je     1c5b <char_unicode_to_cp437+0xb5b>
jmp    1259 <char_unicode_to_cp437+0x159>
mov    -0xc(%rbp),%eax
sub    $0xbd,%eax
je     1c4f <char_unicode_to_cp437+0xb4f>
jmp    126c <char_unicode_to_cp437+0x16c>
mov    -0xc(%rbp),%eax
sub    $0xd8,%eax
je     1f5b <char_unicode_to_cp437+0xe5b>
jmp    127f <char_unicode_to_cp437+0x17f>
mov    -0xc(%rbp),%eax
sub    $0xf7,%eax
je     1fc7 <char_unicode_to_cp437+0xec7>
jmp    1292 <char_unicode_to_cp437+0x192>
mov    -0xc(%rbp),%eax
sub    $0xf8,%eax
je     1f5b <char_unicode_to_cp437+0xe5b>
jmp    12a5 <char_unicode_to_cp437+0x1a5>
mov    -0xc(%rbp),%eax
sub    $0x387,%eax
je     1ff7 <char_unicode_to_cp437+0xef7>
jmp    12b8 <char_unicode_to_cp437+0x1b8>
mov    -0xc(%rbp),%eax
sub    $0x393,%eax
je     1ee3 <char_unicode_to_cp437+0xde3>
jmp    12cb <char_unicode_to_cp437+0x1cb>
mov    -0xc(%rbp),%eax
sub    $0x394,%eax
je     1c07 <char_unicode_to_cp437+0xb07>
jmp    12de <char_unicode_to_cp437+0x1de>
mov    -0xc(%rbp),%eax
sub    $0x39e,%eax
je     1f7f <char_unicode_to_cp437+0xe7f>
jmp    12f1 <char_unicode_to_cp437+0x1f1>
mov    -0xc(%rbp),%eax
sub    $0x3a0,%eax
je     1f73 <char_unicode_to_cp437+0xe73>
jmp    1304 <char_unicode_to_cp437+0x204>
mov    -0xc(%rbp),%eax
sub    $0x3a3,%eax
je     1efb <char_unicode_to_cp437+0xdfb>
jmp    1317 <char_unicode_to_cp437+0x217>
mov    -0xc(%rbp),%eax
sub    $0x3a9,%eax
je     1f37 <char_unicode_to_cp437+0xe37>
jmp    132a <char_unicode_to_cp437+0x22a>
mov    -0xc(%rbp),%eax
sub    $0x3b1,%eax
je     1ecb <char_unicode_to_cp437+0xdcb>
jmp    133d <char_unicode_to_cp437+0x23d>
mov    -0xc(%rbp),%eax
sub    $0x3b2,%eax
je     1ed7 <char_unicode_to_cp437+0xdd7>
jmp    1350 <char_unicode_to_cp437+0x250>
mov    -0xc(%rbp),%eax
sub    $0x3b4,%eax
je     1f43 <char_unicode_to_cp437+0xe43>
jmp    1363 <char_unicode_to_cp437+0x263>
mov    -0xc(%rbp),%eax
sub    $0x3b8,%eax
je     1f2b <char_unicode_to_cp437+0xe2b>
jmp    1376 <char_unicode_to_cp437+0x276>
mov    -0xc(%rbp),%eax
sub    $0x3bc,%eax
je     1f13 <char_unicode_to_cp437+0xe13>
jmp    1389 <char_unicode_to_cp437+0x289>
mov    -0xc(%rbp),%eax
sub    $0x3c0,%eax
je     1eef <char_unicode_to_cp437+0xdef>
jmp    139c <char_unicode_to_cp437+0x29c>
mov    -0xc(%rbp),%eax
sub    $0x3c3,%eax
je     1f07 <char_unicode_to_cp437+0xe07>
jmp    13af <char_unicode_to_cp437+0x2af>
mov    -0xc(%rbp),%eax
sub    $0x3c4,%eax
je     1f1f <char_unicode_to_cp437+0xe1f>
jmp    13c2 <char_unicode_to_cp437+0x2c2>
mov    -0xc(%rbp),%eax
sub    $0x3d2,%eax
je     1f1f <char_unicode_to_cp437+0xe1f>
jmp    13d5 <char_unicode_to_cp437+0x2d5>
mov    -0xc(%rbp),%eax
sub    $0x3f5,%eax
je     1f67 <char_unicode_to_cp437+0xe67>
jmp    13e8 <char_unicode_to_cp437+0x2e8>
mov    -0xc(%rbp),%eax
sub    $0x203c,%eax
je     1b83 <char_unicode_to_cp437+0xa83>
jmp    13fb <char_unicode_to_cp437+0x2fb>
mov    -0xc(%rbp),%eax
sub    $0x20b2,%eax
je     1c13 <char_unicode_to_cp437+0xb13>
jmp    140e <char_unicode_to_cp437+0x30e>
mov    -0xc(%rbp),%eax
sub    $0x20b5,%eax
je     1c13 <char_unicode_to_cp437+0xb13>
jmp    1421 <char_unicode_to_cp437+0x321>
mov    -0xc(%rbp),%eax
sub    $0x2190,%eax
je     1bd7 <char_unicode_to_cp437+0xad7>
jmp    1434 <char_unicode_to_cp437+0x334>
mov    -0xc(%rbp),%eax
sub    $0x2191,%eax
je     1bb3 <char_unicode_to_cp437+0xab3>
jmp    1447 <char_unicode_to_cp437+0x347>
mov    -0xc(%rbp),%eax
sub    $0x2192,%eax
je     1bcb <char_unicode_to_cp437+0xacb>
jmp    145a <char_unicode_to_cp437+0x35a>
mov    -0xc(%rbp),%eax
sub    $0x2193,%eax
je     1bbf <char_unicode_to_cp437+0xabf>
jmp    146d <char_unicode_to_cp437+0x36d>
mov    -0xc(%rbp),%eax
sub    $0x2194,%eax
je     1be3 <char_unicode_to_cp437+0xae3>
jmp    1480 <char_unicode_to_cp437+0x380>
mov    -0xc(%rbp),%eax
sub    $0x2195,%eax
je     1b77 <char_unicode_to_cp437+0xa77>
jmp    1493 <char_unicode_to_cp437+0x393>
mov    -0xc(%rbp),%eax
sub    $0x21a8,%eax
je     1ba7 <char_unicode_to_cp437+0xaa7>
jmp    14a6 <char_unicode_to_cp437+0x3a6>
mov    -0xc(%rbp),%eax
sub    $0x220e,%eax
je     201b <char_unicode_to_cp437+0xf1b>
jmp    14b9 <char_unicode_to_cp437+0x3b9>
mov    -0xc(%rbp),%eax
sub    $0x2211,%eax
je     1efb <char_unicode_to_cp437+0xdfb>
jmp    14cc <char_unicode_to_cp437+0x3cc>
mov    -0xc(%rbp),%eax
sub    $0x2219,%eax
je     1ff7 <char_unicode_to_cp437+0xef7>
jmp    14df <char_unicode_to_cp437+0x3df>
mov    -0xc(%rbp),%eax
sub    $0x221a,%eax
je     2003 <char_unicode_to_cp437+0xf03>
jmp    14f2 <char_unicode_to_cp437+0x3f2>
mov    -0xc(%rbp),%eax
sub    $0x221e,%eax
je     1f4f <char_unicode_to_cp437+0xe4f>
jmp    1505 <char_unicode_to_cp437+0x405>
mov    -0xc(%rbp),%eax
sub    $0x2229,%eax
je     1f73 <char_unicode_to_cp437+0xe73>
jmp    1518 <char_unicode_to_cp437+0x418>
mov    -0xc(%rbp),%eax
sub    $0x2248,%eax
je     1fd3 <char_unicode_to_cp437+0xed3>
jmp    152b <char_unicode_to_cp437+0x42b>
mov    -0xc(%rbp),%eax
sub    $0x2264,%eax
je     1fa3 <char_unicode_to_cp437+0xea3>
jmp    153e <char_unicode_to_cp437+0x43e>
mov    -0xc(%rbp),%eax
sub    $0x2265,%eax
je     1f97 <char_unicode_to_cp437+0xe97>
jmp    1551 <char_unicode_to_cp437+0x451>
mov    -0xc(%rbp),%eax
sub    $0x2302,%eax
je     1c07 <char_unicode_to_cp437+0xb07>
jmp    1564 <char_unicode_to_cp437+0x464>
mov    -0xc(%rbp),%eax
sub    $0x2310,%eax
je     1c37 <char_unicode_to_cp437+0xb37>
jmp    1577 <char_unicode_to_cp437+0x477>
mov    -0xc(%rbp),%eax
sub    $0x2320,%eax
je     1faf <char_unicode_to_cp437+0xeaf>
jmp    158a <char_unicode_to_cp437+0x48a>
mov    -0xc(%rbp),%eax
sub    $0x2321,%eax
je     1fbb <char_unicode_to_cp437+0xebb>
jmp    159d <char_unicode_to_cp437+0x49d>
mov    -0xc(%rbp),%eax
sub    $0x2500,%eax
je     1d7b <char_unicode_to_cp437+0xc7b>
jmp    15b0 <char_unicode_to_cp437+0x4b0>
mov    -0xc(%rbp),%eax
sub    $0x2502,%eax
je     1caf <char_unicode_to_cp437+0xbaf>
jmp    15c3 <char_unicode_to_cp437+0x4c3>
mov    -0xc(%rbp),%eax
sub    $0x250c,%eax
je     1e83 <char_unicode_to_cp437+0xd83>
jmp    15d6 <char_unicode_to_cp437+0x4d6>
mov    -0xc(%rbp),%eax
sub    $0x2510,%eax
je     1d3f <char_unicode_to_cp437+0xc3f>
jmp    15e9 <char_unicode_to_cp437+0x4e9>
mov    -0xc(%rbp),%eax
sub    $0x2514,%eax
je     1d4b <char_unicode_to_cp437+0xc4b>
jmp    15fc <char_unicode_to_cp437+0x4fc>
mov    -0xc(%rbp),%eax
sub    $0x2518,%eax
je     1e77 <char_unicode_to_cp437+0xd77>
jmp    160f <char_unicode_to_cp437+0x50f>
mov    -0xc(%rbp),%eax
sub    $0x251c,%eax
je     1d6f <char_unicode_to_cp437+0xc6f>
jmp    1622 <char_unicode_to_cp437+0x522>
mov    -0xc(%rbp),%eax
sub    $0x2524,%eax
je     1cbb <char_unicode_to_cp437+0xbbb>
jmp    1635 <char_unicode_to_cp437+0x535>
mov    -0xc(%rbp),%eax
sub    $0x252c,%eax
je     1d63 <char_unicode_to_cp437+0xc63>
jmp    1648 <char_unicode_to_cp437+0x548>
mov    -0xc(%rbp),%eax
sub    $0x2534,%eax
je     1d57 <char_unicode_to_cp437+0xc57>
jmp    165b <char_unicode_to_cp437+0x55b>
mov    -0xc(%rbp),%eax
sub    $0x253c,%eax
je     1d87 <char_unicode_to_cp437+0xc87>
jmp    166e <char_unicode_to_cp437+0x56e>
mov    -0xc(%rbp),%eax
sub    $0x2550,%eax
je     1de7 <char_unicode_to_cp437+0xce7>
jmp    1681 <char_unicode_to_cp437+0x581>
mov    -0xc(%rbp),%eax
sub    $0x2551,%eax
je     1d03 <char_unicode_to_cp437+0xc03>
jmp    1694 <char_unicode_to_cp437+0x594>
mov    -0xc(%rbp),%eax
sub    $0x2552,%eax
je     1e47 <char_unicode_to_cp437+0xd47>
jmp    16a7 <char_unicode_to_cp437+0x5a7>
mov    -0xc(%rbp),%eax
sub    $0x2553,%eax
je     1e53 <char_unicode_to_cp437+0xd53>
jmp    16ba <char_unicode_to_cp437+0x5ba>
mov    -0xc(%rbp),%eax
sub    $0x2554,%eax
je     1db7 <char_unicode_to_cp437+0xcb7>
jmp    16cd <char_unicode_to_cp437+0x5cd>
mov    -0xc(%rbp),%eax
sub    $0x2555,%eax
je     1ceb <char_unicode_to_cp437+0xbeb>
jmp    16e0 <char_unicode_to_cp437+0x5e0>
mov    -0xc(%rbp),%eax
sub    $0x2556,%eax
je     1cdf <char_unicode_to_cp437+0xbdf>
jmp    16f3 <char_unicode_to_cp437+0x5f3>
mov    -0xc(%rbp),%eax
sub    $0x2557,%eax
je     1d0f <char_unicode_to_cp437+0xc0f>
jmp    1706 <char_unicode_to_cp437+0x606>
mov    -0xc(%rbp),%eax
sub    $0x2558,%eax
je     1e3b <char_unicode_to_cp437+0xd3b>
jmp    1719 <char_unicode_to_cp437+0x619>
mov    -0xc(%rbp),%eax
sub    $0x2559,%eax
je     1e2f <char_unicode_to_cp437+0xd2f>
jmp    172c <char_unicode_to_cp437+0x62c>
mov    -0xc(%rbp),%eax
sub    $0x255a,%eax
je     1dab <char_unicode_to_cp437+0xcab>
jmp    173f <char_unicode_to_cp437+0x63f>
mov    -0xc(%rbp),%eax
sub    $0x255b,%eax
je     1d33 <char_unicode_to_cp437+0xc33>
jmp    1752 <char_unicode_to_cp437+0x652>
mov    -0xc(%rbp),%eax
sub    $0x255c,%eax
je     1d27 <char_unicode_to_cp437+0xc27>
jmp    1765 <char_unicode_to_cp437+0x665>
mov    -0xc(%rbp),%eax
sub    $0x255d,%eax
je     1d1b <char_unicode_to_cp437+0xc1b>
jmp    1778 <char_unicode_to_cp437+0x678>
mov    -0xc(%rbp),%eax
sub    $0x255e,%eax
je     1d93 <char_unicode_to_cp437+0xc93>
jmp    178b <char_unicode_to_cp437+0x68b>
mov    -0xc(%rbp),%eax
sub    $0x255f,%eax
je     1d9f <char_unicode_to_cp437+0xc9f>
jmp    179e <char_unicode_to_cp437+0x69e>
mov    -0xc(%rbp),%eax
sub    $0x2560,%eax
je     1ddb <char_unicode_to_cp437+0xcdb>
jmp    17b1 <char_unicode_to_cp437+0x6b1>
mov    -0xc(%rbp),%eax
sub    $0x2561,%eax
je     1cc7 <char_unicode_to_cp437+0xbc7>
jmp    17c4 <char_unicode_to_cp437+0x6c4>
mov    -0xc(%rbp),%eax
sub    $0x2562,%eax
je     1cd3 <char_unicode_to_cp437+0xbd3>
jmp    17d7 <char_unicode_to_cp437+0x6d7>
mov    -0xc(%rbp),%eax
sub    $0x2563,%eax
je     1cf7 <char_unicode_to_cp437+0xbf7>
jmp    17ea <char_unicode_to_cp437+0x6ea>
mov    -0xc(%rbp),%eax
sub    $0x2564,%eax
je     1e17 <char_unicode_to_cp437+0xd17>
jmp    17fd <char_unicode_to_cp437+0x6fd>
mov    -0xc(%rbp),%eax
sub    $0x2565,%eax
je     1e23 <char_unicode_to_cp437+0xd23>
jmp    1810 <char_unicode_to_cp437+0x710>
mov    -0xc(%rbp),%eax
sub    $0x2566,%eax
je     1dcf <char_unicode_to_cp437+0xccf>
jmp    1823 <char_unicode_to_cp437+0x723>
mov    -0xc(%rbp),%eax
sub    $0x2567,%eax
je     1dff <char_unicode_to_cp437+0xcff>
jmp    1836 <char_unicode_to_cp437+0x736>
mov    -0xc(%rbp),%eax
sub    $0x2568,%eax
je     1e0b <char_unicode_to_cp437+0xd0b>
jmp    1849 <char_unicode_to_cp437+0x749>
mov    -0xc(%rbp),%eax
sub    $0x2569,%eax
je     1dc3 <char_unicode_to_cp437+0xcc3>
jmp    185c <char_unicode_to_cp437+0x75c>
mov    -0xc(%rbp),%eax
sub    $0x256a,%eax
je     1e6b <char_unicode_to_cp437+0xd6b>
jmp    186f <char_unicode_to_cp437+0x76f>
mov    -0xc(%rbp),%eax
sub    $0x256b,%eax
je     1e5f <char_unicode_to_cp437+0xd5f>
jmp    1882 <char_unicode_to_cp437+0x782>
mov    -0xc(%rbp),%eax
sub    $0x256c,%eax
je     1df3 <char_unicode_to_cp437+0xcf3>
jmp    1895 <char_unicode_to_cp437+0x795>
mov    -0xc(%rbp),%eax
sub    $0x2580,%eax
je     1ebf <char_unicode_to_cp437+0xdbf>
jmp    18a8 <char_unicode_to_cp437+0x7a8>
mov    -0xc(%rbp),%eax
sub    $0x2584,%eax
je     1e9b <char_unicode_to_cp437+0xd9b>
jmp    18bb <char_unicode_to_cp437+0x7bb>
mov    -0xc(%rbp),%eax
sub    $0x258c,%eax
je     1ea7 <char_unicode_to_cp437+0xda7>
jmp    18ce <char_unicode_to_cp437+0x7ce>
mov    -0xc(%rbp),%eax
sub    $0x2590,%eax
je     1eb3 <char_unicode_to_cp437+0xdb3>
jmp    18e1 <char_unicode_to_cp437+0x7e1>
mov    -0xc(%rbp),%eax
sub    $0x2591,%eax
je     1c8b <char_unicode_to_cp437+0xb8b>
jmp    18f4 <char_unicode_to_cp437+0x7f4>
mov    -0xc(%rbp),%eax
sub    $0x2592,%eax
je     1c97 <char_unicode_to_cp437+0xb97>
jmp    1907 <char_unicode_to_cp437+0x807>
mov    -0xc(%rbp),%eax
sub    $0x2593,%eax
je     1ca3 <char_unicode_to_cp437+0xba3>
jmp    191a <char_unicode_to_cp437+0x81a>
mov    -0xc(%rbp),%eax
sub    $0x25a0,%eax
je     1e8f <char_unicode_to_cp437+0xd8f>
jmp    192d <char_unicode_to_cp437+0x82d>
mov    -0xc(%rbp),%eax
sub    $0x25c6,%eax
je     1af3 <char_unicode_to_cp437+0x9f3>
jmp    1940 <char_unicode_to_cp437+0x840>
mov    -0xc(%rbp),%eax
sub    $0x25cb,%eax
je     1b2f <char_unicode_to_cp437+0xa2f>
jmp    1953 <char_unicode_to_cp437+0x853>
mov    -0xc(%rbp),%eax
sub    $0x25cf,%eax
je     1b17 <char_unicode_to_cp437+0xa17>
jmp    1966 <char_unicode_to_cp437+0x866>
mov    -0xc(%rbp),%eax
sub    $0x25d8,%eax
je     1b23 <char_unicode_to_cp437+0xa23>
jmp    1979 <char_unicode_to_cp437+0x879>
mov    -0xc(%rbp),%eax
sub    $0x25d9,%eax
je     1b3b <char_unicode_to_cp437+0xa3b>
jmp    198c <char_unicode_to_cp437+0x88c>
mov    -0xc(%rbp),%eax
sub    $0x25e6,%eax
je     1b2f <char_unicode_to_cp437+0xa2f>
jmp    199f <char_unicode_to_cp437+0x89f>
mov    -0xc(%rbp),%eax
sub    $0x25ef,%eax
je     1b2f <char_unicode_to_cp437+0xa2f>
jmp    19b2 <char_unicode_to_cp437+0x8b2>
mov    -0xc(%rbp),%eax
sub    $0x263a,%eax
je     1acf <char_unicode_to_cp437+0x9cf>
jmp    19c5 <char_unicode_to_cp437+0x8c5>
mov    -0xc(%rbp),%eax
sub    $0x263b,%eax
je     1adb <char_unicode_to_cp437+0x9db>
jmp    19d8 <char_unicode_to_cp437+0x8d8>
mov    -0xc(%rbp),%eax
sub    $0x2640,%eax
je     1b53 <char_unicode_to_cp437+0xa53>
jmp    19eb <char_unicode_to_cp437+0x8eb>
mov    -0xc(%rbp),%eax
sub    $0x2642,%eax
je     1b47 <char_unicode_to_cp437+0xa47>
jmp    19fe <char_unicode_to_cp437+0x8fe>
mov    -0xc(%rbp),%eax
sub    $0x2660,%eax
je     1b0b <char_unicode_to_cp437+0xa0b>
jmp    1a11 <char_unicode_to_cp437+0x911>
mov    -0xc(%rbp),%eax
sub    $0x2661,%eax
je     1ae7 <char_unicode_to_cp437+0x9e7>
jmp    1a24 <char_unicode_to_cp437+0x924>
mov    -0xc(%rbp),%eax
sub    $0x2662,%eax
je     1af3 <char_unicode_to_cp437+0x9f3>
jmp    1a37 <char_unicode_to_cp437+0x937>
mov    -0xc(%rbp),%eax
sub    $0x2663,%eax
je     1aff <char_unicode_to_cp437+0x9ff>
jmp    1a4a <char_unicode_to_cp437+0x94a>
mov    -0xc(%rbp),%eax
sub    $0x2664,%eax
je     1b0b <char_unicode_to_cp437+0xa0b>
jmp    1a5d <char_unicode_to_cp437+0x95d>
mov    -0xc(%rbp),%eax
sub    $0x2665,%eax
je     1ae7 <char_unicode_to_cp437+0x9e7>
jmp    1a70 <char_unicode_to_cp437+0x970>
mov    -0xc(%rbp),%eax
sub    $0x2666,%eax
je     1af3 <char_unicode_to_cp437+0x9f3>
jmp    1a83 <char_unicode_to_cp437+0x983>
mov    -0xc(%rbp),%eax
sub    $0x2667,%eax
je     1aff <char_unicode_to_cp437+0x9ff>
jmp    1a96 <char_unicode_to_cp437+0x996>
mov    -0xc(%rbp),%eax
sub    $0x266a,%eax
je     1b5f <char_unicode_to_cp437+0xa5f>
jmp    1aa9 <char_unicode_to_cp437+0x9a9>
mov    -0xc(%rbp),%eax
sub    $0x266b,%eax
je     1b6b <char_unicode_to_cp437+0xa6b>
jmp    1abc <char_unicode_to_cp437+0x9bc>
mov    -0xc(%rbp),%eax
sub    $0x266f,%eax
je     1bef <char_unicode_to_cp437+0xaef>
jmp    2027 <char_unicode_to_cp437+0xf27>
movl   $0x1,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x2,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x3,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x4,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x5,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x6,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x7,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x8,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xa,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x12,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x13,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x14,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x15,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x17,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x18,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x19,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x1a,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x1b,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x1d,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x23,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x7c,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x7f,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x9b,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x9c,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0x9d,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xa9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xaa,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xab,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xac,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xad,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xae,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xaf,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb0,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb1,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb2,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb3,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb4,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb5,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb6,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb7,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb8,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xb9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xba,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xbb,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xbc,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xbd,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xbe,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xbf,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc0,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc1,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc2,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc3,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc4,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc5,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc6,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc7,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc8,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xc9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xca,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xcb,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xcc,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xcd,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xce,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xcf,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd0,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd1,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd2,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd3,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd4,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd5,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd6,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd7,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd8,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xd9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xda,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xdb,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xdc,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xdd,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xde,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xdf,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe0,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe1,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe2,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe3,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe4,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe5,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe6,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe7,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xe9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xea,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xeb,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xec,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xed,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xee,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xef,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf0,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf1,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf2,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf3,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf4,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf5,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf6,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf7,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf8,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xf9,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xfa,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xfb,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xfd,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
movl   $0xfe,-0x4(%rbp)
jmp    202d <char_unicode_to_cp437+0xf2d>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<char_unicode_to_cp437>:
lea    -0x20(%rdi),%eax
cmp    $0x60,%eax
jae    110b <char_unicode_to_cp437+0xb>
mov    %edi,%eax
ret
cmp    $0x220d,%edi
jle    1140 <char_unicode_to_cp437+0x40>
lea    -0x2500(%rdi),%ecx
cmp    $0x16f,%ecx
ja     11b7 <char_unicode_to_cp437+0xb7>
mov    $0x1,%eax
lea    0x142f(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x4,%eax
ret
cmp    $0x386,%edi
jle    1175 <char_unicode_to_cp437+0x75>
cmp    $0x20b1,%edi
jg     1196 <char_unicode_to_cp437+0x96>
lea    -0x387(%rdi),%eax
cmp    $0x6e,%eax
ja     126b <char_unicode_to_cp437+0x16b>
lea    0xffa(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0xe7,%eax
ret
lea    -0xa1(%rdi),%eax
cmp    $0x57,%eax
ja     1108 <char_unicode_to_cp437+0x8>
lea    0xe79(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0xed,%eax
ret
lea    -0x2190(%rdi),%eax
cmp    $0x18,%eax
ja     11fd <char_unicode_to_cp437+0xfd>
lea    0x1174(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x1b,%eax
ret
lea    -0x220e(%rdi),%eax
cmp    $0x57,%eax
ja     11d8 <char_unicode_to_cp437+0xd8>
lea    0x11b7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0xfe,%eax
ret
lea    -0x2302(%rdi),%eax
cmp    $0x1f,%eax
ja     1108 <char_unicode_to_cp437+0x8>
lea    0x12f2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    $0x7f,%eax
ret
cmp    $0x20b2,%edi
je     1211 <char_unicode_to_cp437+0x111>
cmp    $0x20b5,%edi
jne    1108 <char_unicode_to_cp437+0x8>
mov    $0x9b,%eax
ret
mov    $0x9,%eax
ret
mov    $0xe6,%eax
ret
mov    $0xe4,%eax
ret
mov    $0xfa,%eax
ret
mov    $0xef,%eax
ret
mov    $0x6,%eax
ret
mov    $0x3,%eax
ret
mov    $0x5,%eax
ret
mov    $0x18,%eax
ret
mov    $0x1a,%eax
ret
mov    $0x19,%eax
ret
mov    $0x1d,%eax
ret
mov    $0x12,%eax
ret
mov    $0x17,%eax
ret
cmp    $0x203c,%edi
jne    1108 <char_unicode_to_cp437+0x8>
mov    $0x13,%eax
ret
mov    $0xad,%eax
ret
mov    $0x9c,%eax
ret
mov    $0x9d,%eax
ret
mov    $0x7c,%eax
ret
mov    $0x15,%eax
ret
mov    $0xae,%eax
ret
mov    $0xaa,%eax
ret
mov    $0xf8,%eax
ret
mov    $0xf1,%eax
ret
mov    $0xfd,%eax
ret
mov    $0x14,%eax
ret
mov    $0xf9,%eax
ret
mov    $0xaf,%eax
ret
mov    $0xac,%eax
ret
mov    $0xab,%eax
ret
mov    $0xf6,%eax
ret
mov    $0xe2,%eax
ret
mov    $0xf0,%eax
ret
mov    $0xea,%eax
ret
mov    $0xe0,%eax
ret
mov    $0xe1,%eax
ret
mov    $0xeb,%eax
ret
mov    $0xe9,%eax
ret
mov    $0xe3,%eax
ret
mov    $0xe5,%eax
ret
mov    $0xee,%eax
ret
mov    $0xc4,%eax
ret
mov    $0xb3,%eax
ret
mov    $0xda,%eax
ret
mov    $0xbf,%eax
ret
mov    $0xc0,%eax
ret
mov    $0xd9,%eax
ret
mov    $0xc3,%eax
ret
mov    $0xb4,%eax
ret
mov    $0xc2,%eax
ret
mov    $0xc1,%eax
ret
mov    $0xc5,%eax
ret
mov    $0xcd,%eax
ret
mov    $0xba,%eax
ret
mov    $0xd5,%eax
ret
mov    $0xd6,%eax
ret
mov    $0xc9,%eax
ret
mov    $0xb8,%eax
ret
mov    $0xb7,%eax
ret
mov    $0xbb,%eax
ret
mov    $0xd4,%eax
ret
mov    $0xd3,%eax
ret
mov    $0xc8,%eax
ret
mov    $0xbe,%eax
ret
mov    $0xbd,%eax
ret
mov    $0xbc,%eax
ret
mov    $0xc6,%eax
ret
mov    $0xc7,%eax
ret
mov    $0xcc,%eax
ret
mov    $0xb5,%eax
ret
mov    $0xb6,%eax
ret
mov    $0xb9,%eax
ret
mov    $0xd1,%eax
ret
mov    $0xd2,%eax
ret
mov    $0xcb,%eax
ret
mov    $0xcf,%eax
ret
mov    $0xd0,%eax
ret
mov    $0xca,%eax
ret
mov    $0xd8,%eax
ret
mov    $0xd7,%eax
ret
mov    $0xce,%eax
ret
mov    $0xdf,%eax
ret
mov    $0xdc,%eax
ret
mov    $0xdd,%eax
ret
mov    $0xde,%eax
ret
mov    $0xb0,%eax
ret
mov    $0xb1,%eax
ret
mov    $0xb2,%eax
ret
mov    $0xdb,%eax
ret
mov    $0x7,%eax
ret
mov    $0x8,%eax
ret
mov    $0xa,%eax
ret
mov    $0x2,%eax
ret
mov    $0xc,%eax
ret
mov    $0xb,%eax
ret
mov    $0xd,%eax
ret
mov    $0xe,%eax
ret
mov    $0x23,%eax
ret
mov    $0xfb,%eax
ret
mov    $0xec,%eax
ret
mov    $0xf7,%eax
ret
mov    $0xf3,%eax
ret
mov    $0xf2,%eax
ret
mov    $0xa9,%eax
ret
mov    $0xf4,%eax
ret
mov    $0xf5,%eax
ret

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

LLVM IR (-O2):
define i32 @char_unicode_to_cp437(i32 %0) {
%2 = add i32 %0, -32
%3 = icmp ult i32 %2, 96
br i1 %3, label %119, label %4
4: ; preds = %1
switch i32 %0, label %118 [
i32 9786, label %119
i32 9787, label %5
i32 9825, label %6
i32 9829, label %6
i32 9826, label %7
i32 9670, label %7
i32 9830, label %7
i32 9831, label %8
i32 9827, label %8
i32 9828, label %9
i32 9824, label %9
i32 9679, label %10
i32 9688, label %11
i32 9675, label %12
i32 9702, label %12
i32 9711, label %12
i32 9689, label %13
i32 9794, label %14
i32 9792, label %15
i32 9834, label %16
i32 9835, label %17
i32 8597, label %18
i32 8252, label %19
i32 182, label %20
i32 167, label %21
i32 8616, label %22
i32 8593, label %23
i32 8595, label %24
i32 8594, label %25
i32 8592, label %26
i32 8596, label %27
i32 9839, label %28
i32 166, label %29
i32 916, label %30
i32 8962, label %30
i32 8373, label %31
i32 8370, label %31
i32 162, label %31
i32 163, label %32
i32 165, label %33
i32 8976, label %34
i32 172, label %35
i32 189, label %36
i32 188, label %37
i32 161, label %38
i32 171, label %39
i32 187, label %40
i32 9617, label %41
i32 9618, label %42
i32 9619, label %43
i32 9474, label %44
i32 9508, label %45
i32 9569, label %46
i32 9570, label %47
i32 9558, label %48
i32 9557, label %49
i32 9571, label %50
i32 9553, label %51
i32 9559, label %52
i32 9565, label %53
i32 9564, label %54
i32 9563, label %55
i32 9488, label %56
i32 9492, label %57
i32 9524, label %58
i32 9516, label %59
i32 9500, label %60
i32 9472, label %61
i32 9532, label %62
i32 9566, label %63
i32 9567, label %64
i32 9562, label %65
i32 9556, label %66
i32 9577, label %67
i32 9574, label %68
i32 9568, label %69
i32 9552, label %70
i32 9580, label %71
i32 9575, label %72
i32 9576, label %73
i32 9572, label %74
i32 9573, label %75
i32 9561, label %76
i32 9560, label %77
i32 9554, label %78
i32 9555, label %79
i32 9579, label %80
i32 9578, label %81
i32 9496, label %82
i32 9484, label %83
i32 9632, label %84
i32 9604, label %85
i32 9612, label %86
i32 9616, label %87
i32 9600, label %88
i32 945, label %89
i32 946, label %90
i32 915, label %91
i32 960, label %92
i32 931, label %93
i32 8721, label %93
i32 963, label %94
i32 956, label %95
i32 181, label %95
i32 964, label %96
i32 978, label %96
i32 952, label %97
i32 937, label %98
i32 948, label %99
i32 8734, label %100
i32 216, label %101
i32 248, label %101
i32 1013, label %102
i32 8745, label %103
i32 928, label %103
i32 926, label %104
i32 177, label %105
i32 8805, label %106
i32 8804, label %107
i32 8992, label %108
i32 8993, label %109
i32 247, label %110
i32 8776, label %111
i32 176, label %112
i32 183, label %113
i32 8729, label %114
i32 903, label %114
i32 8730, label %115
i32 178, label %116
i32 8718, label %117
]
5: ; preds = %4
br label %119
6: ; preds = %4, %4
br label %119
7: ; preds = %4, %4, %4
br label %119
8: ; preds = %4, %4
br label %119
9: ; preds = %4, %4
br label %119
10: ; preds = %4
br label %119
11: ; preds = %4
br label %119
12: ; preds = %4, %4, %4
br label %119
13: ; preds = %4
br label %119
14: ; preds = %4
br label %119
15: ; preds = %4
br label %119
16: ; preds = %4
br label %119
17: ; preds = %4
br label %119
18: ; preds = %4
br label %119
19: ; preds = %4
br label %119
20: ; preds = %4
br label %119
21: ; preds = %4
br label %119
22: ; preds = %4
br label %119
23: ; preds = %4
br label %119
24: ; preds = %4
br label %119
25: ; preds = %4
br label %119
26: ; preds = %4
br label %119
27: ; preds = %4
br label %119
28: ; preds = %4
br label %119
29: ; preds = %4
br label %119
30: ; preds = %4, %4
br label %119
31: ; preds = %4, %4, %4
br label %119
32: ; preds = %4
br label %119
33: ; preds = %4
br label %119
34: ; preds = %4
br label %119
35: ; preds = %4
br label %119
36: ; preds = %4
br label %119
37: ; preds = %4
br label %119
38: ; preds = %4
br label %119
39: ; preds = %4
br label %119
40: ; preds = %4
br label %119
41: ; preds = %4
br label %119
42: ; preds = %4
br label %119
43: ; preds = %4
br label %119
44: ; preds = %4
br label %119
45: ; preds = %4
br label %119
46: ; preds = %4
br label %119
47: ; preds = %4
br label %119
48: ; preds = %4
br label %119
49: ; preds = %4
br label %119
50: ; preds = %4
br label %119
51: ; preds = %4
br label %119
52: ; preds = %4
br label %119
53: ; preds = %4
br label %119
54: ; preds = %4
br label %119
55: ; preds = %4
br label %119
56: ; preds = %4
br label %119
57: ; preds = %4
br label %119
58: ; preds = %4
br label %119
59: ; preds = %4
br label %119
60: ; preds = %4
br label %119
61: ; preds = %4
br label %119
62: ; preds = %4
br label %119
63: ; preds = %4
br label %119
64: ; preds = %4
br label %119
65: ; preds = %4
br label %119
66: ; preds = %4
br label %119
67: ; preds = %4
br label %119
68: ; preds = %4
br label %119
69: ; preds = %4
br label %119
70: ; preds = %4
br label %119
71: ; preds = %4
br label %119
72: ; preds = %4
br label %119
73: ; preds = %4
br label %119
74: ; preds = %4
br label %119
75: ; preds = %4
br label %119
76: ; preds = %4
br label %119
77: ; preds = %4
br label %119
78: ; preds = %4
br label %119
79: ; preds = %4
br label %119
80: ; preds = %4
br label %119
81: ; preds = %4
br label %119
82: ; preds = %4
br label %119
83: ; preds = %4
br label %119
84: ; preds = %4
br label %119
85: ; preds = %4
br label %119
86: ; preds = %4
br label %119
87: ; preds = %4
br label %119
88: ; preds = %4
br label %119
89: ; preds = %4
br label %119
90: ; preds = %4
br label %119
91: ; preds = %4
br label %119
92: ; preds = %4
br label %119
93: ; preds = %4, %4
br label %119
94: ; preds = %4
br label %119
95: ; preds = %4, %4
br label %119
96: ; preds = %4, %4
br label %119
97: ; preds = %4
br label %119
98: ; preds = %4
br label %119
99: ; preds = %4
br label %119
100: ; preds = %4
br label %119
101: ; preds = %4, %4
br label %119
102: ; preds = %4
br label %119
103: ; preds = %4, %4
br label %119
104: ; preds = %4
br label %119
105: ; preds = %4
br label %119
106: ; preds = %4
br label %119
107: ; preds = %4
br label %119
108: ; preds = %4
br label %119
109: ; preds = %4
br label %119
110: ; preds = %4
br label %119
111: ; preds = %4
br label %119
112: ; preds = %4
br label %119
113: ; preds = %4
br label %119
114: ; preds = %4, %4
br label %119
115: ; preds = %4
br label %119
116: ; preds = %4
br label %119
117: ; preds = %4
br label %119
118: ; preds = %4
br label %119
119: ; preds = %4, %1, %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
%120 = phi i32 [ %0, %118 ], [ 254, %117 ], [ 253, %116 ], [ 251, %115 ], [ 250, %114 ], [ 249, %113 ], [ 248, %112 ], [ 247, %111 ], [ 246, %110 ], [ 245, %109 ], [ 244, %108 ], [ 243, %107 ], [ 242, %106 ], [ 241, %105 ], [ 240, %104 ], [ 239, %103 ], [ 238, %102 ], [ 237, %101 ], [ 236, %100 ], [ 235, %99 ], [ 234, %98 ], [ 233, %97 ], [ 231, %96 ], [ 230, %95 ], [ 229, %94 ], [ 228, %93 ], [ 227, %92 ], [ 226, %91 ], [ 225, %90 ], [ 224, %89 ], [ 223, %88 ], [ 222, %87 ], [ 221, %86 ], [ 220, %85 ], [ 219, %84 ], [ 218, %83 ], [ 217, %82 ], [ 216, %81 ], [ 215, %80 ], [ 214, %79 ], [ 213, %78 ], [ 212, %77 ], [ 211, %76 ], [ 210, %75 ], [ 209, %74 ], [ 208, %73 ], [ 207, %72 ], [ 206, %71 ], [ 205, %70 ], [ 204, %69 ], [ 203, %68 ], [ 202, %67 ], [ 201, %66 ], [ 200, %65 ], [ 199, %64 ], [ 198, %63 ], [ 197, %62 ], [ 196, %61 ], [ 195, %60 ], [ 194, %59 ], [ 193, %58 ], [ 192, %57 ], [ 191, %56 ], [ 190, %55 ], [ 189, %54 ], [ 188, %53 ], [ 187, %52 ], [ 186, %51 ], [ 185, %50 ], [ 184, %49 ], [ 183, %48 ], [ 182, %47 ], [ 181, %46 ], [ 180, %45 ], [ 179, %44 ], [ 178, %43 ], [ 177, %42 ], [ 176, %41 ], [ 175, %40 ], [ 174, %39 ], [ 173, %38 ], [ 172, %37 ], [ 171, %36 ], [ 170, %35 ], [ 169, %34 ], [ 157, %33 ], [ 156, %32 ], [ 155, %31 ], [ 127, %30 ], [ 124, %29 ], [ 35, %28 ], [ 29, %27 ], [ 27, %26 ], [ 26, %25 ], [ 25, %24 ], [ 24, %23 ], [ 23, %22 ], [ 21, %21 ], [ 20, %20 ], [ 19, %19 ], [ 18, %18 ], [ 14, %17 ], [ 13, %16 ], [ 12, %15 ], [ 11, %14 ], [ 10, %13 ], [ 9, %12 ], [ 8, %11 ], [ 7, %10 ], [ 6, %9 ], [ 5, %8 ], [ 4, %7 ], [ 3, %6 ], [ 2, %5 ], [ %0, %1 ], [ 1, %4 ]
ret i32 %120
}