user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<IsLower>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  cmpl   $0x0,-0x4(%rbp)
  jne    L942
  mov    -0x8(%rbp),%eax
  mov    %eax,%edi
  call   <islower@plt>
  jmp    L495
L942:
  cmpl   $0x60,-0x8(%rbp)
  jle    L1002
  cmpl   $0x7a,-0x8(%rbp)
  jg     L1002
  mov    $0x1,%eax
  jmp    L495
L1002:
  cmpl   $0x12,-0x4(%rbp)
  ja     L1075
  mov    -0x4(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D11(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D11(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  cmpl   $0xaa,-0x8(%rbp)
  jne    L1523
  mov    $0x1,%eax
  jmp    L495
L1523:
  cmpl   $0xb5,-0x8(%rbp)
  jne    L1951
  mov    $0x1,%eax
  jmp    L495
L1951:
  cmpl   $0xba,-0x8(%rbp)
  jne    L692
  mov    $0x1,%eax
  jmp    L495
L692:
  cmpl   $0xde,-0x8(%rbp)
  jle    L577
  cmpl   $0xf6,-0x8(%rbp)
  jg     L577
  mov    $0x1,%eax
  jmp    L495
L577:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L1808
  cmpl   $0xff,-0x8(%rbp)
  jg     L1808
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xb1,-0x8(%rbp)
  je     L715
  cmpl   $0xb3,-0x8(%rbp)
  jne    L1433
L715:
  mov    $0x1,%eax
  jmp    L495
L1433:
  cmpl   $0xb5,-0x8(%rbp)
  je     L1536
  cmpl   $0xb6,-0x8(%rbp)
  jne    L364
L1536:
  mov    $0x1,%eax
  jmp    L495
L364:
  cmpl   $0xb8,-0x8(%rbp)
  jle    L170
  cmpl   $0xbc,-0x8(%rbp)
  jg     L170
  mov    $0x1,%eax
  jmp    L495
L170:
  cmpl   $0xbd,-0x8(%rbp)
  jle    L832
  cmpl   $0xbf,-0x8(%rbp)
  jg     L832
  mov    $0x1,%eax
  jmp    L495
L832:
  cmpl   $0xde,-0x8(%rbp)
  jle    L1509
  cmpl   $0xf6,-0x8(%rbp)
  jg     L1509
  mov    $0x1,%eax
  jmp    L495
L1509:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L1766
  cmpl   $0xfe,-0x8(%rbp)
  jg     L1766
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xb1,-0x8(%rbp)
  jne    L407
  mov    $0x1,%eax
  jmp    L495
L407:
  cmpl   $0xb5,-0x8(%rbp)
  je     L643
  cmpl   $0xb6,-0x8(%rbp)
  jne    L179
L643:
  mov    $0x1,%eax
  jmp    L495
L179:
  cmpl   $0xb8,-0x8(%rbp)
  jle    L822
  cmpl   $0xbc,-0x8(%rbp)
  jg     L822
  mov    $0x1,%eax
  jmp    L495
L822:
  cmpl   $0xbf,-0x8(%rbp)
  jne    L274
  mov    $0x1,%eax
  jmp    L495
L274:
  cmpl   $0xdf,-0x8(%rbp)
  jne    L559
  mov    $0x1,%eax
  jmp    L495
L559:
  cmpl   $0xdf,-0x8(%rbp)
  jle    L522
  cmpl   $0xe2,-0x8(%rbp)
  jg     L522
  mov    $0x1,%eax
  jmp    L495
L522:
  cmpl   $0xe3,-0x8(%rbp)
  jle    L1600
  cmpl   $0xef,-0x8(%rbp)
  jg     L1600
  mov    $0x1,%eax
  jmp    L495
L1600:
  cmpl   $0xf0,-0x8(%rbp)
  jle    L1380
  cmpl   $0xf6,-0x8(%rbp)
  jg     L1380
  mov    $0x1,%eax
  jmp    L495
L1380:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L456
  cmpl   $0xfe,-0x8(%rbp)
  jg     L456
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xa2,-0x8(%rbp)
  jne    L1154
  mov    $0x1,%eax
  jmp    L495
L1154:
  cmpl   $0xb1,-0x8(%rbp)
  je     L87
  cmpl   $0xb3,-0x8(%rbp)
  jne    L150
L87:
  mov    $0x1,%eax
  jmp    L495
L150:
  cmpl   $0xb5,-0x8(%rbp)
  je     L423
  cmpl   $0xb6,-0x8(%rbp)
  jne    L1528
L423:
  mov    $0x1,%eax
  jmp    L495
L1528:
  cmpl   $0xb8,-0x8(%rbp)
  jle    L575
  cmpl   $0xbc,-0x8(%rbp)
  jg     L575
  mov    $0x1,%eax
  jmp    L495
L575:
  cmpl   $0xbd,-0x8(%rbp)
  jle    L1935
  cmpl   $0xbf,-0x8(%rbp)
  jg     L1935
  mov    $0x1,%eax
  jmp    L495
L1935:
  cmpl   $0xdf,-0x8(%rbp)
  jne    L1118
  mov    $0x1,%eax
  jmp    L495
L1118:
  cmpl   $0xdf,-0x8(%rbp)
  jle    L1046
  cmpl   $0xf6,-0x8(%rbp)
  jg     L1046
  mov    $0x1,%eax
  jmp    L495
L1046:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L681
  cmpl   $0xfe,-0x8(%rbp)
  jg     L681
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xcf,-0x8(%rbp)
  jle    L1661
  cmpl   $0xff,-0x8(%rbp)
  jg     L1661
  cmpl   $0xf0,-0x8(%rbp)
  je     L1661
  cmpl   $0xfd,-0x8(%rbp)
  je     L1661
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xc0,-0x8(%rbp)
  jne    L1288
  mov    $0x1,%eax
  jmp    L495
L1288:
  cmpl   $0xdb,-0x8(%rbp)
  jle    L1317
  cmpl   $0xfe,-0x8(%rbp)
  jg     L1317
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xb5,-0x8(%rbp)
  jne    L881
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xb0,-0x8(%rbp)
  jle    L1366
  cmpl   $0xb6,-0x8(%rbp)
  jg     L1366
  mov    $0x1,%eax
  jmp    L495
L1366:
  cmpl   $0xb7,-0x8(%rbp)
  jle    L1619
  cmpl   $0xbc,-0x8(%rbp)
  jg     L1619
  mov    $0x1,%eax
  jmp    L495
L1619:
  cmpl   $0xbe,-0x8(%rbp)
  je     L1233
  cmpl   $0xbf,-0x8(%rbp)
  jne    L50
L1233:
  mov    $0x1,%eax
  jmp    L495
L50:
  cmpl   $0xde,-0x8(%rbp)
  jle    L587
  cmpl   $0xff,-0x8(%rbp)
  jg     L587
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xb5,-0x8(%rbp)
  jne    L208
  mov    $0x1,%eax
  jmp    L495
L208:
  cmpl   $0xb8,-0x8(%rbp)
  jne    L1313
  mov    $0x1,%eax
  jmp    L495
L1313:
  cmpl   $0xba,-0x8(%rbp)
  jne    L954
  mov    $0x1,%eax
  jmp    L495
L954:
  cmpl   $0xbf,-0x8(%rbp)
  jne    L301
  mov    $0x1,%eax
  jmp    L495
L301:
  cmpl   $0xde,-0x8(%rbp)
  jle    L1471
  cmpl   $0xf6,-0x8(%rbp)
  jg     L1471
  mov    $0x1,%eax
  jmp    L495
L1471:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L1095
  cmpl   $0xfe,-0x8(%rbp)
  jg     L1095
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xa2,-0x8(%rbp)
  jne    L1758
  mov    $0x1,%eax
  jmp    L495
L1758:
  cmpl   $0xa5,-0x8(%rbp)
  jne    L1158
  mov    $0x1,%eax
  jmp    L495
L1158:
  cmpl   $0xab,-0x8(%rbp)
  jne    L597
  mov    $0x1,%eax
  jmp    L495
L597:
  cmpl   $0xb1,-0x8(%rbp)
  je     L631
  cmpl   $0xb3,-0x8(%rbp)
  je     L631
  cmpl   $0xb5,-0x8(%rbp)
  jne    L1839
L631:
  mov    $0x1,%eax
  jmp    L495
L1839:
  cmpl   $0xb7,-0x8(%rbp)
  jle    L553
  cmpl   $0xba,-0x8(%rbp)
  jg     L553
  mov    $0x1,%eax
  jmp    L495
L553:
  cmpl   $0xbc,-0x8(%rbp)
  jne    L1610
  mov    $0x1,%eax
  jmp    L495
L1610:
  cmpl   $0xbe,-0x8(%rbp)
  je     L623
  cmpl   $0xbf,-0x8(%rbp)
  jne    L1669
L623:
  mov    $0x1,%eax
  jmp    L495
L1669:
  cmpl   $0xde,-0x8(%rbp)
  jle    L1582
  cmpl   $0xff,-0x8(%rbp)
  jg     L1582
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xaa,-0x8(%rbp)
  jne    L1824
  mov    $0x1,%eax
  jmp    L495
L1824:
  cmpl   $0xb5,-0x8(%rbp)
  jne    L169
  mov    $0x1,%eax
  jmp    L495
L169:
  cmpl   $0xba,-0x8(%rbp)
  jne    L1686
  mov    $0x1,%eax
  jmp    L495
L1686:
  cmpl   $0xde,-0x8(%rbp)
  jle    L1524
  cmpl   $0xf6,-0x8(%rbp)
  jg     L1524
  mov    $0x1,%eax
  jmp    L495
L1524:
  cmpl   $0xf7,-0x8(%rbp)
  jle    L1893
  cmpl   $0xff,-0x8(%rbp)
  jg     L1893
  mov    $0x1,%eax
  jmp    L495
L1893:
  cmpl   $0xa8,-0x8(%rbp)
  jne    L1239
  mov    $0x1,%eax
  jmp    L495
L1239:
  cmpl   $0xb8,-0x8(%rbp)
  jne    L1602
  mov    $0x1,%eax
  jmp    L495
L1602:
  cmpl   $0xbd,-0x8(%rbp)
  jne    L1320
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xa2,-0x8(%rbp)
  jne    L704
  mov    $0x1,%eax
  jmp    L495
L704:
  cmpl   $0xa8,-0x8(%rbp)
  jne    L116
  mov    $0x1,%eax
  jmp    L495
L116:
  cmpl   $0xae,-0x8(%rbp)
  jne    L1142
  mov    $0x1,%eax
  jmp    L495
L1142:
  cmpl   $0xb3,-0x8(%rbp)
  jne    L1210
  mov    $0x1,%eax
  jmp    L495
L1210:
  cmpl   $0xb7,-0x8(%rbp)
  jle    L477
  cmpl   $0xba,-0x8(%rbp)
  jg     L477
  mov    $0x1,%eax
  jmp    L495
L477:
  cmpl   $0xbd,-0x8(%rbp)
  jne    L1637
  mov    $0x1,%eax
  jmp    L495
L1637:
  cmpl   $0xbf,-0x8(%rbp)
  jne    L15
  mov    $0x1,%eax
  jmp    L495
L15:
  cmpl   $0xde,-0x8(%rbp)
  jle    L1156
  cmpl   $0xff,-0x8(%rbp)
  jg     L1156
  mov    $0x1,%eax
  jmp    L495
  cmpl   $0xa3,-0x8(%rbp)
  jne    L599
  mov    $0x1,%eax
  jmp    L495
L599:
  cmpl   $0xbf,-0x8(%rbp)
  jle    L203
  cmpl   $0xdf,-0x8(%rbp)
  jg     L203
  mov    $0x1,%eax
  jmp    L495
L1075:
  mov    $0xffffffff,%edi
  call   <exit@plt>
  jmp    L990
  nop
  jmp    L990
L1808:
  nop
  jmp    L990
L1766:
  nop
  jmp    L990
L456:
  nop
  jmp    L990
L681:
  nop
  jmp    L990
L1661:
  nop
  jmp    L990
L1317:
  nop
  jmp    L990
L881:
  nop
  jmp    L990
L587:
  nop
  jmp    L990
L1095:
  nop
  jmp    L990
L1582:
  nop
  jmp    L990
L1320:
  nop
  jmp    L990
L1156:
  nop
  jmp    L990
L203:
  nop
L990:
  mov    $0x0,%eax
L495:
  leave
  ret
```

assistant: ```c
int IsLower(int enc, int c) {
  if (enc == 0)
    return islower(c);
  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 >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xff)
      return 1;
    break;
  case 3:
    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 >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 4:
    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 == 0xdf)
      return 1;
    if (c >= 0xe0 && 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 == 0xa2)
      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 == 0xdf)
      return 1;
    if (c >= 0xe0 && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 6:
    if (c >= 0xd0 && c <= 0xff && c != 0xf0 && c != 0xfd)
      return 1;
    break;
  case 7:
    break;
  case 8:
    if (c == 0xc0)
      return 1;
    if (c >= 0xdc && c <= 0xfe)
      return 1;
    break;
  case 9:
    if (c == 0xb5)
      return 1;
    break;
  case 11:
    if (c >= 0xb1 && c <= 0xb6)
      return 1;
    if (c >= 0xb8 && c <= 0xbc)
      return 1;
    if (c == 0xbe || c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 12:
    break;
  case 13:
    if (c == 0xb5)
      return 1;
    if (c == 0xb8)
      return 1;
    if (c == 0xba)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xfe)
      return 1;
    break;
  case 14:
    if (c == 0xa2)
      return 1;
    if (c == 0xa5)
      return 1;
    if (c == 0xab)
      return 1;
    if (c == 0xb1 || c == 0xb3 || c == 0xb5)
      return 1;
    if (c >= 0xb8 && c <= 0xba)
      return 1;
    if (c == 0xbc)
      return 1;
    if (c == 0xbe || c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 15:
    if (c == 0xaa)
      return 1;
    if (c == 0xb5)
      return 1;
    if (c == 0xba)
      return 1;
    if (c >= 0xdf && c <= 0xf6)
      return 1;
    if (c >= 0xf8 && c <= 0xff)
      return 1;
    if (c == 0xa8)
      return 1;
    if (c == 0xb8)
      return 1;
    if (c == 0xbd)
      return 1;
    break;
  case 16:
    if (c == 0xa2)
      return 1;
    if (c == 0xa8)
      return 1;
    if (c == 0xae)
      return 1;
    if (c == 0xb3)
      return 1;
    if (c >= 0xb8 && c <= 0xba)
      return 1;
    if (c == 0xbd)
      return 1;
    if (c == 0xbf)
      return 1;
    if (c >= 0xdf && c <= 0xff)
      return 1;
    break;
  case 18:
    if (c == 0xa3)
      return 1;
  case 17:
    if (c >= 0xc0 && c <= 0xdf)
      return 1;
    break;
  default:
    exit(-1);
  }
  return 0;
}
```