user: 请将以下的汇编代码转换成C语言代码：

```asm
<IsAlpha>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  cmpl   $0x0,-0x4(%rbp)
  jne    L372
  mov    -0x8(%rbp),%eax
  mov    %eax,%edi
  call   <isalpha@plt>
  jmp    L2369
L372:
  cmpl   $0x40,-0x8(%rbp)
  jle    L1006
  cmpl   $0x5a,-0x8(%rbp)
  jg     L1006
  mov    $0x1,%eax
  jmp    L2369
L1006:
  cmpl   $0x60,-0x8(%rbp)
  jle    L2981
  cmpl   $0x7a,-0x8(%rbp)
  jg     L2981
  mov    $0x1,%eax
  jmp    L2369
L2981:
  cmpl   $0x12,-0x4(%rbp)
  ja     L706
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D19(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D19(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  cmpl   $0xaa,-0x8(%rbp)
  jne    L3085
  mov    $0x1,%eax
  jmp    L2369
L3085:
  cmpl   $0xb5,-0x8(%rbp)
  jne    L2782
  mov    $0x1,%eax
  jmp    L2369
L2782:
  cmpl   $0xba,-0x8(%rbp)
  jne    L2684
  mov    $0x1,%eax
  jmp    L2369
L2684:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L2877
  cmpl   $0xd6,-0x8(%rbp)
  jg     L2877
  mov    $0x1,%eax
  jmp    L2369
L2877:
  cmpl   $0xd7,-0x8(%rbp)
  jle    L777
  cmpl   $0xf6,-0x8(%rbp)
  jg     L777
  mov    $0x1,%eax
  jmp    L2369
L777:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L2211
  cmpl   $0xff,-0x8(%rbp)
  jg     L2211
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa1,-0x8(%rbp)
  je     L800
  cmpl   $0xa3,-0x8(%rbp)
  jne    L2881
L800:
  mov    $0x1,%eax
  jmp    L2369
L2881:
  cmpl   $0xa5,-0x8(%rbp)
  je     L2781
  cmpl   $0xa6,-0x8(%rbp)
  jne    L1340
L2781:
  mov    $0x1,%eax
  jmp    L2369
L1340:
  cmpl   $0xa8,-0x8(%rbp)
  jle    L1769
  cmpl   $0xac,-0x8(%rbp)
  jg     L1769
  mov    $0x1,%eax
  jmp    L2369
L1769:
  cmpl   $0xad,-0x8(%rbp)
  jle    L762
  cmpl   $0xaf,-0x8(%rbp)
  jg     L762
  mov    $0x1,%eax
  jmp    L2369
L762:
  cmpl   $0xb1,-0x8(%rbp)
  je     L216
  cmpl   $0xb3,-0x8(%rbp)
  jne    L879
L216:
  mov    $0x1,%eax
  jmp    L2369
L879:
  cmpl   $0xb5,-0x8(%rbp)
  je     L1573
  cmpl   $0xb6,-0x8(%rbp)
  jne    L2245
L1573:
  mov    $0x1,%eax
  jmp    L2369
L2245:
  cmpl   $0xb8,-0x8(%rbp)
  jle    L649
  cmpl   $0xbc,-0x8(%rbp)
  jg     L649
  mov    $0x1,%eax
  jmp    L2369
L649:
  cmpl   $0xbd,-0x8(%rbp)
  jle    L577
  cmpl   $0xbf,-0x8(%rbp)
  jg     L577
  mov    $0x1,%eax
  jmp    L2369
L577:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L299
  cmpl   $0xd6,-0x8(%rbp)
  jg     L299
  mov    $0x1,%eax
  jmp    L2369
L299:
  cmpl   $0xd7,-0x8(%rbp)
  jle    L847
  cmpl   $0xf6,-0x8(%rbp)
  jg     L847
  mov    $0x1,%eax
  jmp    L2369
L847:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L1256
  cmpl   $0xfe,-0x8(%rbp)
  jg     L1256
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa1,-0x8(%rbp)
  jne    L2188
  mov    $0x1,%eax
  jmp    L2369
L2188:
  cmpl   $0xa6,-0x8(%rbp)
  jne    L1432
  mov    $0x1,%eax
  jmp    L2369
L1432:
  cmpl   $0xa8,-0x8(%rbp)
  jle    L2885
  cmpl   $0xac,-0x8(%rbp)
  jg     L2885
  mov    $0x1,%eax
  jmp    L2369
L2885:
  cmpl   $0xaf,-0x8(%rbp)
  jne    L2850
  mov    $0x1,%eax
  jmp    L2369
L2850:
  cmpl   $0xb1,-0x8(%rbp)
  jne    L2682
  mov    $0x1,%eax
  jmp    L2369
L2682:
  cmpl   $0xb5,-0x8(%rbp)
  je     L2242
  cmpl   $0xb6,-0x8(%rbp)
  jne    L1811
L2242:
  mov    $0x1,%eax
  jmp    L2369
L1811:
  cmpl   $0xb8,-0x8(%rbp)
  jle    L2661
  cmpl   $0xbc,-0x8(%rbp)
  jg     L2661
  mov    $0x1,%eax
  jmp    L2369
L2661:
  cmpl   $0xbf,-0x8(%rbp)
  jne    L775
  mov    $0x1,%eax
  jmp    L2369
L775:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L902
  cmpl   $0xc2,-0x8(%rbp)
  jg     L902
  mov    $0x1,%eax
  jmp    L2369
L902:
  cmpl   $0xc3,-0x8(%rbp)
  jle    L1678
  cmpl   $0xcf,-0x8(%rbp)
  jg     L1678
  mov    $0x1,%eax
  jmp    L2369
L1678:
  cmpl   $0xd0,-0x8(%rbp)
  jle    L2352
  cmpl   $0xd6,-0x8(%rbp)
  jg     L2352
  mov    $0x1,%eax
  jmp    L2369
L2352:
  cmpl   $0xd7,-0x8(%rbp)
  jle    L2255
  cmpl   $0xe2,-0x8(%rbp)
  jg     L2255
  mov    $0x1,%eax
  jmp    L2369
L2255:
  cmpl   $0xe3,-0x8(%rbp)
  jle    L478
  cmpl   $0xef,-0x8(%rbp)
  jg     L478
  mov    $0x1,%eax
  jmp    L2369
L478:
  cmpl   $0xf0,-0x8(%rbp)
  jle    L787
  cmpl   $0xf6,-0x8(%rbp)
  jg     L787
  mov    $0x1,%eax
  jmp    L2369
L787:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L728
  cmpl   $0xfe,-0x8(%rbp)
  jg     L728
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa0,-0x8(%rbp)
  jle    L835
  cmpl   $0xa3,-0x8(%rbp)
  jg     L835
  mov    $0x1,%eax
  jmp    L2369
L835:
  cmpl   $0xa5,-0x8(%rbp)
  je     L2059
  cmpl   $0xa6,-0x8(%rbp)
  jne    L1371
L2059:
  mov    $0x1,%eax
  jmp    L2369
L1371:
  cmpl   $0xa8,-0x8(%rbp)
  jle    L490
  cmpl   $0xac,-0x8(%rbp)
  jg     L490
  mov    $0x1,%eax
  jmp    L2369
L490:
  cmpl   $0xae,-0x8(%rbp)
  jne    L2041
  mov    $0x1,%eax
  jmp    L2369
L2041:
  cmpl   $0xb1,-0x8(%rbp)
  je     L343
  cmpl   $0xb3,-0x8(%rbp)
  jne    L3180
L343:
  mov    $0x1,%eax
  jmp    L2369
L3180:
  cmpl   $0xb5,-0x8(%rbp)
  je     L2098
  cmpl   $0xb6,-0x8(%rbp)
  jne    L359
L2098:
  mov    $0x1,%eax
  jmp    L2369
L359:
  cmpl   $0xb8,-0x8(%rbp)
  jle    L825
  cmpl   $0xbf,-0x8(%rbp)
  jg     L825
  mov    $0x1,%eax
  jmp    L2369
L825:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L3005
  cmpl   $0xd6,-0x8(%rbp)
  jg     L3005
  mov    $0x1,%eax
  jmp    L2369
L3005:
  cmpl   $0xd7,-0x8(%rbp)
  jle    L2585
  cmpl   $0xf6,-0x8(%rbp)
  jg     L2585
  mov    $0x1,%eax
  jmp    L2369
L2585:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L1255
  cmpl   $0xfe,-0x8(%rbp)
  jg     L1255
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa0,-0x8(%rbp)
  jle    L1491
  cmpl   $0xcf,-0x8(%rbp)
  jg     L1491
  cmpl   $0xad,-0x8(%rbp)
  je     L1491
  mov    $0x1,%eax
  jmp    L2369
L1491:
  cmpl   $0xcf,-0x8(%rbp)
  jle    L2256
  cmpl   $0xff,-0x8(%rbp)
  jg     L2256
  cmpl   $0xf0,-0x8(%rbp)
  je     L2256
  cmpl   $0xfd,-0x8(%rbp)
  je     L2256
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xc0,-0x8(%rbp)
  jle    L1010
  cmpl   $0xda,-0x8(%rbp)
  jg     L1010
  mov    $0x1,%eax
  jmp    L2369
L1010:
  cmpl   $0xdf,-0x8(%rbp)
  jle    L2129
  cmpl   $0xf2,-0x8(%rbp)
  jg     L2129
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xb6,-0x8(%rbp)
  jne    L821
  mov    $0x1,%eax
  jmp    L2369
L821:
  cmpl   $0xb7,-0x8(%rbp)
  jle    L2274
  cmpl   $0xba,-0x8(%rbp)
  jg     L2274
  mov    $0x1,%eax
  jmp    L2369
L2274:
  cmpl   $0xbc,-0x8(%rbp)
  jne    L1349
  mov    $0x1,%eax
  jmp    L2369
L1349:
  cmpl   $0xbd,-0x8(%rbp)
  jle    L340
  cmpl   $0xbf,-0x8(%rbp)
  jg     L340
  mov    $0x1,%eax
  jmp    L2369
L340:
  cmpl   $0xc0,-0x8(%rbp)
  jne    L1879
  mov    $0x1,%eax
  jmp    L2369
L1879:
  cmpl   $0xc0,-0x8(%rbp)
  jle    L1853
  cmpl   $0xdb,-0x8(%rbp)
  jg     L1853
  cmpl   $0xd2,-0x8(%rbp)
  je     L1853
  mov    $0x1,%eax
  jmp    L2369
L1853:
  cmpl   $0xdb,-0x8(%rbp)
  jle    L1412
  cmpl   $0xfe,-0x8(%rbp)
  jg     L1412
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xb5,-0x8(%rbp)
  jne    L255
  mov    $0x1,%eax
  jmp    L2369
L255:
  cmpl   $0xdf,-0x8(%rbp)
  jle    L2227
  cmpl   $0xfa,-0x8(%rbp)
  jg     L2227
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa0,-0x8(%rbp)
  jle    L1212
  cmpl   $0xa6,-0x8(%rbp)
  jg     L1212
  mov    $0x1,%eax
  jmp    L2369
L1212:
  cmpl   $0xa7,-0x8(%rbp)
  jle    L2473
  cmpl   $0xac,-0x8(%rbp)
  jg     L2473
  mov    $0x1,%eax
  jmp    L2369
L2473:
  cmpl   $0xae,-0x8(%rbp)
  je     L2754
  cmpl   $0xaf,-0x8(%rbp)
  jne    L1183
L2754:
  mov    $0x1,%eax
  jmp    L2369
L1183:
  cmpl   $0xb0,-0x8(%rbp)
  jle    L858
  cmpl   $0xb6,-0x8(%rbp)
  jg     L858
  mov    $0x1,%eax
  jmp    L2369
L858:
  cmpl   $0xb7,-0x8(%rbp)
  jle    L1309
  cmpl   $0xbc,-0x8(%rbp)
  jg     L1309
  mov    $0x1,%eax
  jmp    L2369
L1309:
  cmpl   $0xbd,-0x8(%rbp)
  jle    L2576
  cmpl   $0xff,-0x8(%rbp)
  jg     L2576
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa0,-0x8(%rbp)
  jle    L2418
  cmpl   $0xda,-0x8(%rbp)
  jg     L2418
  mov    $0x1,%eax
  jmp    L2369
L2418:
  cmpl   $0xde,-0x8(%rbp)
  jle    L2291
  cmpl   $0xfb,-0x8(%rbp)
  jg     L2291
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa8,-0x8(%rbp)
  jne    L2826
  mov    $0x1,%eax
  jmp    L2369
L2826:
  cmpl   $0xaa,-0x8(%rbp)
  jne    L443
  mov    $0x1,%eax
  jmp    L2369
L443:
  cmpl   $0xaf,-0x8(%rbp)
  jne    L681
  mov    $0x1,%eax
  jmp    L2369
L681:
  cmpl   $0xb5,-0x8(%rbp)
  jne    L1364
  mov    $0x1,%eax
  jmp    L2369
L1364:
  cmpl   $0xb8,-0x8(%rbp)
  jne    L495
  mov    $0x1,%eax
  jmp    L2369
L495:
  cmpl   $0xba,-0x8(%rbp)
  jne    L1316
  mov    $0x1,%eax
  jmp    L2369
L1316:
  cmpl   $0xbe,-0x8(%rbp)
  jle    L1915
  cmpl   $0xd6,-0x8(%rbp)
  jg     L1915
  mov    $0x1,%eax
  jmp    L2369
L1915:
  cmpl   $0xd7,-0x8(%rbp)
  jle    L496
  cmpl   $0xf6,-0x8(%rbp)
  jg     L496
  mov    $0x1,%eax
  jmp    L2369
L496:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L251
  cmpl   $0xfe,-0x8(%rbp)
  jg     L251
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa1,-0x8(%rbp)
  je     L2606
  cmpl   $0xa2,-0x8(%rbp)
  jne    L2336
L2606:
  mov    $0x1,%eax
  jmp    L2369
L2336:
  cmpl   $0xa4,-0x8(%rbp)
  je     L145
  cmpl   $0xa5,-0x8(%rbp)
  jne    L1438
L145:
  mov    $0x1,%eax
  jmp    L2369
L1438:
  cmpl   $0xa6,-0x8(%rbp)
  je     L3165
  cmpl   $0xa8,-0x8(%rbp)
  jne    L2311
L3165:
  mov    $0x1,%eax
  jmp    L2369
L2311:
  cmpl   $0xa9,-0x8(%rbp)
  jle    L2510
  cmpl   $0xac,-0x8(%rbp)
  jg     L2510
  mov    $0x1,%eax
  jmp    L2369
L2510:
  cmpl   $0xae,-0x8(%rbp)
  jle    L918
  cmpl   $0xb5,-0x8(%rbp)
  jg     L918
  mov    $0x1,%eax
  jmp    L2369
L918:
  cmpl   $0xb6,-0x8(%rbp)
  jle    L2402
  cmpl   $0xff,-0x8(%rbp)
  jg     L2402
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xaa,-0x8(%rbp)
  jne    L1836
  mov    $0x1,%eax
  jmp    L2369
L1836:
  cmpl   $0xb5,-0x8(%rbp)
  jne    L1088
  mov    $0x1,%eax
  jmp    L2369
L1088:
  cmpl   $0xba,-0x8(%rbp)
  jne    L991
  mov    $0x1,%eax
  jmp    L2369
L991:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L2199
  cmpl   $0xd6,-0x8(%rbp)
  jg     L2199
  mov    $0x1,%eax
  jmp    L2369
L2199:
  cmpl   $0xd7,-0x8(%rbp)
  jle    L1059
  cmpl   $0xf6,-0x8(%rbp)
  jg     L1059
  mov    $0x1,%eax
  jmp    L2369
L1059:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L2241
  cmpl   $0xff,-0x8(%rbp)
  jg     L2241
  mov    $0x1,%eax
  jmp    L2369
L2241:
  cmpl   $0xa6,-0x8(%rbp)
  jne    L1761
  mov    $0x1,%eax
  jmp    L2369
L1761:
  cmpl   $0xa8,-0x8(%rbp)
  jne    L1633
  mov    $0x1,%eax
  jmp    L2369
L1633:
  cmpl   $0xb4,-0x8(%rbp)
  jne    L2460
  mov    $0x1,%eax
  jmp    L2369
L2460:
  cmpl   $0xb8,-0x8(%rbp)
  jne    L2496
  mov    $0x1,%eax
  jmp    L2369
L2496:
  cmpl   $0xbc,-0x8(%rbp)
  jne    L1334
  mov    $0x1,%eax
  jmp    L2369
L1334:
  cmpl   $0xbd,-0x8(%rbp)
  jne    L507
  mov    $0x1,%eax
  jmp    L2369
L507:
  cmpl   $0xbe,-0x8(%rbp)
  jne    L693
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa1,-0x8(%rbp)
  jne    L1022
  mov    $0x1,%eax
  jmp    L2369
L1022:
  cmpl   $0xa2,-0x8(%rbp)
  jne    L2438
  mov    $0x1,%eax
  jmp    L2369
L2438:
  cmpl   $0xa3,-0x8(%rbp)
  jne    L1135
  mov    $0x1,%eax
  jmp    L2369
L1135:
  cmpl   $0xa6,-0x8(%rbp)
  jne    L2257
  mov    $0x1,%eax
  jmp    L2369
L2257:
  cmpl   $0xa8,-0x8(%rbp)
  jne    L932
  mov    $0x1,%eax
  jmp    L2369
L932:
  cmpl   $0xaa,-0x8(%rbp)
  jne    L410
  mov    $0x1,%eax
  jmp    L2369
L410:
  cmpl   $0xac,-0x8(%rbp)
  jne    L1279
  mov    $0x1,%eax
  jmp    L2369
L1279:
  cmpl   $0xae,-0x8(%rbp)
  jne    L797
  mov    $0x1,%eax
  jmp    L2369
L797:
  cmpl   $0xaf,-0x8(%rbp)
  jne    L588
  mov    $0x1,%eax
  jmp    L2369
L588:
  cmpl   $0xb2,-0x8(%rbp)
  jne    L2038
  mov    $0x1,%eax
  jmp    L2369
L2038:
  cmpl   $0xb3,-0x8(%rbp)
  jne    L1720
  mov    $0x1,%eax
  jmp    L2369
L1720:
  cmpl   $0xb4,-0x8(%rbp)
  jne    L785
  mov    $0x1,%eax
  jmp    L2369
L785:
  cmpl   $0xb7,-0x8(%rbp)
  jle    L1085
  cmpl   $0xba,-0x8(%rbp)
  jg     L1085
  mov    $0x1,%eax
  jmp    L2369
L1085:
  cmpl   $0xbc,-0x8(%rbp)
  jne    L1792
  mov    $0x1,%eax
  jmp    L2369
L1792:
  cmpl   $0xbd,-0x8(%rbp)
  jne    L793
  mov    $0x1,%eax
  jmp    L2369
L793:
  cmpl   $0xbe,-0x8(%rbp)
  jne    L3137
  mov    $0x1,%eax
  jmp    L2369
L3137:
  cmpl   $0xbf,-0x8(%rbp)
  jne    L1099
  mov    $0x1,%eax
  jmp    L2369
L1099:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L177
  cmpl   $0xde,-0x8(%rbp)
  jg     L177
  mov    $0x1,%eax
  jmp    L2369
L177:
  cmpl   $0xde,-0x8(%rbp)
  jle    L2634
  cmpl   $0xff,-0x8(%rbp)
  jg     L2634
  mov    $0x1,%eax
  jmp    L2369
  cmpl   $0xa3,-0x8(%rbp)
  je     L3122
  cmpl   $0xb3,-0x8(%rbp)
  jne    L2382
L3122:
  mov    $0x1,%eax
  jmp    L2369
L2382:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L1600
  cmpl   $0xff,-0x8(%rbp)
  jg     L1600
  mov    $0x1,%eax
  jmp    L2369
L706:
  mov    $0xffffffff,%edi
  call   <exit@plt>
  jmp    L2420
L2211:
  nop
  jmp    L2420
L1256:
  nop
  jmp    L2420
L728:
  nop
  jmp    L2420
L1255:
  nop
  jmp    L2420
L2256:
  nop
  jmp    L2420
L2129:
  nop
  jmp    L2420
L1412:
  nop
  jmp    L2420
L2227:
  nop
  jmp    L2420
L2576:
  nop
  jmp    L2420
L2291:
  nop
  jmp    L2420
L251:
  nop
  jmp    L2420
L2402:
  nop
  jmp    L2420
L693:
  nop
  jmp    L2420
L2634:
  nop
  jmp    L2420
L1600:
  nop
L2420:
  mov    $0x0,%eax
L2369:
  leave
  ret
```

