user: 下面的汇编指令对应的C源代码是什么：

```asm
<state_machine>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %rsi,%r13
  mov    %rdi,%rbp
  mov    $0x0,%ebx
  lea    D9(%rip),%r14
  lea    0x2(%rdi),%r15
  jmp    L1669
L859:
  mov    %rdx,%rbp
  jmp    L1669
L1295:
  mov    %rax,%rbp
  jmp    L410
L1258:
  mov    %rax,%rbp
  jmp    L410
L946:
  mov    %rax,%rbp
  jmp    L410
L83:
  mov    %rax,%rbp
  jmp    L410
L1756:
  mov    %rax,%rbp
  jmp    L410
L973:
  mov    %rax,%rbp
  jmp    L410
L149:
  mov    %rax,%rbp
  jmp    L410
L636:
  mov    %rax,%rbp
  jmp    L410
L1475:
  mov    %rax,%rbp
  jmp    L410
L1745:
  mov    %rax,%rbp
  jmp    L410
L329:
  mov    %rax,%rbp
  jmp    L410
L671:
  mov    %rax,%rbp
  jmp    L410
L15:
  mov    %rax,%rbp
  jmp    L410
L1169:
  mov    %rax,%rbp
  jmp    L410
L2112:
  mov    %rax,%rbp
  jmp    L410
L753:
  mov    %rax,%rbp
  jmp    L410
L2093:
  mov    %rax,%rbp
  jmp    L410
L587:
  mov    %rax,%rbp
  jmp    L410
L2279:
  mov    %rax,%rbp
  jmp    L410
L427:
  mov    %rax,%rbp
  jmp    L410
L2082:
  mov    %rax,%rbp
  jmp    L410
L1992:
  mov    %rax,%rbp
  jmp    L410
L1134:
  mov    %rax,%rbp
  jmp    L410
L880:
  mov    %rax,%rbp
  jmp    L410
L1096:
  mov    %rax,%rbp
  jmp    L410
L660:
  mov    %rax,%rbp
  jmp    L410
L1701:
  mov    %rax,%rbp
  jmp    L410
L509:
  cmp    $0x5f,%r12
  je     L745
L1669:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L1524
  cmp    %r13,%rbp
  jae    L635
  mov    0x0(%rbp),%rbx
L1524:
  add    $0x1,%rbp
  mov    %rbx,%r12
  shr    $0x38,%r12
  cmp    $0x5f,%r12
  ja     L1669
L1247:
  cmp    $0x43,%r12
  ja     L509
  cmp    $0x21,%r12
  jbe    L1669
  sub    $0x22,%r12
  cmp    $0x21,%r12
  ja     L1669
  movslq (%r14,%r12,4),%rax
  add    %r14,%rax
  notrack jmp *%rax
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L2212
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
L2212:
  add    $0x1,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x2f,%rax
  je     L1611
  cmp    $0x2a,%rax
  je     L544
L410:
  mov    %rbx,%r12
  shr    $0x38,%r12
  cmp    $0x5f,%r12
  jbe    L1247
  jmp    L1669
  cmp    %r15,%rbp
  jae    L1360
L1528:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L723
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
L723:
  lea    0x1(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x4f,%rdx
  jne    L587
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1979
  cmp    %rax,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
L1979:
  lea    0x2(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x4e,%rdx
  jne    L2279
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L890
  cmp    %rax,%r13
  jbe    L635
  mov    0x2(%rbp),%rbx
L890:
  lea    0x3(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x46,%rdx
  jne    L427
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L366
  cmp    %rax,%r13
  jbe    L635
  mov    0x3(%rbp),%rbx
L366:
  lea    0x4(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x49,%rdx
  jne    L2082
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L698
  cmp    %rax,%r13
  jbe    L635
  mov    0x4(%rbp),%rbx
L698:
  lea    0x5(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x47,%rdx
  jne    L1992
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L845
  cmp    %rax,%r13
  jbe    L635
  mov    0x5(%rbp),%rbx
L845:
  add    $0x6,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  jne    L410
  mov    %rbp,%r12
L138:
  shl    $0x8,%rbx
  test   $0x7,%r12b
  jne    L1163
  cmp    %r13,%r12
  jae    L635
  mov    (%r12),%rbx
L1163:
  add    $0x1,%r12
  mov    %rbx,%rax
  shr    $0x38,%rax
  mov    %rax,0x8(%rsp)
  movsbl 0x8(%rsp),%edi
  call   <isalnum@plt>
  cmpq   $0x5f,0x8(%rsp)
  je     L138
  test   %rax,%rax
  jne    L138
  mov    %r12,%rsi
  sub    %rbp,%rsi
  sub    $0x1,%esi
  mov    %rbp,%rdi
  call   <use_config@plt>
  mov    %r12,%rbp
  jmp    L410
L745:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L806
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
L806:
  lea    0x1(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x5f,%rdx
  jne    L1134
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L314
  cmp    %rax,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
L314:
  lea    0x2(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x53,%rdx
  jne    L880
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L2080
  cmp    %rax,%r13
  jbe    L635
  mov    0x2(%rbp),%rbx
L2080:
  lea    0x3(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x4d,%rdx
  jne    L1096
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1853
  cmp    %rax,%r13
  jbe    L635
  mov    0x3(%rbp),%rbx
L1853:
  lea    0x4(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x50,%rdx
  jne    L660
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L776
  cmp    %rax,%r13
  jbe    L635
  mov    0x4(%rbp),%rbx
L776:
  lea    0x5(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x5f,%rdx
  jne    L1701
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1053
  cmp    %rax,%r13
  jbe    L635
  mov    0x5(%rbp),%rbx
L1053:
  add    $0x6,%rbp
  mov    %rbx,%r12
  shr    $0x38,%r12
  cmp    $0x5f,%r12
  jne    L410
  mov    $0x3,%esi
  lea    D2(%rip),%rdi
  call   <use_config@plt>
  jmp    L1247
L1805:
  mov    %rdx,%rbp
L1611:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L2157
  cmp    %r13,%rbp
  jae    L635
  mov    0x0(%rbp),%rbx
L2157:
  lea    0x1(%rbp),%rdx
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0xa,%rax
  je     L859
  cmp    $0x5c,%rax
  jne    L1805
  shl    $0x8,%rbx
  test   $0x7,%dl
  jne    L1324
  cmp    %rdx,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
L1324:
  add    $0x2,%rbp
  jmp    L1611
L544:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L1448
  cmp    %r13,%rbp
  jae    L635
  mov    0x0(%rbp),%rbx
L1448:
  add    $0x1,%rbp
  jmp    L1201
L222:
  add    $0x1,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x2f,%rax
  je     L1669
L1201:
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x2a,%rax
  jne    L544
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L222
  cmp    %r13,%rbp
  jae    L635
  mov    0x0(%rbp),%rbx
  jmp    L222
  mov    %rbp,%rax
  jmp    L1974
L1424:
  mov    %rbp,%rax
L1974:
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1056
  cmp    %r13,%rax
  jae    L635
  mov    (%rax),%rbx
L1056:
  lea    0x1(%rax),%rbp
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x27,%rdx
  je     L1669
  cmp    $0x5c,%rdx
  jne    L1424
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L2055
  cmp    %rbp,%r13
  jbe    L635
  mov    0x1(%rax),%rbx
L2055:
  add    $0x2,%rax
  jmp    L1974
  mov    %rbp,%rax
  jmp    L1733
L667:
  mov    %rbp,%rax
L1733:
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1610
  cmp    %r13,%rax
  jae    L635
  mov    (%rax),%rbx
L1610:
  lea    0x1(%rax),%rbp
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x22,%rdx
  je     L1669
  cmp    $0x5c,%rdx
  jne    L667
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L1870
  cmp    %rbp,%r13
  jbe    L635
  mov    0x1(%rax),%rbx
L1870:
  add    $0x2,%rax
  jmp    L1733
  mov    %rbp,%rax
  jmp    L1905
L2057:
  mov    %rbp,%rax
L1905:
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L472
  cmp    %r13,%rax
  jae    L635
  mov    (%rax),%rbx
L472:
  lea    0x1(%rax),%rbp
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x9,%rdx
  je     L2057
  cmp    $0x20,%rdx
  je     L2057
  cmp    $0x69,%rdx
  je     L1678
  cmp    $0x64,%rdx
  je     L485
  cmp    $0x75,%rdx
  jne    L410
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L170
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
L170:
  add    $0x2,%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x6e,%rdx
  jne    L1745
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1921
  cmp    %rax,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
L1921:
  lea    0x2(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x64,%rdx
  jne    L329
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1881
  cmp    %rax,%r13
  jbe    L635
  mov    0x2(%rbp),%rbx
L1881:
  lea    0x3(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x65,%rdx
  jne    L671
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L2206
  cmp    %rax,%r13
  jbe    L635
  mov    0x3(%rbp),%rbx
L2206:
  add    $0x4,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x66,%rax
  jne    L410
L44:
  mov    %rbp,%rax
  jmp    L165
L1678:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L2065
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
L2065:
  add    $0x2,%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x6e,%rdx
  jne    L1295
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1640
  cmp    %rax,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
L1640:
  lea    0x2(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x63,%rdx
  jne    L1258
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L449
  cmp    %rax,%r13
  jbe    L635
  mov    0x2(%rbp),%rbx
L449:
  lea    0x3(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x6c,%rdx
  jne    L946
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L2181
  cmp    %rax,%r13
  jbe    L635
  mov    0x3(%rbp),%rbx
L2181:
  lea    0x4(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x75,%rdx
  jne    L83
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L718
  cmp    %rax,%r13
  jbe    L635
  mov    0x4(%rbp),%rbx
L718:
  lea    0x5(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x64,%rdx
  jne    L1756
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L673
  cmp    %rax,%r13
  jbe    L635
  mov    0x5(%rbp),%rbx
L673:
  add    $0x6,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  mov    %rbp,%rdx
  cmp    $0x65,%rax
  jne    L410
  jmp    L1757
L485:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L1775
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
L1775:
  add    $0x2,%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x65,%rdx
  jne    L973
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1019
  cmp    %rax,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
L1019:
  lea    0x2(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x66,%rdx
  jne    L149
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L610
  cmp    %rax,%r13
  jbe    L635
  mov    0x2(%rbp),%rbx
L610:
  lea    0x3(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x69,%rdx
  jne    L636
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L1165
  cmp    %rax,%r13
  jbe    L635
  mov    0x3(%rbp),%rbx
L1165:
  lea    0x4(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x6e,%rdx
  jne    L1475
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L991
  cmp    %rax,%r13
  jbe    L635
  mov    0x4(%rbp),%rbx
L991:
  add    $0x5,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x65,%rax
  jne    L410
  jmp    L44
L1668:
  mov    %rsi,%rdx
L1757:
  shl    $0x8,%rbx
  test   $0x7,%dl
  jne    L1074
  cmp    %r13,%rdx
  jae    L635
  mov    (%rdx),%rbx
L1074:
  lea    0x1(%rdx),%rsi
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x9,%rax
  je     L1668
  cmp    $0x20,%rax
  je     L1668
  cmp    $0x22,%rax
  je     L1054
  cmp    $0x3c,%rax
  je     L2071
  mov    %rsi,%rbp
  jmp    L410
L1054:
  mov    %rsi,%rax
  jmp    L2159
L2081:
  cmp    %r13,%rax
  jae    L635
  mov    (%rax),%rbx
L849:
  lea    0x1(%rax),%rbp
  mov    %rbx,%rcx
  shr    $0x38,%rcx
  cmp    $0xa,%rcx
  je     L1669
  cmp    $0x22,%rcx
  je     L379
  mov    %rbp,%rax
L2159:
  test   $0x7,%al
  je     L2081
  shl    $0x8,%rbx
  jmp    L849
L379:
  sub    %rdx,%rax
  lea    -0x1(%rax),%edx
  mov    $0x1,%edi
  call   <handle_include@plt>
  jmp    L1669
L2071:
  mov    %rsi,%rax
  jmp    L151
L939:
  cmp    %r13,%rax
  jae    L635
  mov    (%rax),%rbx
L1620:
  lea    0x1(%rax),%rbp
  mov    %rbx,%rcx
  shr    $0x38,%rcx
  cmp    $0xa,%rcx
  je     L1669
  cmp    $0x3e,%rcx
  je     L1041
  mov    %rbp,%rax
L151:
  test   $0x7,%al
  je     L939
  shl    $0x8,%rbx
  jmp    L1620
L1041:
  sub    %rdx,%rax
  lea    -0x1(%rax),%edx
  mov    $0x0,%edi
  call   <handle_include@plt>
  jmp    L1669
L1794:
  mov    %rbp,%rax
L165:
  shl    $0x8,%rbx
  test   $0x7,%al
  jne    L503
  cmp    %r13,%rax
  jae    L635
  mov    (%rax),%rbx
L503:
  lea    0x1(%rax),%rbp
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x9,%rdx
  je     L1794
  cmp    $0x20,%rdx
  je     L1794
  cmp    $0x43,%rdx
  jne    L410
  test   $0x7,%bpl
  je     L371
  shl    $0x8,%rbx
L2125:
  add    $0x2,%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x4f,%rdx
  jne    L15
  test   $0x7,%al
  je     L1391
  shl    $0x8,%rbx
L496:
  lea    0x2(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x4e,%rdx
  jne    L1169
  test   $0x7,%al
  je     L217
  shl    $0x8,%rbx
L1623:
  lea    0x3(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x46,%rdx
  jne    L2112
  test   $0x7,%al
  je     L1677
  shl    $0x8,%rbx
L153:
  lea    0x4(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x49,%rdx
  jne    L753
  test   $0x7,%al
  je     L1819
  shl    $0x8,%rbx
L699:
  lea    0x5(%rbp),%rax
  mov    %rbx,%rdx
  shr    $0x38,%rdx
  cmp    $0x47,%rdx
  jne    L2093
  test   $0x7,%al
  je     L9
  shl    $0x8,%rbx
L695:
  add    $0x6,%rbp
  mov    %rbx,%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  jne    L410
L747:
  shl    $0x8,%rbx
  test   $0x7,%bpl
  jne    L1361
  cmp    %r13,%rbp
  jae    L635
  mov    0x0(%rbp),%rbx
L1361:
  add    $0x1,%rbp
  mov    %rbx,%r12
  shr    $0x38,%r12
  movsbl %r12b,%edi
  call   <isalnum@plt>
  cmp    $0x5f,%r12
  je     L747
  test   %rax,%rax
  jne    L747
  jmp    L410
L371:
  cmp    %rbp,%r13
  jbe    L635
  mov    0x0(%rbp),%rbx
  jmp    L2125
L1391:
  cmp    %rax,%r13
  jbe    L635
  mov    0x1(%rbp),%rbx
  jmp    L496
L217:
  cmp    %rax,%r13
  jbe    L635
  mov    0x2(%rbp),%rbx
  jmp    L1623
L1677:
  cmp    %rax,%r13
  jbe    L635
  mov    0x3(%rbp),%rbx
  jmp    L153
L1819:
  cmp    %rax,%r13
  jbe    L635
  mov    0x4(%rbp),%rbx
  jmp    L699
L9:
  cmp    %rax,%r13
  jbe    L635
  mov    0x5(%rbp),%rbx
  jmp    L695
L1360:
  movsbl -0x2(%rbp),%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L1669
  cmpb   $0x5f,-0x2(%rbp)
  jne    L1528
  jmp    L1669
L635:
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D2
data_type: string

tool: D2: SMP

assistant: ```c
void state_machine(const char *map, const char *end) {
  const char *next = map;
  const char *map_dot;
  unsigned long __buf = 0;
  for (;;) {
  start : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
  __start:
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) > ((('/') > ((('\'') > ((('"') > ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))))) ? ('\'') : ((('"') > ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))))))) ? ('/') : ((('\'') > ((('"') > ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))))) ? ('\'') : ((('"') > ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') > ((('C') > ('_') ? ('C') : ('_'))) ? ('#') : ((('C') > ('_') ? ('C') : ('_'))))))))))))
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) < ((('/') < ((('\'') < ((('"') < ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))))) ? ('\'') : ((('"') < ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))))))) ? ('/') : ((('\'') < ((('"') < ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))))) ? ('\'') : ((('"') < ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))) ? ('"') : ((('#') < ((('C') < ('_') ? ('C') : ('_'))) ? ('#') : ((('C') < ('_') ? ('C') : ('_'))))))))))))
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '/')
      goto slash;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\'')
      goto squote;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '"')
      goto dquote;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '#')
      goto pound;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == 'C')
      goto cee;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '_')
      goto underscore;
    goto start;
  slash_slash : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\n')
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '\\')
      goto slash_slash;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    goto slash_slash;
  slash : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '/')
      goto slash_slash;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '*')
      goto __start;
  slash_star_dot_star : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
  __slash_star_dot_star:
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '*')
      goto slash_star_dot_star;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '/')
      goto __slash_star_dot_star;
    goto start;
  squote : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\'')
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '\\')
      goto squote;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    goto squote;
  dquote : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '"')
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '\\')
      goto dquote;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    goto dquote;
  pound : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == ' ')
      goto pound;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\t')
      goto pound;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == 'i')
      goto pound_i;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == 'd')
      goto pound_d;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == 'u')
      goto pound_u;
    goto __start;
  pound_i : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'n')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'c')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'l')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'u')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'd')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'e')
      goto __start;
    goto pound_include;
  pound_include : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == ' ')
      goto pound_include;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\t')
      goto pound_include;
    map_dot = next;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '"')
      goto pound_include_dquote;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '<')
      goto pound_include_langle;
    goto __start;
  pound_include_dquote : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\n')
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '"')
      goto pound_include_dquote;
    handle_include(1, map_dot, next - map_dot - 1);
    goto start;
  pound_include_langle : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\n')
      goto start;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '>')
      goto pound_include_langle;
    handle_include(0, map_dot, next - map_dot - 1);
    goto start;
  pound_d : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'e')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'f')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'i')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'n')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'e')
      goto __start;
    goto pound_define_undef;
  pound_u : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'n')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'd')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'e')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'f')
      goto __start;
    goto pound_define_undef;
  pound_define_undef : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == ' ')
      goto pound_define_undef;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) == '\t')
      goto pound_define_undef;
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'C')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'O')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'N')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'F')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'I')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'G')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '_')
      goto __start;
    map_dot = next;
  pound_define_undef_CONFIG_word : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (isalnum((__buf >> 8 * (sizeof(unsigned long) - 1))) || (__buf >> 8 * (sizeof(unsigned long) - 1)) == '_')
      goto pound_define_undef_CONFIG_word;
    goto __start;
  cee:
    if (next >= map + 2 && (isalnum(next[-2]) || next[-2] == '_'))
      goto start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'O')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'N')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'F')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'I')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'G')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '_')
      goto __start;
    map_dot = next;
  cee_CONFIG_word : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if (isalnum((__buf >> 8 * (sizeof(unsigned long) - 1))) || (__buf >> 8 * (sizeof(unsigned long) - 1)) == '_')
      goto cee_CONFIG_word;
    use_config(map_dot, next - map_dot - 1);
    goto __start;
  underscore : {
    (__buf <<= 8);
    if ((unsigned long)next % sizeof(unsigned long) == 0) {
      if (next >= end)
        break;
      __buf = *(unsigned long *)next;
    }
    next++;
  }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '_')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'S')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'M')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != 'P')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '_')
      goto __start;
    {
      (__buf <<= 8);
      if ((unsigned long)next % sizeof(unsigned long) == 0) {
        if (next >= end)
          break;
        __buf = *(unsigned long *)next;
      }
      next++;
    }
    if ((__buf >> 8 * (sizeof(unsigned long) - 1)) != '_')
      goto __start;
    use_config("SMP", 3);
    goto __start;
  }
}
```