user: What is the c source code of the assembly code below:

```asm
<state_machine>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    -0x28(%rbp),%rax
  mov    %rax,-0x18(%rbp)
  movq   $0x0,-0x10(%rbp)
L468:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1174
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2735
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1174:
  addq   $0x1,-0x18(%rbp)
L1660:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  jbe    L1580
  jmp    L468
L1580:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x21,%rax
  ja     L1103
  jmp    L468
L1103:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x2f,%rax
  je     L2425
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x27,%rax
  jne    L2223
  jmp    L487
L2223:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x22,%rax
  jne    L1304
  jmp    L2303
L1304:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x23,%rax
  jne    L1514
  jmp    L2390
L1514:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x43,%rax
  je     L102
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  je     L2324
  jmp    L468
L1141:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1165
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L40
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1165:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0xa,%rax
  jne    L1250
  jmp    L468
L1250:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5c,%rax
  je     L1226
  jmp    L1141
L1226:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L9
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L828
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L9:
  addq   $0x1,-0x18(%rbp)
  jmp    L1141
L2425:
  nop
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2059
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1073
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2059:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x2f,%rax
  jne    L1995
  jmp    L1141
L1995:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x2a,%rax
  je     L2762
  jmp    L1660
L2762:
  nop
L1243:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L284
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L221
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L284:
  addq   $0x1,-0x18(%rbp)
L1038:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x2a,%rax
  je     L1723
  jmp    L1243
L1723:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L13
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L29
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L13:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x2f,%rax
  je     L468
  jmp    L1038
L487:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L632
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2960
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L632:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x27,%rax
  jne    L259
  jmp    L468
L259:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5c,%rax
  je     L539
  jmp    L487
L539:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L494
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1490
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L494:
  addq   $0x1,-0x18(%rbp)
  jmp    L487
L2303:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2660
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L509
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2660:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x22,%rax
  jne    L2810
  jmp    L468
L2810:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5c,%rax
  je     L2295
  jmp    L2303
L2295:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1856
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1769
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1856:
  addq   $0x1,-0x18(%rbp)
  jmp    L2303
L2390:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L205
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1665
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L205:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x20,%rax
  jne    L814
  jmp    L2390
L814:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x9,%rax
  jne    L474
  jmp    L2390
L474:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x69,%rax
  je     L841
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x64,%rax
  je     L2843
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x75,%rax
  je     L2773
  jmp    L1660
L841:
  nop
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L380
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2298
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L380:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x6e,%rax
  je     L2119
  jmp    L1660
L2119:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2340
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2349
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2340:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x63,%rax
  je     L752
  jmp    L1660
L752:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2667
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1502
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2667:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x6c,%rax
  je     L136
  jmp    L1660
L136:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L658
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2867
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L658:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x75,%rax
  je     L2171
  jmp    L1660
L2171:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L50
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1345
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L50:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x64,%rax
  je     L2670
  jmp    L1660
L2670:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2726
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L203
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2726:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x65,%rax
  je     L1754
  jmp    L1660
L1754:
  nop
L1625:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1024
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2304
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1024:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x20,%rax
  jne    L2690
  jmp    L1625
L2690:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x9,%rax
  jne    L65
  jmp    L1625
L65:
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x22,%rax
  jne    L93
  jmp    L773
L93:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x3c,%rax
  jne    L1660
  jmp    L1862
L773:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1977
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1059
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1977:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0xa,%rax
  jne    L1907
  jmp    L468
L1907:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x22,%rax
  je     L979
  jmp    L773
L979:
  mov    -0x18(%rbp),%rax
  sub    -0x8(%rbp),%rax
  sub    $0x1,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  mov    $0x1,%edi
  call   <handle_include@plt>
  jmp    L468
L1862:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1516
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L748
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1516:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0xa,%rax
  jne    L326
  jmp    L468
L326:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x3e,%rax
  je     L697
  jmp    L1862
L697:
  mov    -0x18(%rbp),%rax
  sub    -0x8(%rbp),%rax
  sub    $0x1,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  mov    $0x0,%edi
  call   <handle_include@plt>
  jmp    L468
L2843:
  nop
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L213
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L32
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L213:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x65,%rax
  je     L1471
  jmp    L1660
L1471:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L364
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2008
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L364:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x66,%rax
  je     L1783
  jmp    L1660
L1783:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2772
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2089
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2772:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x69,%rax
  je     L1959
  jmp    L1660
L1959:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2880
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1897
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2880:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x6e,%rax
  je     L2758
  jmp    L1660
L2758:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1177
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L369
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1177:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x65,%rax
  je     L2636
  jmp    L1660
L2773:
  nop
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1627
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L851
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1627:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x6e,%rax
  je     L1694
  jmp    L1660
L1694:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2666
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2948
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2666:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x64,%rax
  je     L1688
  jmp    L1660
L1688:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L5
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L750
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L5:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x65,%rax
  je     L1669
  jmp    L1660
L1669:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1657
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L768
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1657:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x66,%rax
  je     L1216
  jmp    L1660
L2636:
  nop
  jmp    L218
L1216:
  nop
L218:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1780
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L173
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1780:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x20,%rax
  jne    L127
  jmp    L218
L127:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x9,%rax
  jne    L1108
  jmp    L218
L1108:
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x43,%rax
  je     L323
  jmp    L1660
L323:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L506
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2583
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L506:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x4f,%rax
  je     L156
  jmp    L1660
L156:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L940
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1274
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L940:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x4e,%rax
  je     L2430
  jmp    L1660
L2430:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1291
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2760
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1291:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x46,%rax
  je     L2838
  jmp    L1660
L2838:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1418
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2745
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1418:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x49,%rax
  je     L2899
  jmp    L1660
L2899:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2676
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1758
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2676:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x47,%rax
  je     L2555
  jmp    L1660
L2555:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L434
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1557
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L434:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  je     L775
  jmp    L1660
L775:
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
L1315:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1135
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L713
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1135:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L1315
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  jne    L1660
  jmp    L1315
L102:
  nop
  mov    -0x28(%rbp),%rax
  add    $0x2,%rax
  cmp    %rax,-0x18(%rbp)
  jb     L1892
  mov    -0x18(%rbp),%rax
  sub    $0x2,%rax
  movzbl (%rax),%eax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L468
  mov    -0x18(%rbp),%rax
  sub    $0x2,%rax
  movzbl (%rax),%eax
  cmp    $0x5f,%al
  jne    L1892
  jmp    L468
L1892:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2136
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2227
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2136:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x4f,%rax
  je     L2046
  jmp    L1660
L2046:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1787
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1847
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1787:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x4e,%rax
  je     L2562
  jmp    L1660
L2562:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1446
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2478
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1446:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x46,%rax
  je     L1182
  jmp    L1660
L1182:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1731
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2458
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1731:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x49,%rax
  je     L2557
  jmp    L1660
L2557:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L106
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1895
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L106:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x47,%rax
  je     L1346
  jmp    L1660
L1346:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2080
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1253
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2080:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  je     L2483
  jmp    L1660
L2483:
  mov    -0x18(%rbp),%rax
  mov    %rax,-0x8(%rbp)
L2505:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L583
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1912
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L583:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  movsbl %al,%eax
  mov    %eax,%edi
  call   <isalnum@plt>
  test   %rax,%rax
  jne    L2505
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  jne    L2402
  jmp    L2505
L2402:
  mov    -0x18(%rbp),%rax
  sub    -0x8(%rbp),%rax
  sub    $0x1,%eax
  mov    %eax,%edx
  mov    -0x8(%rbp),%rax
  mov    %edx,%esi
  mov    %rax,%rdi
  call   <use_config@plt>
  jmp    L1660
L2324:
  nop
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2232
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2571
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2232:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  je     L2789
  jmp    L1660
L2789:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2270
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2574
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2270:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x53,%rax
  je     L2018
  jmp    L1660
L2018:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2814
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L2706
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2814:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x4d,%rax
  je     L350
  jmp    L1660
L350:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L1019
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L891
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L1019:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x50,%rax
  je     L1600
  jmp    L1660
L1600:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L2060
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1785
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L2060:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  je     L2798
  jmp    L1660
L2798:
  shlq   $0x8,-0x10(%rbp)
  mov    -0x18(%rbp),%rax
  and    $0x7,%eax
  test   %rax,%rax
  jne    L513
  mov    -0x18(%rbp),%rax
  cmp    -0x30(%rbp),%rax
  jae    L1777
  mov    -0x18(%rbp),%rax
  mov    (%rax),%rax
  mov    %rax,-0x10(%rbp)
L513:
  addq   $0x1,-0x18(%rbp)
  mov    -0x10(%rbp),%rax
  shr    $0x38,%rax
  cmp    $0x5f,%rax
  je     L847
  jmp    L1660
L847:
  mov    $0x3,%esi
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <use_config@plt>
  jmp    L1660
L2735:
  nop
  jmp    L2184
L40:
  nop
  jmp    L2184
L828:
  nop
  jmp    L2184
L1073:
  nop
  jmp    L2184
L221:
  nop
  jmp    L2184
L29:
  nop
  jmp    L2184
L2960:
  nop
  jmp    L2184
L1490:
  nop
  jmp    L2184
L509:
  nop
  jmp    L2184
L1769:
  nop
  jmp    L2184
L1665:
  nop
  jmp    L2184
L2298:
  nop
  jmp    L2184
L2349:
  nop
  jmp    L2184
L1502:
  nop
  jmp    L2184
L2867:
  nop
  jmp    L2184
L1345:
  nop
  jmp    L2184
L203:
  nop
  jmp    L2184
L2304:
  nop
  jmp    L2184
L1059:
  nop
  jmp    L2184
L748:
  nop
  jmp    L2184
L32:
  nop
  jmp    L2184
L2008:
  nop
  jmp    L2184
L2089:
  nop
  jmp    L2184
L1897:
  nop
  jmp    L2184
L369:
  nop
  jmp    L2184
L851:
  nop
  jmp    L2184
L2948:
  nop
  jmp    L2184
L750:
  nop
  jmp    L2184
L768:
  nop
  jmp    L2184
L173:
  nop
  jmp    L2184
L2583:
  nop
  jmp    L2184
L1274:
  nop
  jmp    L2184
L2760:
  nop
  jmp    L2184
L2745:
  nop
  jmp    L2184
L1758:
  nop
  jmp    L2184
L1557:
  nop
  jmp    L2184
L713:
  nop
  jmp    L2184
L2227:
  nop
  jmp    L2184
L1847:
  nop
  jmp    L2184
L2478:
  nop
  jmp    L2184
L2458:
  nop
  jmp    L2184
L1895:
  nop
  jmp    L2184
L1253:
  nop
  jmp    L2184
L1912:
  nop
  jmp    L2184
L2571:
  nop
  jmp    L2184
L2574:
  nop
  jmp    L2184
L2706:
  nop
  jmp    L2184
L891:
  nop
  jmp    L2184
L1785:
  nop
  jmp    L2184
L1777:
  nop
L2184:
  nop
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D3
type: string

tool: D3: 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;
  }
}
```