int qspToWLower(int c) {
  if (c < 0x100) {
    if ((c >= 0x0041 && c <= 0x005a) || (c >= 0x00c0 && c <= 0x00de))
      return (c + 0x20);
    if (c == 0x00b5)
      return 0x03bc;
    return c;
  } else if (c < 0x300) {
    if ((c >= 0x0100 && c <= 0x012e) || (c >= 0x0132 && c <= 0x0136) ||
        (c >= 0x014a && c <= 0x0176) || (c >= 0x01de && c <= 0x01ee) ||
        (c >= 0x01f8 && c <= 0x021e) || (c >= 0x0222 && c <= 0x0232)) {
      if (!(c & 0x01))
        return (c + 1);
      return c;
    }
    if ((c >= 0x0139 && c <= 0x0147) || (c >= 0x01cd && c <= 0x91db)) {
      if (c & 0x01)
        return (c + 1);
      return c;
    }
    if (c >= 0x178 && c <= 0x01f7) {
      int k;
      switch (c) {
      case 0x0178:
        k = 0x00ff;
        break;
      case 0x0179:
      case 0x017b:
      case 0x017d:
      case 0x0182:
      case 0x0184:
      case 0x0187:
      case 0x018b:
      case 0x0191:
      case 0x0198:
      case 0x01a0:
      case 0x01a2:
      case 0x01a4:
      case 0x01a7:
      case 0x01ac:
      case 0x01af:
      case 0x01b3:
      case 0x01b5:
      case 0x01b8:
      case 0x01bc:
      case 0x01c5:
      case 0x01c8:
      case 0x01cb:
      case 0x01cd:
      case 0x01cf:
      case 0x01d1:
      case 0x01d3:
      case 0x01d5:
      case 0x01d7:
      case 0x01d9:
      case 0x01db:
      case 0x01f2:
      case 0x01f4:
        k = c + 1;
        break;
      case 0x017f:
        k = 0x0073;
        break;
      case 0x0181:
        k = 0x0253;
        break;
      case 0x0186:
        k = 0x0254;
        break;
      case 0x0189:
        k = 0x0256;
        break;
      case 0x018a:
        k = 0x0257;
        break;
      case 0x018e:
        k = 0x01dd;
        break;
      case 0x018f:
        k = 0x0259;
        break;
      case 0x0190:
        k = 0x025b;
        break;
      case 0x0193:
        k = 0x0260;
        break;
      case 0x0194:
        k = 0x0263;
        break;
      case 0x0196:
        k = 0x0269;
        break;
      case 0x0197:
        k = 0x0268;
        break;
      case 0x019c:
        k = 0x026f;
        break;
      case 0x019d:
        k = 0x0272;
        break;
      case 0x019f:
        k = 0x0275;
        break;
      case 0x01a6:
        k = 0x0280;
        break;
      case 0x01a9:
        k = 0x0283;
        break;
      case 0x01ae:
        k = 0x0288;
        break;
      case 0x01b1:
        k = 0x028a;
        break;
      case 0x01b2:
        k = 0x028b;
        break;
      case 0x01b7:
        k = 0x0292;
        break;
      case 0x01c4:
      case 0x01c7:
      case 0x01ca:
      case 0x01f1:
        k = c + 2;
        break;
      case 0x01f6:
        k = 0x0195;
        break;
      case 0x01f7:
        k = 0x01bf;
        break;
      default:
        k = 0;
      }
      if (k != 0)
        return k;
    }
    if (c == 0x0220)
      return 0x019e;
  } else if (c < 0x0400) {
    if (c >= 0x0391 && c <= 0x03ab && c != 0x03a2)
      return (c + 0x20);
    if (c >= 0x03d8 && c <= 0x03ee && !(c & 0x01))
      return (c + 1);
    if (c >= 0x0386 && c <= 0x03f5) {
      int k;
      switch (c) {
      case 0x0386:
        k = 0x03ac;
        break;
      case 0x0388:
        k = 0x03ad;
        break;
      case 0x0389:
        k = 0x03ae;
        break;
      case 0x038a:
        k = 0x03af;
        break;
      case 0x038c:
        k = 0x03cc;
        break;
      case 0x038e:
        k = 0x03cd;
        break;
      case 0x038f:
        k = 0x038f;
        break;
      case 0x03c2:
        k = 0x03c3;
        break;
      case 0x03d0:
        k = 0x03b2;
        break;
      case 0x03d1:
        k = 0x03b8;
        break;
      case 0x03d5:
        k = 0x03c6;
        break;
      case 0x03d6:
        k = 0x03c0;
        break;
      case 0x03f0:
        k = 0x03ba;
        break;
      case 0x03f1:
        k = 0x03c1;
        break;
      case 0x03f2:
        k = 0x03c3;
        break;
      case 0x03f4:
        k = 0x03b8;
        break;
      case 0x03f5:
        k = 0x03b5;
        break;
      default:
        k = 0;
      }
      if (k != 0)
        return k;
    }
    if (c == 0x0345)
      return 0x03b9;
  } else if (c < 0x500) {
    if (c >= 0x0400 && c <= 0x040f)
      return (c + 0x50);
    if (c >= 0x0410 && c <= 0x042f)
      return (c + 0x20);
    if ((c >= 0x0460 && c <= 0x0480) || (c >= 0x048a && c <= 0x04be) ||
        (c >= 0x04d0 && c <= 0x04f4) || (c == 0x04f8)) {
      if (!(c & 0x01))
        return (c + 1);
      return c;
    }
    if (c >= 0x04c1 && c <= 0x04cd) {
      if (c & 0x01)
        return (c + 1);
      return c;
    }
  } else if (c < 0x1f00) {
    if ((c >= 0x0500 && c <= 0x050e) || (c >= 0x1e00 && c <= 0x1e94) ||
        (c >= 0x1ea0 && c <= 0x1ef8)) {
      if (!(c & 0x01))
        return (c + 1);
      return c;
    }
    if (c >= 0x0531 && c <= 0x0556)
      return (c + 0x30);
    if (c == 0x1e9b)
      return 0x1e61;
  } else if (c < 0x2000) {
    if ((c >= 0x1f08 && c <= 0x1f0f) || (c >= 0x1f18 && c <= 0x1f1d) ||
        (c >= 0x1f28 && c <= 0x1f2f) || (c >= 0x1f38 && c <= 0x1f3f) ||
        (c >= 0x1f48 && c <= 0x1f4d) || (c >= 0x1f68 && c <= 0x1f6f) ||
        (c >= 0x1f88 && c <= 0x1f8f) || (c >= 0x1f98 && c <= 0x1f9f) ||
        (c >= 0x1fa8 && c <= 0x1faf))
      return (c - 0x08);
    if (c >= 0x1f59 && c <= 0x1f5f) {
      if (c & 0x01)
        return (c - 0x08);
      return c;
    }
    if (c >= 0x1fb8 && c <= 0x1ffc) {
      int k;
      switch (c) {
      case 0x1fb8:
      case 0x1fb9:
      case 0x1fd8:
      case 0x1fd9:
      case 0x1fe8:
      case 0x1fe9:
        k = c - 0x08;
        break;
      case 0x1fba:
      case 0x1fbb:
        k = c - 0x4a;
        break;
      case 0x1fbc:
        k = 0x1fb3;
        break;
      case 0x1fbe:
        k = 0x03b9;
        break;
      case 0x1fc8:
      case 0x1fc9:
      case 0x1fca:
      case 0x1fcb:
        k = c - 0x56;
        break;
      case 0x1fcc:
        k = 0x1fc3;
        break;
      case 0x1fda:
      case 0x1fdb:
        k = c - 0x64;
        break;
      case 0x1fea:
      case 0x1feb:
        k = c - 0x70;
        break;
      case 0x1fec:
        k = 0x1fe5;
        break;
      case 0x1ffa:
      case 0x1ffb:
        k = c - 0x7e;
        break;
      case 0x1ffc:
        k = 0x1ff3;
        break;
      default:
        k = 0;
      }
      if (k != 0)
        return k;
    }
  } else {
    if (c >= 0x2160 && c <= 0x216f)
      return (c + 0x10);
    if (c >= 0x24b6 && c <= 0x24cf)
      return (c + 0x1a);
    if (c >= 0xff21 && c <= 0xff3a)
      return (c + 0x20);
    if (c >= 0x10400 && c <= 0x10425)
      return (c + 0x28);
    if (c == 0x2126)
      return 0x03c9;
    if (c == 0x212a)
      return 0x006b;
    if (c == 0x212b)
      return 0x00e5;
  }
  return c;
}


