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

```asm
<f18>:
  endbr64
  mov    %edi,%eax
  and    $0xc0000001,%eax
  cmp    $0xc0000001,%eax
  je     L79
  cmp    $0xffffffc0,%edi
  je     L272
  cmp    $0xffffffc1,%edi
  jge    L95
  cmp    $0xc0000001,%edi
  jge    L102
  cmp    $0xbfffffff,%edi
  jge    L272
  cmp    $0x90000001,%edi
  jge    L73
  cmp    $0x8fffffff,%edi
  jge    L272
  cmp    $0x80000009,%edi
  jge    L156
  mov    $0x121,%eax
  bt     %rdi,%rax
  jb     L311
L156:
  xor    %eax,%eax
  jmp    1050 <abort@plt>
  nopw   0x0(%rax,%rax,1)
L95:
  cmp    $0x1cc0,%edi
  jg     L165
  cmp    $0x1cbe,%edi
  jg     L272
  cmp    $0x3f,%edi
  jg     L156
  cmp    $0x4,%edi
  jg     L321
  cmp    $0xffffffe0,%edi
  je     L272
  cmp    $0x2,%edi
  ja     L156
  ret
  nopl   0x0(%rax)
L165:
  cmp    $0x60000002,%edi
  je     L272
  jle    L390
  cmp    $0x70000000,%edi
  jle    L26
  cmp    $0x7fffffff,%edi
  jne    L156
  ret
  nopl   0x0(%rax,%rax,1)
L26:
  cmp    $0x6ffffffe,%edi
  jle    L156
  ret
  nopl   0x0(%rax)
L102:
  cmp    $0xffffdfc0,%edi
  je     L272
  cmp    $0xffffdfc1,%edi
  jl     L397
  cmp    $0xffffdfc6,%edi
  je     L272
  cmp    $0xffffe000,%edi
  jne    L156
  ret
  nopl   (%rax)
L73:
  cmp    $0xa030ffff,%edi
  je     L272
  cmp    $0xbfbf0000,%edi
  jne    L156
  ret
  nopl   0x0(%rax)
L397:
  mov    %edi,%eax
  and    $0xfffffffd,%eax
  cmp    $0xffffc340,%eax
  je     L272
  cmp    $0xf0000000,%edi
  jne    L156
  ret
  nopl   (%rax)
L390:
  cmp    $0x3cc0,%edi
  jg     L223
  cmp    $0x3cbe,%edi
  jg     L272
  sub    $0x1fff,%edi
  cmp    $0x1,%edi
  ja     L156
  ret
  nopl   0x0(%rax,%rax,1)
L223:
  sub    $0x1fffffff,%edi
  cmp    $0x1,%edi
  ja     L156
  ret
L321:
  movabs $0x8000000101000020,%rax
  bt     %rdi,%rax
  jae    L156
  ret
  nopl   (%rax)
L311:
  ret
  nopl   0x0(%rax)
L383:
  add    $0x2001,%edi
  mov    $0x15,%eax
  bt     %rdi,%rax
  jae    L156
L272:
  ret
  cs nopw 0x0(%rax,%rax,1)
L79:
  cmp    $0xffffe004,%edi
  jge    L14
  cmp    $0xffffdfff,%edi
  jge    L383
  cmp    $0xffffdfbf,%edi
  je     L272
  cmp    $0xffffdfc0,%edi
  jl     L207
  cmp    $0xffffdfc1,%edi
  jne    L156
  ret
  nopl   (%rax)
L207:
  cmp    $0xc0000001,%edi
  je     L272
  cmp    $0xefffffff,%edi
  jne    L156
  ret
  nopl   (%rax)
L14:
  cmp    $0xffffffbf,%edi
  je     L272
  add    $0x3f,%edi
  cmp    $0x3e,%edi
  ja     L156
  movabs $0x4401000000000001,%rax
  bt     %rdi,%rax
  jae    L156
  ret
```

assistant: ```c
void f18(int s) {
  if ((s & ((-0x4000 << ((sizeof(int) - sizeof(short)) * 8)) | 1)) != ((-0x4000 << ((sizeof(int) - sizeof(short)) * 8)) | 1)) {
    if (s == 0 || s == 0x1cbf || s == 0x1cc0 || s == 0x1fff || s == 0x2000 || s == 0x20 || s == 0x3cbf || s == 0x3cc0 || s == 0x3f || s == (-0x4000 << ((sizeof(int) - sizeof(short)) * 8)) - 1 || s == (-0x7000 << ((sizeof(int) - sizeof(short)) * 8)) - 1 || s == (-0x5fcf << ((sizeof(int) - sizeof(short)) * 8)) - 1 || s == (-0x4041 << ((sizeof(int) - sizeof(short)) * 8)) || s == (-0x4000 << ((sizeof(int) - sizeof(short)) * 8)) || s == (-0x1000 << ((sizeof(int) - sizeof(short)) * 8)) || s == (-0x7000 << ((sizeof(int) - sizeof(short)) * 8)) || s == 1 || s == -15550 || s == -15552 || s == (0x7000 << ((sizeof(int) - sizeof(short)) * 8)) - 1 || s == (0x7000 << ((sizeof(int) - sizeof(short)) * 8)) || s == (1 << ((sizeof(int) * 8 - 1) - 2)) || s == (1 << ((sizeof(int) * 8 - 1) - 2)) - 1 || s == -0x7fffffff - 1 || s == 2 || s == 24 || s == -32 || s == (3 << ((sizeof(int) * 8 - 1) - 2)) + 2 || s == 5 || s == -64 || s == -0x7fffffff + 4 || s == -8192 || s == -8250 || s == -8256 || s == 0x7fffffff || s == -0x7fffffff + 7)
      return;
  } else {
    if (s == (-0x1000 << ((sizeof(int) - sizeof(short)) * 8)) - 1 || s == (-0x4000 << ((sizeof(int) - sizeof(short)) * 8)) + 1 || s == -1 || s == -15 || s == -5 || s == -63 || s == -65 || s == -8189 || s == -8191 || s == -8193 || s == -8255 || s == -8257)
      return;
  }
  abort();
}
```