assistant: ```c
int IsAlpha(int enc, int c) {
  if (enc == 0)
    return isalpha(c);
  if (c >= 0x41 && c <= 0x5a)
    return 1;
  if (c >= 0x61 && c <= 0x7a)
    return 1;
  switch (enc) {
  case 1:
  case 2:
  case 10:
    if (c == 0xaa)
      return 1;
    if (c == 0xb5)
      return 1;
    if (c == 0xba)
      return 1;
    if (c >= 0xc0 && c <= 0xd6)
      return 1;
    if (c >= 0xd8 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xff)
      return 1;
    break;
  case 3:
    if (c == 0xa1 || c == 0xa3)
      return 1;
    if (c == 0xa5 || c == 0xa6)
      return 1;
    if (c >= 0xa9 && c <= 0xac)
      return 1;
    if (c >= 0xae && c <= 0xaf)
      return 1;
    if (c == 0xb1 || c == 0xb3)
      return 1;
    if (c == 0xb5 || c == 0xb6)
      return 1;
    if (c >= 0xb9 && c <= 0xbc)
      return 1;
    if (c >= 0xbe && c <= 0xbf)
      return 1;
    if (c >= 0xc0 && c <= 0xd6)
      return 1;
    if (c >= 0xd8 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 4:
    if (c == 0xa1)
      return 1;
    if (c == 0xa6)
      return 1;
    if (c >= 0xa9 && c <= 0xac)
      return 1;
    if (c == 0xaf)
      return 1;
    if (c == 0xb1)
      return 1;
    if (c == 0xb5 || c == 0xb6)
      return 1;
    if (c >= 0xb9 && c <= 0xbc)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c >= 0xc0 && c <= 0xc2)
      return 1;
    if (c >= 0xc4 && c <= 0xcf)
      return 1;
    if (c >= 0xd1 && c <= 0xd6)
      return 1;
    if (c >= 0xd8 && c <= 0xe2)
      return 1;
    if (c >= 0xe4 && c <= 0xef)
      return 1;
    if (c >= 0xf1 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 5:
    if (c >= 0xa1 && c <= 0xa3)
      return 1;
    if (c == 0xa5 || c == 0xa6)
      return 1;
    if (c >= 0xa9 && c <= 0xac)
      return 1;
    if (c == 0xae)
      return 1;
    if (c == 0xb1 || c == 0xb3)
      return 1;
    if (c == 0xb5 || c == 0xb6)
      return 1;
    if (c >= 0xb9 && c <= 0xbf)
      return 1;
    if (c >= 0xc0 && c <= 0xd6)
      return 1;
    if (c >= 0xd8 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 6:
    if (c >= 0xa1 && c <= 0xcf && c != 0xad)
      return 1;
    if (c >= 0xd0 && c <= 0xff && c != 0xf0 && c != 0xfd)
      return 1;
    break;
  case 7:
    if (c >= 0xc1 && c <= 0xda)
      return 1;
    if (c >= 0xe0 && c <= 0xf2)
      return 1;
    break;
  case 8:
    if (c == 0xb6)
      return 1;
    if (c >= 0xb8 && c <= 0xba)
      return 1;
    if (c == 0xbc)
      return 1;
    if (c >= 0xbe && c <= 0xbf)
      return 1;
    if (c == 0xc0)
      return 1;
    if (c >= 0xc1 && c <= 0xdb && c != 0xd2)
      return 1;
    if (c >= 0xdc && c <= 0xfe)
      return 1;
    break;
  case 9:
    if (c == 0xb5)
      return 1;
    if (c >= 0xe0 && c <= 0xfa)
      return 1;
    break;
  case 11:
    if (c >= 0xa1 && c <= 0xa6)
      return 1;
    if (c >= 0xa8 && c <= 0xac)
      return 1;
    if (c == 0xae || c == 0xaf)
      return 1;
    if (c >= 0xb1 && c <= 0xb6)
      return 1;
    if (c >= 0xb8 && c <= 0xbc)
      return 1;
    if (c >= 0xbe && c <= 0xff)
      return 1;
    break;
  case 12:
    if (c >= 0xa1 && c <= 0xda)
      return 1;
    if (c >= 0xdf && c <= 0xfb)
      return 1;
    break;
  case 13:
    if (c == 0xa8)
      return 1;
    if (c == 0xaa)
      return 1;
    if (c == 0xaf)
      return 1;
    if (c == 0xb5)
      return 1;
    if (c == 0xb8)
      return 1;
    if (c == 0xba)
      return 1;
    if (c >= 0xbf && c <= 0xd6)
      return 1;
    if (c >= 0xd8 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 14:
    if (c == 0xa1 || c == 0xa2)
      return 1;
    if (c == 0xa4 || c == 0xa5)
      return 1;
    if (c == 0xa6 || c == 0xa8)
      return 1;
    if (c >= 0xaa && c <= 0xac)
      return 1;
    if (c >= 0xaf && c <= 0xb5)
      return 1;
    if (c >= 0xb7 && c <= 0xff)
      return 1;
    break;
  case 15:
    if (c == 0xaa)
      return 1;
    if (c == 0xb5)
      return 1;
    if (c == 0xba)
      return 1;
    if (c >= 0xc0 && c <= 0xd6)
      return 1;
    if (c >= 0xd8 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xff)
      return 1;
    if (c == 0xa6)
      return 1;
    if (c == 0xa8)
      return 1;
    if (c == 0xb4)
      return 1;
    if (c == 0xb8)
      return 1;
    if (c == 0xbc)
      return 1;
    if (c == 0xbd)
      return 1;
    if (c == 0xbe)
      return 1;
    break;
  case 16:
    if (c == 0xa1)
      return 1;
    if (c == 0xa2)
      return 1;
    if (c == 0xa3)
      return 1;
    if (c == 0xa6)
      return 1;
    if (c == 0xa8)
      return 1;
    if (c == 0xaa)
      return 1;
    if (c == 0xac)
      return 1;
    if (c == 0xae)
      return 1;
    if (c == 0xaf)
      return 1;
    if (c == 0xb2)
      return 1;
    if (c == 0xb3)
      return 1;
    if (c == 0xb4)
      return 1;
    if (c >= 0xb8 && c <= 0xba)
      return 1;
    if (c == 0xbc)
      return 1;
    if (c == 0xbd)
      return 1;
    if (c == 0xbe)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c >= 0xc0 && c <= 0xde)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 18:
    if (c == 0xa3 || c == 0xb3)
      return 1;
  case 17:
    if (c >= 0xc0 && c <= 0xff)
      return 1;
    break;
  default:
    exit(-1);
  }
  return 0;
}
```