x86 assembly (clang, -O0):
<qspToWLower>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
cmpl   $0x100,-0x8(%rbp)
jge    1174 <qspToWLower+0x74>
cmpl   $0x41,-0x8(%rbp)
jl     1128 <qspToWLower+0x28>
cmpl   $0x5a,-0x8(%rbp)
jle    1142 <qspToWLower+0x42>
cmpl   $0xc0,-0x8(%rbp)
jl     1150 <qspToWLower+0x50>
cmpl   $0xde,-0x8(%rbp)
jg     1150 <qspToWLower+0x50>
mov    -0x8(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0xb5,-0x8(%rbp)
jne    1169 <qspToWLower+0x69>
movl   $0x3bc,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x300,-0x8(%rbp)
jge    1461 <qspToWLower+0x361>
cmpl   $0x100,-0x8(%rbp)
jl     119b <qspToWLower+0x9b>
cmpl   $0x12e,-0x8(%rbp)
jle    121d <qspToWLower+0x11d>
cmpl   $0x132,-0x8(%rbp)
jl     11b5 <qspToWLower+0xb5>
cmpl   $0x136,-0x8(%rbp)
jle    121d <qspToWLower+0x11d>
cmpl   $0x14a,-0x8(%rbp)
jl     11cf <qspToWLower+0xcf>
cmpl   $0x176,-0x8(%rbp)
jle    121d <qspToWLower+0x11d>
cmpl   $0x1de,-0x8(%rbp)
jl     11e9 <qspToWLower+0xe9>
cmpl   $0x1ee,-0x8(%rbp)
jle    121d <qspToWLower+0x11d>
cmpl   $0x1f8,-0x8(%rbp)
jl     1203 <qspToWLower+0x103>
cmpl   $0x21e,-0x8(%rbp)
jle    121d <qspToWLower+0x11d>
cmpl   $0x222,-0x8(%rbp)
jl     1245 <qspToWLower+0x145>
cmpl   $0x232,-0x8(%rbp)
jg     1245 <qspToWLower+0x145>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    123a <qspToWLower+0x13a>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x139,-0x8(%rbp)
jl     125f <qspToWLower+0x15f>
cmpl   $0x147,-0x8(%rbp)
jle    1279 <qspToWLower+0x179>
cmpl   $0x1cd,-0x8(%rbp)
jl     12a1 <qspToWLower+0x1a1>
cmpl   $0x91db,-0x8(%rbp)
jg     12a1 <qspToWLower+0x1a1>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1296 <qspToWLower+0x196>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x178,-0x8(%rbp)
jl     1443 <qspToWLower+0x343>
cmpl   $0x1f7,-0x8(%rbp)
jg     1443 <qspToWLower+0x343>
mov    -0x8(%rbp),%eax
add    $0xfffffe88,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x7f,%eax
ja     1422 <qspToWLower+0x322>
mov    -0x20(%rbp),%rax
lea    0xff7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xff,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x73,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x253,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x254,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x256,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x257,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x1dd,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x259,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x25b,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x260,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x263,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x269,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x268,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x26f,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x272,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x275,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x280,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x283,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x288,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x28a,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x28b,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x292,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
mov    -0x8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x195,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x1bf,-0xc(%rbp)
jmp    1429 <qspToWLower+0x329>
movl   $0x0,-0xc(%rbp)
cmpl   $0x0,-0xc(%rbp)
je     143e <qspToWLower+0x33e>
mov    -0xc(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1443 <qspToWLower+0x343>
cmpl   $0x220,-0x8(%rbp)
jne    145c <qspToWLower+0x35c>
movl   $0x19e,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1b60 <qspToWLower+0xa60>
cmpl   $0x400,-0x8(%rbp)
jge    162a <qspToWLower+0x52a>
cmpl   $0x391,-0x8(%rbp)
jl     14a3 <qspToWLower+0x3a3>
cmpl   $0x3ab,-0x8(%rbp)
jg     14a3 <qspToWLower+0x3a3>
cmpl   $0x3a2,-0x8(%rbp)
je     14a3 <qspToWLower+0x3a3>
mov    -0x8(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x3d8,-0x8(%rbp)
jl     14da <qspToWLower+0x3da>
cmpl   $0x3ee,-0x8(%rbp)
jg     14da <qspToWLower+0x3da>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    14da <qspToWLower+0x3da>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x386,-0x8(%rbp)
jl     160c <qspToWLower+0x50c>
cmpl   $0x3f5,-0x8(%rbp)
jg     160c <qspToWLower+0x50c>
mov    -0x8(%rbp),%eax
add    $0xfffffc7a,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x6f,%eax
ja     15eb <qspToWLower+0x4eb>
mov    -0x28(%rbp),%rax
lea    0xbfe(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x3ac,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3ad,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3ae,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3af,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3cc,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3cd,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x38f,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3c3,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3b2,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3b8,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3c6,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3c0,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3ba,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3c1,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3c3,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3b8,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x3b5,-0x10(%rbp)
jmp    15f2 <qspToWLower+0x4f2>
movl   $0x0,-0x10(%rbp)
cmpl   $0x0,-0x10(%rbp)
je     1607 <qspToWLower+0x507>
mov    -0x10(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    160c <qspToWLower+0x50c>
cmpl   $0x345,-0x8(%rbp)
jne    1625 <qspToWLower+0x525>
movl   $0x3b9,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1b5b <qspToWLower+0xa5b>
cmpl   $0x500,-0x8(%rbp)
jge    1751 <qspToWLower+0x651>
cmpl   $0x400,-0x8(%rbp)
jl     165f <qspToWLower+0x55f>
cmpl   $0x40f,-0x8(%rbp)
jg     165f <qspToWLower+0x55f>
mov    -0x8(%rbp),%eax
add    $0x50,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x410,-0x8(%rbp)
jl     1687 <qspToWLower+0x587>
cmpl   $0x42f,-0x8(%rbp)
jg     1687 <qspToWLower+0x587>
mov    -0x8(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x460,-0x8(%rbp)
jl     16a1 <qspToWLower+0x5a1>
cmpl   $0x480,-0x8(%rbp)
jle    16e2 <qspToWLower+0x5e2>
cmpl   $0x48a,-0x8(%rbp)
jl     16bb <qspToWLower+0x5bb>
cmpl   $0x4be,-0x8(%rbp)
jle    16e2 <qspToWLower+0x5e2>
cmpl   $0x4d0,-0x8(%rbp)
jl     16d5 <qspToWLower+0x5d5>
cmpl   $0x4f4,-0x8(%rbp)
jle    16e2 <qspToWLower+0x5e2>
cmpl   $0x4f8,-0x8(%rbp)
jne    170a <qspToWLower+0x60a>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    16ff <qspToWLower+0x5ff>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x4c1,-0x8(%rbp)
jl     174c <qspToWLower+0x64c>
cmpl   $0x4cd,-0x8(%rbp)
jg     174c <qspToWLower+0x64c>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1741 <qspToWLower+0x641>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1b56 <qspToWLower+0xa56>
cmpl   $0x1f00,-0x8(%rbp)
jge    181a <qspToWLower+0x71a>
cmpl   $0x500,-0x8(%rbp)
jl     1778 <qspToWLower+0x678>
cmpl   $0x50e,-0x8(%rbp)
jle    17ac <qspToWLower+0x6ac>
cmpl   $0x1e00,-0x8(%rbp)
jl     1792 <qspToWLower+0x692>
cmpl   $0x1e94,-0x8(%rbp)
jle    17ac <qspToWLower+0x6ac>
cmpl   $0x1ea0,-0x8(%rbp)
jl     17d4 <qspToWLower+0x6d4>
cmpl   $0x1ef8,-0x8(%rbp)
jg     17d4 <qspToWLower+0x6d4>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    17c9 <qspToWLower+0x6c9>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x531,-0x8(%rbp)
jl     17fc <qspToWLower+0x6fc>
cmpl   $0x556,-0x8(%rbp)
jg     17fc <qspToWLower+0x6fc>
mov    -0x8(%rbp),%eax
add    $0x30,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x1e9b,-0x8(%rbp)
jne    1815 <qspToWLower+0x715>
movl   $0x1e61,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1b51 <qspToWLower+0xa51>
cmpl   $0x2000,-0x8(%rbp)
jge    1a5c <qspToWLower+0x95c>
cmpl   $0x1f08,-0x8(%rbp)
jl     1841 <qspToWLower+0x741>
cmpl   $0x1f0f,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f18,-0x8(%rbp)
jl     185b <qspToWLower+0x75b>
cmpl   $0x1f1d,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f28,-0x8(%rbp)
jl     1875 <qspToWLower+0x775>
cmpl   $0x1f2f,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f38,-0x8(%rbp)
jl     188f <qspToWLower+0x78f>
cmpl   $0x1f3f,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f48,-0x8(%rbp)
jl     18a9 <qspToWLower+0x7a9>
cmpl   $0x1f4d,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f68,-0x8(%rbp)
jl     18c3 <qspToWLower+0x7c3>
cmpl   $0x1f6f,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f88,-0x8(%rbp)
jl     18dd <qspToWLower+0x7dd>
cmpl   $0x1f8f,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1f98,-0x8(%rbp)
jl     18f7 <qspToWLower+0x7f7>
cmpl   $0x1f9f,-0x8(%rbp)
jle    1911 <qspToWLower+0x811>
cmpl   $0x1fa8,-0x8(%rbp)
jl     191f <qspToWLower+0x81f>
cmpl   $0x1faf,-0x8(%rbp)
jg     191f <qspToWLower+0x81f>
mov    -0x8(%rbp),%eax
sub    $0x8,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x1f59,-0x8(%rbp)
jl     1961 <qspToWLower+0x861>
cmpl   $0x1f5f,-0x8(%rbp)
jg     1961 <qspToWLower+0x861>
mov    -0x8(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     1956 <qspToWLower+0x856>
mov    -0x8(%rbp),%eax
sub    $0x8,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x1fb8,-0x8(%rbp)
jl     1a57 <qspToWLower+0x957>
cmpl   $0x1ffc,-0x8(%rbp)
jg     1a57 <qspToWLower+0x957>
mov    -0x8(%rbp),%eax
add    $0xffffe048,%eax
mov    %eax,%ecx
mov    %rcx,-0x30(%rbp)
sub    $0x44,%eax
ja     1a36 <qspToWLower+0x936>
mov    -0x30(%rbp),%rax
lea    0x663(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x8(%rbp),%eax
sub    $0x8,%eax
mov    %eax,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
mov    -0x8(%rbp),%eax
sub    $0x4a,%eax
mov    %eax,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
movl   $0x1fb3,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
movl   $0x3b9,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
mov    -0x8(%rbp),%eax
sub    $0x56,%eax
mov    %eax,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
movl   $0x1fc3,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
mov    -0x8(%rbp),%eax
sub    $0x64,%eax
mov    %eax,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
mov    -0x8(%rbp),%eax
sub    $0x70,%eax
mov    %eax,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
movl   $0x1fe5,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
mov    -0x8(%rbp),%eax
sub    $0x7e,%eax
mov    %eax,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
movl   $0x1ff3,-0x14(%rbp)
jmp    1a3d <qspToWLower+0x93d>
movl   $0x0,-0x14(%rbp)
cmpl   $0x0,-0x14(%rbp)
je     1a52 <qspToWLower+0x952>
mov    -0x14(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1a57 <qspToWLower+0x957>
jmp    1b4c <qspToWLower+0xa4c>
cmpl   $0x2160,-0x8(%rbp)
jl     1a84 <qspToWLower+0x984>
cmpl   $0x216f,-0x8(%rbp)
jg     1a84 <qspToWLower+0x984>
mov    -0x8(%rbp),%eax
add    $0x10,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x24b6,-0x8(%rbp)
jl     1aac <qspToWLower+0x9ac>
cmpl   $0x24cf,-0x8(%rbp)
jg     1aac <qspToWLower+0x9ac>
mov    -0x8(%rbp),%eax
add    $0x1a,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0xff21,-0x8(%rbp)
jl     1ad4 <qspToWLower+0x9d4>
cmpl   $0xff3a,-0x8(%rbp)
jg     1ad4 <qspToWLower+0x9d4>
mov    -0x8(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x10400,-0x8(%rbp)
jl     1afc <qspToWLower+0x9fc>
cmpl   $0x10425,-0x8(%rbp)
jg     1afc <qspToWLower+0x9fc>
mov    -0x8(%rbp),%eax
add    $0x28,%eax
mov    %eax,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x2126,-0x8(%rbp)
jne    1b15 <qspToWLower+0xa15>
movl   $0x3c9,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x212a,-0x8(%rbp)
jne    1b2e <qspToWLower+0xa2e>
movl   $0x6b,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
cmpl   $0x212b,-0x8(%rbp)
jne    1b47 <qspToWLower+0xa47>
movl   $0xe5,-0x4(%rbp)
jmp    1b6b <qspToWLower+0xa6b>
jmp    1b4c <qspToWLower+0xa4c>
jmp    1b51 <qspToWLower+0xa51>
jmp    1b56 <qspToWLower+0xa56>
jmp    1b5b <qspToWLower+0xa5b>
jmp    1b60 <qspToWLower+0xa60>
jmp    1b65 <qspToWLower+0xa65>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<qspToWLower>:
cmp    $0xff,%edi
jg     1132 <qspToWLower+0x32>
lea    -0x41(%rdi),%eax
cmp    $0x1a,%eax
jb     12ad <qspToWLower+0x1ad>
lea    -0xc0(%rdi),%eax
cmp    $0x1e,%eax
jbe    12ad <qspToWLower+0x1ad>
cmp    $0xb5,%edi
mov    $0x3bc,%eax
cmovne %edi,%eax
ret
cmp    $0x2ff,%edi
ja     11dc <qspToWLower+0xdc>
movd   %edi,%xmm0
pshufd $0x0,%xmm0,%xmm0
paddd  0xed1(%rip),%xmm0
pxor   0xed9(%rip),%xmm0
movdqa 0xee1(%rip),%xmm1
pcmpgtd %xmm0,%xmm1
movmskps %xmm1,%eax
test   %eax,%eax
jne    137d <qspToWLower+0x27d>
cmp    $0x12f,%edi
jb     137d <qspToWLower+0x27d>
lea    -0x132(%rdi),%eax
cmp    $0x4,%eax
jbe    137d <qspToWLower+0x27d>
cmp    $0x1cc,%edi
ja     1379 <qspToWLower+0x279>
lea    -0x139(%rdi),%eax
cmp    $0xe,%eax
jbe    1379 <qspToWLower+0x279>
cmp    $0x178,%edi
jb     12b0 <qspToWLower+0x1b0>
lea    -0x178(%rdi),%ecx
cmp    $0x53,%ecx
ja     12b0 <qspToWLower+0x1b0>
mov    $0xff,%eax
lea    0x1159(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
add    $0x2,%edi
jmp    12b0 <qspToWLower+0x1b0>
cmp    $0x3ff,%edi
ja     1215 <qspToWLower+0x115>
cmp    $0x3a2,%edi
je     11fb <qspToWLower+0xfb>
lea    -0x391(%rdi),%eax
cmp    $0x1a,%eax
jbe    12ad <qspToWLower+0x1ad>
lea    -0x3d8(%rdi),%eax
cmp    $0x16,%eax
ja     1275 <qspToWLower+0x175>
mov    %edi,%eax
and    $0x1,%eax
jne    1275 <qspToWLower+0x175>
add    $0x1,%edi
jmp    12b0 <qspToWLower+0x1b0>
cmp    $0x4ff,%edi
ja     122d <qspToWLower+0x12d>
cmp    $0x40f,%edi
ja     12a1 <qspToWLower+0x1a1>
add    $0x50,%edi
jmp    12b0 <qspToWLower+0x1b0>
cmp    $0x1eff,%edi
ja     12b3 <qspToWLower+0x1b3>
lea    -0x1ea0(%rdi),%eax
cmp    $0x59,%eax
jb     137d <qspToWLower+0x27d>
cmp    $0x50f,%edi
jb     137d <qspToWLower+0x27d>
lea    -0x1e00(%rdi),%eax
cmp    $0x94,%eax
jbe    137d <qspToWLower+0x27d>
lea    -0x531(%rdi),%eax
cmp    $0x25,%eax
ja     139b <qspToWLower+0x29b>
add    $0x30,%edi
jmp    12b0 <qspToWLower+0x1b0>
lea    -0x386(%rdi),%ecx
cmp    $0x6f,%ecx
ja     132b <qspToWLower+0x22b>
ja     12b0 <qspToWLower+0x1b0>
mov    $0x3ac,%eax
lea    0xed2(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x3c3,%eax
ret
cmp    $0x42f,%edi
ja     1341 <qspToWLower+0x241>
add    $0x20,%edi
mov    %edi,%eax
ret
cmp    $0x1fff,%edi
ja     1387 <qspToWLower+0x287>
movd   %edi,%xmm0
pshufd $0x0,%xmm0,%xmm0
pand   0xd30(%rip),%xmm0
pcmpeqd 0xd38(%rip),%xmm0
movmskps %xmm0,%eax
test   %eax,%eax
jne    13ee <qspToWLower+0x2ee>
mov    %edi,%eax
and    $0xffffffd8,%eax
cmp    $0x1f08,%eax
je     13ee <qspToWLower+0x2ee>
lea    -0x1f48(%rdi),%eax
cmp    $0x6,%eax
jb     13ee <qspToWLower+0x2ee>
lea    -0x1f18(%rdi),%eax
cmp    $0x5,%eax
jbe    13ee <qspToWLower+0x2ee>
lea    -0x1f59(%rdi),%eax
cmp    $0x6,%eax
ja     13c4 <qspToWLower+0x2c4>
lea    -0x8(%rdi),%eax
test   $0x1,%dil
cmove  %edi,%eax
ret
mov    $0x3b9,%eax
cmp    $0x345,%edi
jne    12b0 <qspToWLower+0x1b0>
jmp    12b2 <qspToWLower+0x1b2>
lea    -0x460(%rdi),%eax
cmp    $0x21,%eax
jb     137d <qspToWLower+0x27d>
lea    -0x48a(%rdi),%eax
cmp    $0x35,%eax
jb     137d <qspToWLower+0x27d>
cmp    $0x4f8,%edi
je     137d <qspToWLower+0x27d>
lea    -0x4d0(%rdi),%eax
cmp    $0x24,%eax
jbe    137d <qspToWLower+0x27d>
lea    -0x4c1(%rdi),%eax
cmp    $0xc,%eax
ja     12b0 <qspToWLower+0x1b0>
mov    %edi,%eax
jmp    1381 <qspToWLower+0x281>
mov    %edi,%eax
not    %eax
and    $0x1,%eax
add    %edi,%eax
ret
mov    %edi,%eax
and    $0xfffffff0,%eax
cmp    $0x2160,%eax
jne    13b1 <qspToWLower+0x2b1>
add    $0x10,%edi
jmp    12b0 <qspToWLower+0x1b0>
mov    $0x1e61,%eax
cmp    $0x1e9b,%edi
jne    12b0 <qspToWLower+0x1b0>
jmp    12b2 <qspToWLower+0x1b2>
lea    -0x24b6(%rdi),%eax
cmp    $0x19,%eax
ja     13f6 <qspToWLower+0x2f6>
add    $0x1a,%edi
jmp    12b0 <qspToWLower+0x1b0>
lea    -0x1fb8(%rdi),%ecx
cmp    $0x44,%ecx
ja     12b0 <qspToWLower+0x1b0>
ja     12b0 <qspToWLower+0x1b0>
mov    $0x1fb3,%eax
lea    0xc6b(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
add    $0xfffffff8,%edi
jmp    12b0 <qspToWLower+0x1b0>
lea    -0xff21(%rdi),%eax
cmp    $0x19,%eax
jbe    12ad <qspToWLower+0x1ad>
lea    -0x10400(%rdi),%eax
cmp    $0x25,%eax
ja     141e <qspToWLower+0x31e>
add    $0x28,%edi
jmp    12b0 <qspToWLower+0x1b0>
mov    $0x3b8,%eax
ret
cmp    $0x2126,%edi
je     1516 <qspToWLower+0x416>
cmp    $0x212b,%edi
je     151c <qspToWLower+0x41c>
cmp    $0x212a,%edi
jne    12b0 <qspToWLower+0x1b0>
mov    $0x6b,%eax
ret
mov    $0x3ad,%eax
ret
mov    $0x3ae,%eax
ret
mov    $0x3af,%eax
ret
mov    $0x3cc,%eax
ret
mov    $0x3cd,%eax
ret
mov    $0x38f,%eax
ret
mov    $0x3b2,%eax
ret
mov    $0x3c6,%eax
ret
mov    $0x3c0,%eax
ret
mov    $0x3ba,%eax
ret
mov    $0x3c1,%eax
ret
mov    $0x3b5,%eax
ret
mov    $0x73,%eax
ret
mov    $0x253,%eax
ret
mov    $0x254,%eax
ret
mov    $0x256,%eax
ret
mov    $0x257,%eax
ret
mov    $0x1dd,%eax
ret
mov    $0x259,%eax
ret
mov    $0x25b,%eax
ret
mov    $0x260,%eax
ret
mov    $0x263,%eax
ret
mov    $0x269,%eax
ret
mov    $0x268,%eax
ret
mov    $0x26f,%eax
ret
mov    $0x272,%eax
ret
mov    $0x275,%eax
ret
mov    $0x280,%eax
ret
mov    $0x283,%eax
ret
mov    $0x288,%eax
ret
mov    $0x28a,%eax
ret
mov    $0x28b,%eax
ret
mov    $0x292,%eax
ret
add    $0xffffffaa,%edi
jmp    12b0 <qspToWLower+0x1b0>
mov    $0x3c9,%eax
ret
mov    $0xe5,%eax
ret
add    $0xffffffb6,%edi
jmp    12b0 <qspToWLower+0x1b0>
add    $0xffffff9c,%edi
jmp    12b0 <qspToWLower+0x1b0>
add    $0xffffff90,%edi
jmp    12b0 <qspToWLower+0x1b0>
add    $0xffffff82,%edi
jmp    12b0 <qspToWLower+0x1b0>
mov    $0x3b9,%eax
ret
mov    $0x1fe5,%eax
ret
mov    $0x1ff3,%eax
ret
mov    $0x1fc3,%eax
ret

LLVM IR (-O0):
define i32 @qspToWLower(i32 %0) {
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
store i32 %0, i32* %3
%7 = load i32, i32* %3
%8 = icmp slt i32 %7, 256
br i1 %8, label %9, label %30
9: ; preds = %1
%10 = load i32, i32* %3
%11 = icmp sge i32 %10, 65
br i1 %11, label %12, label %15
12: ; preds = %9
%13 = load i32, i32* %3
%14 = icmp sle i32 %13, 90
br i1 %14, label %21, label %15
15: ; preds = %12, %9
%16 = load i32, i32* %3
%17 = icmp sge i32 %16, 192
br i1 %17, label %18, label %24
18: ; preds = %15
%19 = load i32, i32* %3
%20 = icmp sle i32 %19, 222
br i1 %20, label %21, label %24
21: ; preds = %18, %12
%22 = load i32, i32* %3
%23 = add nsw i32 %22, 32
store i32 %23, i32* %2
br label %495
24: ; preds = %18, %15
%25 = load i32, i32* %3
%26 = icmp eq i32 %25, 181
br i1 %26, label %27, label %28
27: ; preds = %24
store i32 956, i32* %2
br label %495
28: ; preds = %24
%29 = load i32, i32* %3
store i32 %29, i32* %2
br label %495
30: ; preds = %1
%31 = load i32, i32* %3
%32 = icmp slt i32 %31, 768
br i1 %32, label %33, label %149
33: ; preds = %30
%34 = load i32, i32* %3
%35 = icmp sge i32 %34, 256
br i1 %35, label %36, label %39
36: ; preds = %33
%37 = load i32, i32* %3
%38 = icmp sle i32 %37, 302
br i1 %38, label %69, label %39
39: ; preds = %36, %33
%40 = load i32, i32* %3
%41 = icmp sge i32 %40, 306
br i1 %41, label %42, label %45
42: ; preds = %39
%43 = load i32, i32* %3
%44 = icmp sle i32 %43, 310
br i1 %44, label %69, label %45
45: ; preds = %42, %39
%46 = load i32, i32* %3
%47 = icmp sge i32 %46, 330
br i1 %47, label %48, label %51
48: ; preds = %45
%49 = load i32, i32* %3
%50 = icmp sle i32 %49, 374
br i1 %50, label %69, label %51
51: ; preds = %48, %45
%52 = load i32, i32* %3
%53 = icmp sge i32 %52, 478
br i1 %53, label %54, label %57
54: ; preds = %51
%55 = load i32, i32* %3
%56 = icmp sle i32 %55, 494
br i1 %56, label %69, label %57
57: ; preds = %54, %51
%58 = load i32, i32* %3
%59 = icmp sge i32 %58, 504
br i1 %59, label %60, label %63
60: ; preds = %57
%61 = load i32, i32* %3
%62 = icmp sle i32 %61, 542
br i1 %62, label %69, label %63
63: ; preds = %60, %57
%64 = load i32, i32* %3
%65 = icmp sge i32 %64, 546
br i1 %65, label %66, label %78
66: ; preds = %63
%67 = load i32, i32* %3
%68 = icmp sle i32 %67, 562
br i1 %68, label %69, label %78
69: ; preds = %66, %60, %54, %48, %42, %36
%70 = load i32, i32* %3
%71 = and i32 %70, 1
%72 = icmp ne i32 %71, 0
br i1 %72, label %76, label %73
73: ; preds = %69
%74 = load i32, i32* %3
%75 = add nsw i32 %74, 1
store i32 %75, i32* %2
br label %495
76: ; preds = %69
%77 = load i32, i32* %3
store i32 %77, i32* %2
br label %495
78: ; preds = %66, %63
%79 = load i32, i32* %3
%80 = icmp sge i32 %79, 313
br i1 %80, label %81, label %84
81: ; preds = %78
%82 = load i32, i32* %3
%83 = icmp sle i32 %82, 327
br i1 %83, label %90, label %84
84: ; preds = %81, %78
%85 = load i32, i32* %3
%86 = icmp sge i32 %85, 461
br i1 %86, label %87, label %99
87: ; preds = %84
%88 = load i32, i32* %3
%89 = icmp sle i32 %88, 37339
br i1 %89, label %90, label %99
90: ; preds = %87, %81
%91 = load i32, i32* %3
%92 = and i32 %91, 1
%93 = icmp ne i32 %92, 0
br i1 %93, label %94, label %97
94: ; preds = %90
%95 = load i32, i32* %3
%96 = add nsw i32 %95, 1
store i32 %96, i32* %2
br label %495
97: ; preds = %90
%98 = load i32, i32* %3
store i32 %98, i32* %2
br label %495
99: ; preds = %87, %84
%100 = load i32, i32* %3
%101 = icmp sge i32 %100, 376
br i1 %101, label %102, label %144
102: ; preds = %99
%103 = load i32, i32* %3
%104 = icmp sle i32 %103, 503
br i1 %104, label %105, label %144
105: ; preds = %102
%106 = load i32, i32* %3
switch i32 %106, label %137 [
i32 376, label %107
i32 377, label %108
i32 379, label %108
i32 381, label %108
i32 386, label %108
i32 388, label %108
i32 391, label %108
i32 395, label %108
i32 401, label %108
i32 408, label %108
i32 416, label %108
i32 418, label %108
i32 420, label %108
i32 423, label %108
i32 428, label %108
i32 431, label %108
i32 435, label %108
i32 437, label %108
i32 440, label %108
i32 444, label %108
i32 453, label %108
i32 456, label %108
i32 459, label %108
i32 461, label %108
i32 463, label %108
i32 465, label %108
i32 467, label %108
i32 469, label %108
i32 471, label %108
i32 473, label %108
i32 475, label %108
i32 498, label %108
i32 500, label %108
i32 383, label %111
i32 385, label %112
i32 390, label %113
i32 393, label %114
i32 394, label %115
i32 398, label %116
i32 399, label %117
i32 400, label %118
i32 403, label %119
i32 404, label %120
i32 406, label %121
i32 407, label %122
i32 412, label %123
i32 413, label %124
i32 415, label %125
i32 422, label %126
i32 425, label %127
i32 430, label %128
i32 433, label %129
i32 434, label %130
i32 439, label %131
i32 452, label %132
i32 455, label %132
i32 458, label %132
i32 497, label %132
i32 502, label %135
i32 503, label %136
]
107: ; preds = %105
store i32 255, i32* %4
br label %138
108: ; preds = %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105, %105
%109 = load i32, i32* %3
%110 = add nsw i32 %109, 1
store i32 %110, i32* %4
br label %138
111: ; preds = %105
store i32 115, i32* %4
br label %138
112: ; preds = %105
store i32 595, i32* %4
br label %138
113: ; preds = %105
store i32 596, i32* %4
br label %138
114: ; preds = %105
store i32 598, i32* %4
br label %138
115: ; preds = %105
store i32 599, i32* %4
br label %138
116: ; preds = %105
store i32 477, i32* %4
br label %138
117: ; preds = %105
store i32 601, i32* %4
br label %138
118: ; preds = %105
store i32 603, i32* %4
br label %138
119: ; preds = %105
store i32 608, i32* %4
br label %138
120: ; preds = %105
store i32 611, i32* %4
br label %138
121: ; preds = %105
store i32 617, i32* %4
br label %138
122: ; preds = %105
store i32 616, i32* %4
br label %138
123: ; preds = %105
store i32 623, i32* %4
br label %138
124: ; preds = %105
store i32 626, i32* %4
br label %138
125: ; preds = %105
store i32 629, i32* %4
br label %138
126: ; preds = %105
store i32 640, i32* %4
br label %138
127: ; preds = %105
store i32 643, i32* %4
br label %138
128: ; preds = %105
store i32 648, i32* %4
br label %138
129: ; preds = %105
store i32 650, i32* %4
br label %138
130: ; preds = %105
store i32 651, i32* %4
br label %138
131: ; preds = %105
store i32 658, i32* %4
br label %138
132: ; preds = %105, %105, %105, %105
%133 = load i32, i32* %3
%134 = add nsw i32 %133, 2
store i32 %134, i32* %4
br label %138
135: ; preds = %105
store i32 405, i32* %4
br label %138
136: ; preds = %105
store i32 447, i32* %4
br label %138
137: ; preds = %105
store i32 0, i32* %4
br label %138
138: ; preds = %137, %136, %135, %132, %131, %130, %129, %128, %127, %126, %125, %124, %123, %122, %121, %120, %119, %118, %117, %116, %115, %114, %113, %112, %111, %108, %107
%139 = load i32, i32* %4
%140 = icmp ne i32 %139, 0
br i1 %140, label %141, label %143
141: ; preds = %138
%142 = load i32, i32* %4
store i32 %142, i32* %2
br label %495
143: ; preds = %138
br label %144
144: ; preds = %143, %102, %99
%145 = load i32, i32* %3
%146 = icmp eq i32 %145, 544
br i1 %146, label %147, label %148
147: ; preds = %144
store i32 414, i32* %2
br label %495
148: ; preds = %144
br label %492
149: ; preds = %30
%150 = load i32, i32* %3
%151 = icmp slt i32 %150, 1024
br i1 %151, label %152, label %214
152: ; preds = %149
%153 = load i32, i32* %3
%154 = icmp sge i32 %153, 913
br i1 %154, label %155, label %164
155: ; preds = %152
%156 = load i32, i32* %3
%157 = icmp sle i32 %156, 939
br i1 %157, label %158, label %164
158: ; preds = %155
%159 = load i32, i32* %3
%160 = icmp ne i32 %159, 930
br i1 %160, label %161, label %164
161: ; preds = %158
%162 = load i32, i32* %3
%163 = add nsw i32 %162, 32
store i32 %163, i32* %2
br label %495
164: ; preds = %158, %155, %152
%165 = load i32, i32* %3
%166 = icmp sge i32 %165, 984
br i1 %166, label %167, label %177
167: ; preds = %164
%168 = load i32, i32* %3
%169 = icmp sle i32 %168, 1006
br i1 %169, label %170, label %177
170: ; preds = %167
%171 = load i32, i32* %3
%172 = and i32 %171, 1
%173 = icmp ne i32 %172, 0
br i1 %173, label %177, label %174
174: ; preds = %170
%175 = load i32, i32* %3
%176 = add nsw i32 %175, 1
store i32 %176, i32* %2
br label %495
177: ; preds = %170, %167, %164
%178 = load i32, i32* %3
%179 = icmp sge i32 %178, 902
br i1 %179, label %180, label %209
180: ; preds = %177
%181 = load i32, i32* %3
%182 = icmp sle i32 %181, 1013
br i1 %182, label %183, label %209
183: ; preds = %180
%184 = load i32, i32* %3
switch i32 %184, label %202 [
i32 902, label %185
i32 904, label %186
i32 905, label %187
i32 906, label %188
i32 908, label %189
i32 910, label %190
i32 911, label %191
i32 962, label %192
i32 976, label %193
i32 977, label %194
i32 981, label %195
i32 982, label %196
i32 1008, label %197
i32 1009, label %198
i32 1010, label %199
i32 1012, label %200
i32 1013, label %201
]
185: ; preds = %183
store i32 940, i32* %5
br label %203
186: ; preds = %183
store i32 941, i32* %5
br label %203
187: ; preds = %183
store i32 942, i32* %5
br label %203
188: ; preds = %183
store i32 943, i32* %5
br label %203
189: ; preds = %183
store i32 972, i32* %5
br label %203
190: ; preds = %183
store i32 973, i32* %5
br label %203
191: ; preds = %183
store i32 911, i32* %5
br label %203
192: ; preds = %183
store i32 963, i32* %5
br label %203
193: ; preds = %183
store i32 946, i32* %5
br label %203
194: ; preds = %183
store i32 952, i32* %5
br label %203
195: ; preds = %183
store i32 966, i32* %5
br label %203
196: ; preds = %183
store i32 960, i32* %5
br label %203
197: ; preds = %183
store i32 954, i32* %5
br label %203
198: ; preds = %183
store i32 961, i32* %5
br label %203
199: ; preds = %183
store i32 963, i32* %5
br label %203
200: ; preds = %183
store i32 952, i32* %5
br label %203
201: ; preds = %183
store i32 949, i32* %5
br label %203
202: ; preds = %183
store i32 0, i32* %5
br label %203
203: ; preds = %202, %201, %200, %199, %198, %197, %196, %195, %194, %193, %192, %191, %190, %189, %188, %187, %186, %185
%204 = load i32, i32* %5
%205 = icmp ne i32 %204, 0
br i1 %205, label %206, label %208
206: ; preds = %203
%207 = load i32, i32* %5
store i32 %207, i32* %2
br label %495
208: ; preds = %203
br label %209
209: ; preds = %208, %180, %177
%210 = load i32, i32* %3
%211 = icmp eq i32 %210, 837
br i1 %211, label %212, label %213
212: ; preds = %209
store i32 953, i32* %2
br label %495
213: ; preds = %209
br label %491
214: ; preds = %149
%215 = load i32, i32* %3
%216 = icmp slt i32 %215, 1280
br i1 %216, label %217, label %281
217: ; preds = %214
%218 = load i32, i32* %3
%219 = icmp sge i32 %218, 1024
br i1 %219, label %220, label %226
220: ; preds = %217
%221 = load i32, i32* %3
%222 = icmp sle i32 %221, 1039
br i1 %222, label %223, label %226
223: ; preds = %220
%224 = load i32, i32* %3
%225 = add nsw i32 %224, 80
store i32 %225, i32* %2
br label %495
226: ; preds = %220, %217
%227 = load i32, i32* %3
%228 = icmp sge i32 %227, 1040
br i1 %228, label %229, label %235
229: ; preds = %226
%230 = load i32, i32* %3
%231 = icmp sle i32 %230, 1071
br i1 %231, label %232, label %235
232: ; preds = %229
%233 = load i32, i32* %3
%234 = add nsw i32 %233, 32
store i32 %234, i32* %2
br label %495
235: ; preds = %229, %226
%236 = load i32, i32* %3
%237 = icmp sge i32 %236, 1120
br i1 %237, label %238, label %241
238: ; preds = %235
%239 = load i32, i32* %3
%240 = icmp sle i32 %239, 1152
br i1 %240, label %256, label %241
241: ; preds = %238, %235
%242 = load i32, i32* %3
%243 = icmp sge i32 %242, 1162
br i1 %243, label %244, label %247
244: ; preds = %241
%245 = load i32, i32* %3
%246 = icmp sle i32 %245, 1214
br i1 %246, label %256, label %247
247: ; preds = %244, %241
%248 = load i32, i32* %3
%249 = icmp sge i32 %248, 1232
br i1 %249, label %250, label %253
250: ; preds = %247
%251 = load i32, i32* %3
%252 = icmp sle i32 %251, 1268
br i1 %252, label %256, label %253
253: ; preds = %250, %247
%254 = load i32, i32* %3
%255 = icmp eq i32 %254, 1272
br i1 %255, label %256, label %265
256: ; preds = %253, %250, %244, %238
%257 = load i32, i32* %3
%258 = and i32 %257, 1
%259 = icmp ne i32 %258, 0
br i1 %259, label %263, label %260
260: ; preds = %256
%261 = load i32, i32* %3
%262 = add nsw i32 %261, 1
store i32 %262, i32* %2
br label %495
263: ; preds = %256
%264 = load i32, i32* %3
store i32 %264, i32* %2
br label %495
265: ; preds = %253
%266 = load i32, i32* %3
%267 = icmp sge i32 %266, 1217
br i1 %267, label %268, label %280
268: ; preds = %265
%269 = load i32, i32* %3
%270 = icmp sle i32 %269, 1229
br i1 %270, label %271, label %280
271: ; preds = %268
%272 = load i32, i32* %3
%273 = and i32 %272, 1
%274 = icmp ne i32 %273, 0
br i1 %274, label %275, label %278
275: ; preds = %271
%276 = load i32, i32* %3
%277 = add nsw i32 %276, 1
store i32 %277, i32* %2
br label %495
278: ; preds = %271
%279 = load i32, i32* %3
store i32 %279, i32* %2
br label %495
280: ; preds = %268, %265
br label %490
281: ; preds = %214
%282 = load i32, i32* %3
%283 = icmp slt i32 %282, 7936
br i1 %283, label %284, label %325
284: ; preds = %281
%285 = load i32, i32* %3
%286 = icmp sge i32 %285, 1280
br i1 %286, label %287, label %290
287: ; preds = %284
%288 = load i32, i32* %3
%289 = icmp sle i32 %288, 1294
br i1 %289, label %302, label %290
290: ; preds = %287, %284
%291 = load i32, i32* %3
%292 = icmp sge i32 %291, 7680
br i1 %292, label %293, label %296
293: ; preds = %290
%294 = load i32, i32* %3
%295 = icmp sle i32 %294, 7828
br i1 %295, label %302, label %296
296: ; preds = %293, %290
%297 = load i32, i32* %3
%298 = icmp sge i32 %297, 7840
br i1 %298, label %299, label %311
299: ; preds = %296
%300 = load i32, i32* %3
%301 = icmp sle i32 %300, 7928
br i1 %301, label %302, label %311
302: ; preds = %299, %293, %287
%303 = load i32, i32* %3
%304 = and i32 %303, 1
%305 = icmp ne i32 %304, 0
br i1 %305, label %309, label %306
306: ; preds = %302
%307 = load i32, i32* %3
%308 = add nsw i32 %307, 1
store i32 %308, i32* %2
br label %495
309: ; preds = %302
%310 = load i32, i32* %3
store i32 %310, i32* %2
br label %495
311: ; preds = %299, %296
%312 = load i32, i32* %3
%313 = icmp sge i32 %312, 1329
br i1 %313, label %314, label %320
314: ; preds = %311
%315 = load i32, i32* %3
%316 = icmp sle i32 %315, 1366
br i1 %316, label %317, label %320
317: ; preds = %314
%318 = load i32, i32* %3
%319 = add nsw i32 %318, 48
store i32 %319, i32* %2
br label %495
320: ; preds = %314, %311
%321 = load i32, i32* %3
%322 = icmp eq i32 %321, 7835
br i1 %322, label %323, label %324
323: ; preds = %320
store i32 7777, i32* %2
br label %495
324: ; preds = %320
br label %489
325: ; preds = %281
%326 = load i32, i32* %3
%327 = icmp slt i32 %326, 8192
br i1 %327, label %328, label %439
328: ; preds = %325
%329 = load i32, i32* %3
%330 = icmp sge i32 %329, 7944
br i1 %330, label %331, label %334
331: ; preds = %328
%332 = load i32, i32* %3
%333 = icmp sle i32 %332, 7951
br i1 %333, label %382, label %334
334: ; preds = %331, %328
%335 = load i32, i32* %3
%336 = icmp sge i32 %335, 7960
br i1 %336, label %337, label %340
337: ; preds = %334
%338 = load i32, i32* %3
%339 = icmp sle i32 %338, 7965
br i1 %339, label %382, label %340
340: ; preds = %337, %334
%341 = load i32, i32* %3
%342 = icmp sge i32 %341, 7976
br i1 %342, label %343, label %346
343: ; preds = %340
%344 = load i32, i32* %3
%345 = icmp sle i32 %344, 7983
br i1 %345, label %382, label %346
346: ; preds = %343, %340
%347 = load i32, i32* %3
%348 = icmp sge i32 %347, 7992
br i1 %348, label %349, label %352
349: ; preds = %346
%350 = load i32, i32* %3
%351 = icmp sle i32 %350, 7999
br i1 %351, label %382, label %352
352: ; preds = %349, %346
%353 = load i32, i32* %3
%354 = icmp sge i32 %353, 8008
br i1 %354, label %355, label %358
355: ; preds = %352
%356 = load i32, i32* %3
%357 = icmp sle i32 %356, 8013
br i1 %357, label %382, label %358
358: ; preds = %355, %352
%359 = load i32, i32* %3
%360 = icmp sge i32 %359, 8040
br i1 %360, label %361, label %364
361: ; preds = %358
%362 = load i32, i32* %3
%363 = icmp sle i32 %362, 8047
br i1 %363, label %382, label %364
364: ; preds = %361, %358
%365 = load i32, i32* %3
%366 = icmp sge i32 %365, 8072
br i1 %366, label %367, label %370
367: ; preds = %364
%368 = load i32, i32* %3
%369 = icmp sle i32 %368, 8079
br i1 %369, label %382, label %370
370: ; preds = %367, %364
%371 = load i32, i32* %3
%372 = icmp sge i32 %371, 8088
br i1 %372, label %373, label %376
373: ; preds = %370
%374 = load i32, i32* %3
%375 = icmp sle i32 %374, 8095
br i1 %375, label %382, label %376
376: ; preds = %373, %370
%377 = load i32, i32* %3
%378 = icmp sge i32 %377, 8104
br i1 %378, label %379, label %385
379: ; preds = %376
%380 = load i32, i32* %3
%381 = icmp sle i32 %380, 8111
br i1 %381, label %382, label %385
382: ; preds = %379, %373, %367, %361, %355, %349, %343, %337, %331
%383 = load i32, i32* %3
%384 = sub nsw i32 %383, 8
store i32 %384, i32* %2
br label %495
385: ; preds = %379, %376
%386 = load i32, i32* %3
%387 = icmp sge i32 %386, 8025
br i1 %387, label %388, label %400
388: ; preds = %385
%389 = load i32, i32* %3
%390 = icmp sle i32 %389, 8031
br i1 %390, label %391, label %400
391: ; preds = %388
%392 = load i32, i32* %3
%393 = and i32 %392, 1
%394 = icmp ne i32 %393, 0
br i1 %394, label %395, label %398
395: ; preds = %391
%396 = load i32, i32* %3
%397 = sub nsw i32 %396, 8
store i32 %397, i32* %2
br label %495
398: ; preds = %391
%399 = load i32, i32* %3
store i32 %399, i32* %2
br label %495
400: ; preds = %388, %385
%401 = load i32, i32* %3
%402 = icmp sge i32 %401, 8120
br i1 %402, label %403, label %438
403: ; preds = %400
%404 = load i32, i32* %3
%405 = icmp sle i32 %404, 8188
br i1 %405, label %406, label %438
406: ; preds = %403
%407 = load i32, i32* %3
switch i32 %407, label %431 [
i32 8120, label %408
i32 8121, label %408
i32 8152, label %408
i32 8153, label %408
i32 8168, label %408
i32 8169, label %408
i32 8122, label %411
i32 8123, label %411
i32 8124, label %414
i32 8126, label %415
i32 8136, label %416
i32 8137, label %416
i32 8138, label %416
i32 8139, label %416
i32 8140, label %419
i32 8154, label %420
i32 8155, label %420
i32 8170, label %423
i32 8171, label %423
i32 8172, label %426
i32 8186, label %427
i32 8187, label %427
i32 8188, label %430
]
408: ; preds = %406, %406, %406, %406, %406, %406
%409 = load i32, i32* %3
%410 = sub nsw i32 %409, 8
store i32 %410, i32* %6
br label %432
411: ; preds = %406, %406
%412 = load i32, i32* %3
%413 = sub nsw i32 %412, 74
store i32 %413, i32* %6
br label %432
414: ; preds = %406
store i32 8115, i32* %6
br label %432
415: ; preds = %406
store i32 953, i32* %6
br label %432
416: ; preds = %406, %406, %406, %406
%417 = load i32, i32* %3
%418 = sub nsw i32 %417, 86
store i32 %418, i32* %6
br label %432
419: ; preds = %406
store i32 8131, i32* %6
br label %432
420: ; preds = %406, %406
%421 = load i32, i32* %3
%422 = sub nsw i32 %421, 100
store i32 %422, i32* %6
br label %432
423: ; preds = %406, %406
%424 = load i32, i32* %3
%425 = sub nsw i32 %424, 112
store i32 %425, i32* %6
br label %432
426: ; preds = %406
store i32 8165, i32* %6
br label %432
427: ; preds = %406, %406
%428 = load i32, i32* %3
%429 = sub nsw i32 %428, 126
store i32 %429, i32* %6
br label %432
430: ; preds = %406
store i32 8179, i32* %6
br label %432
431: ; preds = %406
store i32 0, i32* %6
br label %432
432: ; preds = %431, %430, %427, %426, %423, %420, %419, %416, %415, %414, %411, %408
%433 = load i32, i32* %6
%434 = icmp ne i32 %433, 0
br i1 %434, label %435, label %437
435: ; preds = %432
%436 = load i32, i32* %6
store i32 %436, i32* %2
br label %495
437: ; preds = %432
br label %438
438: ; preds = %437, %403, %400
br label %488
439: ; preds = %325
%440 = load i32, i32* %3
%441 = icmp sge i32 %440, 8544
br i1 %441, label %442, label %448
442: ; preds = %439
%443 = load i32, i32* %3
%444 = icmp sle i32 %443, 8559
br i1 %444, label %445, label %448
445: ; preds = %442
%446 = load i32, i32* %3
%447 = add nsw i32 %446, 16
store i32 %447, i32* %2
br label %495
448: ; preds = %442, %439
%449 = load i32, i32* %3
%450 = icmp sge i32 %449, 9398
br i1 %450, label %451, label %457
451: ; preds = %448
%452 = load i32, i32* %3
%453 = icmp sle i32 %452, 9423
br i1 %453, label %454, label %457
454: ; preds = %451
%455 = load i32, i32* %3
%456 = add nsw i32 %455, 26
store i32 %456, i32* %2
br label %495
457: ; preds = %451, %448
%458 = load i32, i32* %3
%459 = icmp sge i32 %458, 65313
br i1 %459, label %460, label %466
460: ; preds = %457
%461 = load i32, i32* %3
%462 = icmp sle i32 %461, 65338
br i1 %462, label %463, label %466
463: ; preds = %460
%464 = load i32, i32* %3
%465 = add nsw i32 %464, 32
store i32 %465, i32* %2
br label %495
466: ; preds = %460, %457
%467 = load i32, i32* %3
%468 = icmp sge i32 %467, 66560
br i1 %468, label %469, label %475
469: ; preds = %466
%470 = load i32, i32* %3
%471 = icmp sle i32 %470, 66597
br i1 %471, label %472, label %475
472: ; preds = %469
%473 = load i32, i32* %3
%474 = add nsw i32 %473, 40
store i32 %474, i32* %2
br label %495
475: ; preds = %469, %466
%476 = load i32, i32* %3
%477 = icmp eq i32 %476, 8486
br i1 %477, label %478, label %479
478: ; preds = %475
store i32 969, i32* %2
br label %495
479: ; preds = %475
%480 = load i32, i32* %3
%481 = icmp eq i32 %480, 8490
br i1 %481, label %482, label %483
482: ; preds = %479
store i32 107, i32* %2
br label %495
483: ; preds = %479
%484 = load i32, i32* %3
%485 = icmp eq i32 %484, 8491
br i1 %485, label %486, label %487
486: ; preds = %483
store i32 229, i32* %2
br label %495
487: ; preds = %483
br label %488
488: ; preds = %487, %438
br label %489
489: ; preds = %488, %324
br label %490
490: ; preds = %489, %280
br label %491
491: ; preds = %490, %213
br label %492
492: ; preds = %491, %148
br label %493
493: ; preds = %492
%494 = load i32, i32* %3
store i32 %494, i32* %2
br label %495
495: ; preds = %493, %486, %482, %478, %472, %463, %454, %445, %435, %398, %395, %382, %323, %317, %309, %306, %278, %275, %263, %260, %232, %223, %212, %206, %174, %161, %147, %141, %97, %94, %76, %73, %28, %27, %21
%496 = load i32, i32* %2
ret i32 %496
}

LLVM IR (-O2):
define i32 @qspToWLower(i32 %0) {
%2 = icmp slt i32 %0, 256
br i1 %2, label %3, label %14
3: ; preds = %1
%4 = add i32 %0, -65
%5 = icmp ult i32 %4, 26
%6 = add i32 %0, -192
%7 = icmp ult i32 %6, 31
%8 = or i1 %5, %7
br i1 %8, label %9, label %11
9: ; preds = %3
%10 = add nuw nsw i32 %0, 32
br label %232
11: ; preds = %3
%12 = icmp eq i32 %0, 181
%13 = select i1 %12, i32 956, i32 %0
br label %232
14: ; preds = %1
%15 = icmp ult i32 %0, 768
br i1 %15, label %16, label %68
16: ; preds = %14
%17 = icmp ult i32 %0, 303
%18 = add nsw i32 %0, -306
%19 = icmp ult i32 %18, 5
%20 = insertelement <4 x i32> poison, i32 %0, i64 0
%21 = shufflevector <4 x i32> %20, <4 x i32> poison, <4 x i32> zeroinitializer
%22 = add nsw <4 x i32> %21, <i32 -546, i32 -504, i32 -478, i32 -330>
%23 = icmp ult <4 x i32> %22, <i32 17, i32 39, i32 17, i32 45>
%24 = bitcast <4 x i1> %23 to i4
%25 = icmp ne i4 %24, 0
%26 = or i1 %25, %17
%27 = or i1 %26, %19
br i1 %27, label %28, label %32
28: ; preds = %16
%29 = and i32 %0, 1
%30 = xor i32 %29, 1
%31 = add nuw nsw i32 %30, %0
br label %232
32: ; preds = %16
%33 = add nsw i32 %0, -313
%34 = icmp ult i32 %33, 15
%35 = icmp ugt i32 %0, 460
%36 = or i1 %35, %34
br i1 %36, label %37, label %40
37: ; preds = %32
%38 = and i32 %0, 1
%39 = add nuw nsw i32 %38, %0
br label %232
40: ; preds = %32
%41 = icmp ugt i32 %0, 375
br i1 %41, label %42, label %231
42: ; preds = %40
switch i32 %0, label %231 [
i32 376, label %232
i32 377, label %43
i32 379, label %43
i32 381, label %43
i32 386, label %43
i32 388, label %43
i32 391, label %43
i32 395, label %43
i32 401, label %43
i32 408, label %43
i32 416, label %43
i32 418, label %43
i32 420, label %43
i32 423, label %43
i32 428, label %43
i32 431, label %43
i32 435, label %43
i32 437, label %43
i32 440, label %43
i32 444, label %43
i32 453, label %43
i32 456, label %43
i32 459, label %43
i32 458, label %66
i32 455, label %66
i32 452, label %66
i32 439, label %65
i32 434, label %64
i32 433, label %63
i32 430, label %62
i32 425, label %61
i32 422, label %60
i32 415, label %59
i32 383, label %45
i32 385, label %46
i32 390, label %47
i32 393, label %48
i32 394, label %49
i32 398, label %50
i32 399, label %51
i32 400, label %52
i32 403, label %53
i32 404, label %54
i32 406, label %55
i32 407, label %56
i32 412, label %57
i32 413, label %58
]
43: ; preds = %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42, %42
%44 = add nuw nsw i32 %0, 1
br label %232
45: ; preds = %42
br label %232
46: ; preds = %42
br label %232
47: ; preds = %42
br label %232
48: ; preds = %42
br label %232
49: ; preds = %42
br label %232
50: ; preds = %42
br label %232
51: ; preds = %42
br label %232
52: ; preds = %42
br label %232
53: ; preds = %42
br label %232
54: ; preds = %42
br label %232
55: ; preds = %42
br label %232
56: ; preds = %42
br label %232
57: ; preds = %42
br label %232
58: ; preds = %42
br label %232
59: ; preds = %42
br label %232
60: ; preds = %42
br label %232
61: ; preds = %42
br label %232
62: ; preds = %42
br label %232
63: ; preds = %42
br label %232
64: ; preds = %42
br label %232
65: ; preds = %42
br label %232
66: ; preds = %42, %42, %42
%67 = add nuw nsw i32 %0, 2
br label %232
68: ; preds = %14
%69 = icmp ult i32 %0, 1024
br i1 %69, label %70, label %107
70: ; preds = %68
%71 = add nsw i32 %0, -913
%72 = icmp ult i32 %71, 27
%73 = icmp ne i32 %0, 930
%74 = and i1 %73, %72
br i1 %74, label %75, label %77
75: ; preds = %70
%76 = add nuw nsw i32 %0, 32
br label %232
77: ; preds = %70
%78 = add nsw i32 %0, -984
%79 = icmp ult i32 %78, 23
%80 = and i32 %0, 1
%81 = icmp eq i32 %80, 0
%82 = and i1 %79, %81
br i1 %82, label %83, label %85
83: ; preds = %77
%84 = add nuw nsw i32 %0, 1
br label %232
85: ; preds = %77
%86 = add nsw i32 %0, -902
%87 = icmp ult i32 %86, 112
br i1 %87, label %88, label %105
88: ; preds = %85
switch i32 %0, label %231 [
i32 902, label %232
i32 904, label %89
i32 905, label %90
i32 906, label %91
i32 908, label %92
i32 910, label %93
i32 911, label %94
i32 962, label %95
i32 976, label %96
i32 977, label %97
i32 981, label %98
i32 982, label %99
i32 1008, label %100
i32 1009, label %101
i32 1010, label %102
i32 1012, label %103
i32 1013, label %104
]
89: ; preds = %88
br label %232
90: ; preds = %88
br label %232
91: ; preds = %88
br label %232
92: ; preds = %88
br label %232
93: ; preds = %88
br label %232
94: ; preds = %88
br label %232
95: ; preds = %88
br label %232
96: ; preds = %88
br label %232
97: ; preds = %88
br label %232
98: ; preds = %88
br label %232
99: ; preds = %88
br label %232
100: ; preds = %88
br label %232
101: ; preds = %88
br label %232
102: ; preds = %88
br label %232
103: ; preds = %88
br label %232
104: ; preds = %88
br label %232
105: ; preds = %85
%106 = icmp eq i32 %0, 837
br i1 %106, label %232, label %231
107: ; preds = %68
%108 = icmp ult i32 %0, 1280
br i1 %108, label %109, label %138
109: ; preds = %107
%110 = icmp ult i32 %0, 1040
br i1 %110, label %111, label %113
111: ; preds = %109
%112 = add nuw nsw i32 %0, 80
br label %232
113: ; preds = %109
%114 = icmp ult i32 %0, 1072
br i1 %114, label %115, label %117
115: ; preds = %113
%116 = add nuw nsw i32 %0, 32
br label %232
117: ; preds = %113
%118 = add nsw i32 %0, -1120
%119 = icmp ult i32 %118, 33
%120 = add nsw i32 %0, -1162
%121 = icmp ult i32 %120, 53
%122 = or i1 %119, %121
br i1 %122, label %128, label %123
123: ; preds = %117
%124 = add nsw i32 %0, -1232
%125 = icmp ult i32 %124, 37
%126 = icmp eq i32 %0, 1272
%127 = or i1 %126, %125
br i1 %127, label %128, label %132
128: ; preds = %123, %117
%129 = and i32 %0, 1
%130 = xor i32 %129, 1
%131 = add nuw nsw i32 %130, %0
br label %232
132: ; preds = %123
%133 = add nsw i32 %0, -1217
%134 = icmp ult i32 %133, 13
br i1 %134, label %135, label %231
135: ; preds = %132
%136 = and i32 %0, 1
%137 = add nuw nsw i32 %136, %0
br label %232
138: ; preds = %107
%139 = icmp ult i32 %0, 7936
br i1 %139, label %140, label %159
140: ; preds = %138
%141 = icmp ult i32 %0, 1295
%142 = add nsw i32 %0, -7680
%143 = icmp ult i32 %142, 149
%144 = or i1 %141, %143
%145 = add nsw i32 %0, -7840
%146 = icmp ult i32 %145, 89
%147 = or i1 %146, %144
br i1 %147, label %148, label %152
148: ; preds = %140
%149 = and i32 %0, 1
%150 = xor i32 %149, 1
%151 = add nuw nsw i32 %150, %0
br label %232
152: ; preds = %140
%153 = add nsw i32 %0, -1329
%154 = icmp ult i32 %153, 38
br i1 %154, label %155, label %157
155: ; preds = %152
%156 = add nuw nsw i32 %0, 48
br label %232
157: ; preds = %152
%158 = icmp eq i32 %0, 7835
br i1 %158, label %232, label %231
159: ; preds = %138
%160 = icmp ult i32 %0, 8192
br i1 %160, label %161, label %208
161: ; preds = %159
%162 = add nsw i32 %0, -7960
%163 = icmp ult i32 %162, 6
%164 = and i32 %0, -40
%165 = icmp eq i32 %164, 7944
%166 = insertelement <2 x i32> poison, i32 %0, i64 0
%167 = shufflevector <2 x i32> %166, <2 x i32> poison, <2 x i32> zeroinitializer
%168 = and <2 x i32> %167, <i32 -8, i32 -24>
%169 = shufflevector <2 x i32> %168, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 0>
%170 = icmp eq <4 x i32> %169, <i32 8104, i32 8072, i32 8040, i32 7992>
%171 = add nsw i32 %0, -8008
%172 = icmp ult i32 %171, 6
%173 = bitcast <4 x i1> %170 to i4
%174 = icmp ne i4 %173, 0
%175 = or i1 %174, %165
%176 = or i1 %175, %172
%177 = or i1 %176, %163
br i1 %177, label %178, label %180
178: ; preds = %161
%179 = add nsw i32 %0, -8
br label %232
180: ; preds = %161
%181 = add nsw i32 %0, -8025
%182 = icmp ult i32 %181, 7
br i1 %182, label %183, label %188
183: ; preds = %180
%184 = and i32 %0, 1
%185 = icmp eq i32 %184, 0
%186 = add nsw i32 %0, -8
%187 = select i1 %185, i32 %0, i32 %186
br label %232
188: ; preds = %180
%189 = add nsw i32 %0, -8120
%190 = icmp ult i32 %189, 69
br i1 %190, label %191, label %231
191: ; preds = %188
switch i32 %0, label %231 [
i32 8120, label %192
i32 8121, label %192
i32 8152, label %192
i32 8153, label %192
i32 8168, label %192
i32 8169, label %192
i32 8122, label %194
i32 8123, label %194
i32 8124, label %232
i32 8126, label %196
i32 8136, label %197
i32 8137, label %197
i32 8138, label %197
i32 8139, label %197
i32 8140, label %199
i32 8154, label %200
i32 8155, label %200
i32 8170, label %202
i32 8171, label %202
i32 8172, label %204
i32 8186, label %205
i32 8187, label %205
i32 8188, label %207
]
192: ; preds = %191, %191, %191, %191, %191, %191
%193 = add nsw i32 %0, -8
br label %232
194: ; preds = %191, %191
%195 = add nsw i32 %0, -74
br label %232
196: ; preds = %191
br label %232
197: ; preds = %191, %191, %191, %191
%198 = add nsw i32 %0, -86
br label %232
199: ; preds = %191
br label %232
200: ; preds = %191, %191
%201 = add nsw i32 %0, -100
br label %232
202: ; preds = %191, %191
%203 = add nsw i32 %0, -112
br label %232
204: ; preds = %191
br label %232
205: ; preds = %191, %191
%206 = add nsw i32 %0, -126
br label %232
207: ; preds = %191
br label %232
208: ; preds = %159
%209 = and i32 %0, -16
%210 = icmp eq i32 %209, 8544
br i1 %210, label %211, label %213
211: ; preds = %208
%212 = add nuw nsw i32 %0, 16
br label %232
213: ; preds = %208
%214 = add nsw i32 %0, -9398
%215 = icmp ult i32 %214, 26
br i1 %215, label %216, label %218
216: ; preds = %213
%217 = add nuw nsw i32 %0, 26
br label %232
218: ; preds = %213
%219 = add nsw i32 %0, -65313
%220 = icmp ult i32 %219, 26
br i1 %220, label %221, label %223
221: ; preds = %218
%222 = add nuw nsw i32 %0, 32
br label %232
223: ; preds = %218
%224 = add nsw i32 %0, -66560
%225 = icmp ult i32 %224, 38
br i1 %225, label %226, label %228
226: ; preds = %223
%227 = add nuw nsw i32 %0, 40
br label %232
228: ; preds = %223
switch i32 %0, label %231 [
i32 8486, label %232
i32 8490, label %229
i32 8491, label %230
]
229: ; preds = %228
br label %232
230: ; preds = %228
br label %232
231: ; preds = %191, %88, %42, %40, %228, %132, %188, %157, %105
br label %232
232: ; preds = %191, %192, %194, %196, %197, %199, %200, %202, %204, %205, %207, %88, %89, %90, %91, %92, %93, %94, %95, %96, %97, %98, %99, %100, %101, %102, %103, %104, %42, %43, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54, %55, %56, %57, %58, %59, %60, %61, %62, %63, %64, %65, %66, %183, %148, %135, %128, %37, %28, %228, %157, %105, %11, %231, %230, %229, %226, %221, %216, %211, %178, %155, %115, %111, %83, %75, %9
%233 = phi i32 [ %10, %9 ], [ %0, %231 ], [ %76, %75 ], [ %84, %83 ], [ %112, %111 ], [ %116, %115 ], [ %156, %155 ], [ %179, %178 ], [ %212, %211 ], [ %217, %216 ], [ %222, %221 ], [ %227, %226 ], [ 107, %229 ], [ 229, %230 ], [ %13, %11 ], [ 953, %105 ], [ 7777, %157 ], [ 969, %228 ], [ %31, %28 ], [ %39, %37 ], [ %131, %128 ], [ %137, %135 ], [ %151, %148 ], [ %187, %183 ], [ 255, %42 ], [ %44, %43 ], [ 115, %45 ], [ 595, %46 ], [ 596, %47 ], [ 598, %48 ], [ 599, %49 ], [ 477, %50 ], [ 601, %51 ], [ 603, %52 ], [ 608, %53 ], [ 611, %54 ], [ 617, %55 ], [ 616, %56 ], [ 623, %57 ], [ 626, %58 ], [ 629, %59 ], [ 640, %60 ], [ 643, %61 ], [ 648, %62 ], [ 650, %63 ], [ 651, %64 ], [ 658, %65 ], [ %67, %66 ], [ 940, %88 ], [ 941, %89 ], [ 942, %90 ], [ 943, %91 ], [ 972, %92 ], [ 973, %93 ], [ 911, %94 ], [ 963, %95 ], [ 946, %96 ], [ 952, %97 ], [ 966, %98 ], [ 960, %99 ], [ 954, %100 ], [ 961, %101 ], [ 963, %102 ], [ 952, %103 ], [ 949, %104 ], [ 8115, %191 ], [ %193, %192 ], [ %195, %194 ], [ 953, %196 ], [ %198, %197 ], [ 8131, %199 ], [ %201, %200 ], [ %203, %202 ], [ 8165, %204 ], [ %206, %205 ], [ 8179, %207 ]
ret i32 %233
}