user: 请从给定的汇编指令推导出C源代码:

```asm
<gs1_lint>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x30,%rsp
  mov    %edi,-0x4(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %edx,-0x8(%rbp)
  mov    %rcx,-0x18(%rbp)
  mov    %r8,-0x20(%rbp)
  mov    %r9,-0x28(%rbp)
  mov    -0x18(%rbp),%rax
  movl   $0x2,(%rax)
  cmpl   $0x63,-0x4(%rbp)
  jg     L1289
  cmpl   $0x0,-0x4(%rbp)
  jne    L1224
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n18_csum_key@plt>
  jmp    L2187
L1224:
  cmpl   $0x1,-0x4(%rbp)
  je     L1878
  cmpl   $0x2,-0x4(%rbp)
  jne    L2725
L1878:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n14_csum_key@plt>
  jmp    L2187
L2725:
  cmpl   $0xa,-0x4(%rbp)
  je     L2481
  cmpl   $0x15,-0x4(%rbp)
  je     L2481
  cmpl   $0x16,-0x4(%rbp)
  jne    L923
L2481:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L923:
  cmpl   $0xa,-0x4(%rbp)
  jle    L431
  cmpl   $0xd,-0x4(%rbp)
  jle    L1872
L431:
  cmpl   $0xe,-0x4(%rbp)
  jle    L69
  cmpl   $0x11,-0x4(%rbp)
  jg     L69
L1872:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6_yymmd0@plt>
  jmp    L2187
L69:
  cmpl   $0x14,-0x4(%rbp)
  jne    L2354
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n2@plt>
  jmp    L2187
L2354:
  cmpl   $0x1e,-0x4(%rbp)
  je     L286
  cmpl   $0x25,-0x4(%rbp)
  jne    L2488
L286:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1__8@plt>
  jmp    L2187
L2488:
  cmpl   $0x5a,-0x4(%rbp)
  jne    L228
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30@plt>
  jmp    L2187
L228:
  cmpl   $0x5a,-0x4(%rbp)
  jle    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__90@plt>
  jmp    L2187
L1289:
  cmpl   $0x12b,-0x4(%rbp)
  jg     L1428
  cmpl   $0xeb,-0x4(%rbp)
  jne    L635
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__28@plt>
  jmp    L2187
L635:
  cmpl   $0xf0,-0x4(%rbp)
  je     L1105
  cmpl   $0xf1,-0x4(%rbp)
  je     L1105
  cmpl   $0xfa,-0x4(%rbp)
  je     L1105
  cmpl   $0xfb,-0x4(%rbp)
  jne    L2996
L1105:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30@plt>
  jmp    L2187
L2996:
  cmpl   $0xf2,-0x4(%rbp)
  jne    L401
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1__6@plt>
  jmp    L2187
L401:
  cmpl   $0xf3,-0x4(%rbp)
  je     L2202
  cmpl   $0xfe,-0x4(%rbp)
  jne    L53
L2202:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L53:
  cmpl   $0xfd,-0x4(%rbp)
  jne    L2693
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n13_csum_key_x0__17@plt>
  jmp    L2187
L2693:
  cmpl   $0xff,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n13_csum_key_n0__12@plt>
  jmp    L2187
L1428:
  cmpl   $0x1f3,-0x4(%rbp)
  jg     L845
  cmpl   $0x190,-0x4(%rbp)
  je     L1839
  cmpl   $0x193,-0x4(%rbp)
  jne    L31
L1839:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30@plt>
  jmp    L2187
L31:
  cmpl   $0x191,-0x4(%rbp)
  jne    L250
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30_key@plt>
  jmp    L2187
L250:
  cmpl   $0x192,-0x4(%rbp)
  jne    L132
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n17_csum_key@plt>
  jmp    L2187
L132:
  cmpl   $0x199,-0x4(%rbp)
  jle    L2001
  cmpl   $0x1a1,-0x4(%rbp)
  jg     L2001
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n13_csum_key@plt>
  jmp    L2187
L2001:
  cmpl   $0x1a4,-0x4(%rbp)
  jne    L2515
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L2515:
  cmpl   $0x1a5,-0x4(%rbp)
  jne    L1081
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n3_iso3166_x1__9@plt>
  jmp    L2187
L1081:
  cmpl   $0x1a6,-0x4(%rbp)
  je     L447
  cmpl   $0x1a8,-0x4(%rbp)
  je     L447
  cmpl   $0x1aa,-0x4(%rbp)
  jne    L646
L447:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n3_iso3166@plt>
  jmp    L2187
L646:
  cmpl   $0x1a7,-0x4(%rbp)
  je     L1274
  cmpl   $0x1a9,-0x4(%rbp)
  jne    L201
L1274:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n3__15_iso3166list@plt>
  jmp    L2187
L201:
  cmpl   $0x1ab,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__3@plt>
  jmp    L2187
L845:
  cmpl   $0x31f,-0x4(%rbp)
  jg     L782
  cmpl   $0x2c5,-0x4(%rbp)
  jle    L2543
  cmpl   $0x2ca,-0x4(%rbp)
  jg     L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L782:
  cmpl   $0xc7f,-0x4(%rbp)
  jg     L484
  cmpl   $0xc1b,-0x4(%rbp)
  jle    L2668
  cmpl   $0xc21,-0x4(%rbp)
  jle    L2128
L2668:
  cmpl   $0xc25,-0x4(%rbp)
  jle    L589
  cmpl   $0xc2b,-0x4(%rbp)
  jle    L2128
L589:
  cmpl   $0xc2f,-0x4(%rbp)
  jle    L233
  cmpl   $0xc35,-0x4(%rbp)
  jle    L2128
L233:
  cmpl   $0xc39,-0x4(%rbp)
  jle    L766
  cmpl   $0xc3f,-0x4(%rbp)
  jle    L2128
L766:
  cmpl   $0xc43,-0x4(%rbp)
  jle    L2765
  cmpl   $0xc49,-0x4(%rbp)
  jle    L2128
L2765:
  cmpl   $0xc4d,-0x4(%rbp)
  jle    L967
  cmpl   $0xc53,-0x4(%rbp)
  jle    L2128
L967:
  cmpl   $0xc57,-0x4(%rbp)
  jle    L2543
  cmpl   $0xc5d,-0x4(%rbp)
  jg     L2543
L2128:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L484:
  cmpl   $0xce3,-0x4(%rbp)
  jg     L398
  cmpl   $0xc85,-0x4(%rbp)
  jle    L1533
  cmpl   $0xc89,-0x4(%rbp)
  jle    L1784
  cmpl   $0xc8f,-0x4(%rbp)
  jle    L1533
L1784:
  cmpl   $0xc93,-0x4(%rbp)
  jle    L1151
  cmpl   $0xc99,-0x4(%rbp)
  jle    L1533
L1151:
  cmpl   $0xc9d,-0x4(%rbp)
  jle    L1181
  cmpl   $0xca3,-0x4(%rbp)
  jle    L1533
L1181:
  cmpl   $0xca7,-0x4(%rbp)
  jle    L2259
  cmpl   $0xcad,-0x4(%rbp)
  jle    L1533
L2259:
  cmpl   $0xcb1,-0x4(%rbp)
  jle    L2167
  cmpl   $0xcb7,-0x4(%rbp)
  jle    L1533
L2167:
  cmpl   $0xcbb,-0x4(%rbp)
  jle    L1204
  cmpl   $0xcc1,-0x4(%rbp)
  jle    L1533
L1204:
  cmpl   $0xcc5,-0x4(%rbp)
  jle    L2718
  cmpl   $0xccb,-0x4(%rbp)
  jle    L1533
L2718:
  cmpl   $0xccf,-0x4(%rbp)
  jle    L1605
  cmpl   $0xcd5,-0x4(%rbp)
  jle    L1533
L1605:
  cmpl   $0xcd9,-0x4(%rbp)
  jle    L2543
  cmpl   $0xcdf,-0x4(%rbp)
  jg     L2543
L1533:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L398:
  cmpl   $0xd47,-0x4(%rbp)
  jg     L1643
  cmpl   $0xce9,-0x4(%rbp)
  jle    L119
  cmpl   $0xced,-0x4(%rbp)
  jle    L1291
  cmpl   $0xcf3,-0x4(%rbp)
  jle    L119
L1291:
  cmpl   $0xcf7,-0x4(%rbp)
  jle    L1796
  cmpl   $0xcfd,-0x4(%rbp)
  jle    L119
L1796:
  cmpl   $0xd01,-0x4(%rbp)
  jle    L534
  cmpl   $0xd07,-0x4(%rbp)
  jle    L119
L534:
  cmpl   $0xd0b,-0x4(%rbp)
  jle    L1912
  cmpl   $0xd11,-0x4(%rbp)
  jle    L119
L1912:
  cmpl   $0xd15,-0x4(%rbp)
  jle    L3042
  cmpl   $0xd1b,-0x4(%rbp)
  jle    L119
L3042:
  cmpl   $0xd1f,-0x4(%rbp)
  jle    L1723
  cmpl   $0xd25,-0x4(%rbp)
  jle    L119
L1723:
  cmpl   $0xd29,-0x4(%rbp)
  jle    L2543
  cmpl   $0xd2f,-0x4(%rbp)
  jg     L2543
L119:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L1643:
  cmpl   $0xdab,-0x4(%rbp)
  jg     L1248
  cmpl   $0xd4d,-0x4(%rbp)
  jle    L2540
  cmpl   $0xd51,-0x4(%rbp)
  jle    L360
  cmpl   $0xd57,-0x4(%rbp)
  jle    L2540
L360:
  cmpl   $0xd5b,-0x4(%rbp)
  jle    L144
  cmpl   $0xd61,-0x4(%rbp)
  jle    L2540
L144:
  cmpl   $0xd65,-0x4(%rbp)
  jle    L1464
  cmpl   $0xd6b,-0x4(%rbp)
  jle    L2540
L1464:
  cmpl   $0xd6f,-0x4(%rbp)
  jle    L758
  cmpl   $0xd75,-0x4(%rbp)
  jle    L2540
L758:
  cmpl   $0xd79,-0x4(%rbp)
  jle    L2379
  cmpl   $0xd7f,-0x4(%rbp)
  jle    L2540
L2379:
  cmpl   $0xd83,-0x4(%rbp)
  jle    L2023
  cmpl   $0xd89,-0x4(%rbp)
  jle    L2540
L2023:
  cmpl   $0xd8d,-0x4(%rbp)
  jle    L3013
  cmpl   $0xd93,-0x4(%rbp)
  jle    L2540
L3013:
  cmpl   $0xd97,-0x4(%rbp)
  jle    L2223
  cmpl   $0xd9d,-0x4(%rbp)
  jle    L2540
L2223:
  cmpl   $0xda1,-0x4(%rbp)
  jle    L2543
  cmpl   $0xda7,-0x4(%rbp)
  jg     L2543
L2540:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L1248:
  cmpl   $0xe0f,-0x4(%rbp)
  jg     L2165
  cmpl   $0xdb1,-0x4(%rbp)
  jle    L329
  cmpl   $0xdb5,-0x4(%rbp)
  jle    L820
  cmpl   $0xdbb,-0x4(%rbp)
  jle    L329
L820:
  cmpl   $0xdbf,-0x4(%rbp)
  jle    L2053
  cmpl   $0xdc5,-0x4(%rbp)
  jle    L329
L2053:
  cmpl   $0xdc9,-0x4(%rbp)
  jle    L2798
  cmpl   $0xdcf,-0x4(%rbp)
  jle    L329
L2798:
  cmpl   $0xdd3,-0x4(%rbp)
  jle    L1332
  cmpl   $0xdd9,-0x4(%rbp)
  jle    L329
L1332:
  cmpl   $0xddd,-0x4(%rbp)
  jle    L1659
  cmpl   $0xde3,-0x4(%rbp)
  jle    L329
L1659:
  cmpl   $0xde7,-0x4(%rbp)
  jle    L542
  cmpl   $0xded,-0x4(%rbp)
  jle    L329
L542:
  cmpl   $0xdf1,-0x4(%rbp)
  jle    L2543
  cmpl   $0xdf7,-0x4(%rbp)
  jg     L2543
L329:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L2165:
  cmpl   $0xe73,-0x4(%rbp)
  jg     L1202
  cmpl   $0xe15,-0x4(%rbp)
  jle    L1468
  cmpl   $0xe19,-0x4(%rbp)
  jle    L1587
  cmpl   $0xe1f,-0x4(%rbp)
  jle    L1468
L1587:
  cmpl   $0xe23,-0x4(%rbp)
  jle    L436
  cmpl   $0xe29,-0x4(%rbp)
  jle    L1468
L436:
  cmpl   $0xe2d,-0x4(%rbp)
  jle    L2830
  cmpl   $0xe33,-0x4(%rbp)
  jle    L1468
L2830:
  cmpl   $0xe37,-0x4(%rbp)
  jle    L257
  cmpl   $0xe3d,-0x4(%rbp)
  jle    L1468
L257:
  cmpl   $0xe41,-0x4(%rbp)
  jle    L1408
  cmpl   $0xe47,-0x4(%rbp)
  jle    L1468
L1408:
  cmpl   $0xe4b,-0x4(%rbp)
  jle    L1884
  cmpl   $0xe51,-0x4(%rbp)
  jle    L1468
L1884:
  cmpl   $0xe55,-0x4(%rbp)
  jle    L164
  cmpl   $0xe5b,-0x4(%rbp)
  jle    L1468
L164:
  cmpl   $0xe5f,-0x4(%rbp)
  jle    L1754
  cmpl   $0xe65,-0x4(%rbp)
  jle    L1468
L1754:
  cmpl   $0xe69,-0x4(%rbp)
  jle    L2543
  cmpl   $0xe6f,-0x4(%rbp)
  jg     L2543
L1468:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L1202:
  cmpl   $0xf9f,-0x4(%rbp)
  jg     L532
  cmpl   $0xf3b,-0x4(%rbp)
  jle    L52
  cmpl   $0xf45,-0x4(%rbp)
  jle    L2509
L52:
  cmpl   $0xf4f,-0x4(%rbp)
  jle    L1763
  cmpl   $0xf59,-0x4(%rbp)
  jg     L1763
L2509:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1__15@plt>
  jmp    L2187
L1763:
  cmpl   $0xf45,-0x4(%rbp)
  jle    L2981
  cmpl   $0xf4f,-0x4(%rbp)
  jle    L2953
L2981:
  cmpl   $0xf59,-0x4(%rbp)
  jle    L3036
  cmpl   $0xf63,-0x4(%rbp)
  jg     L3036
L2953:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n3_iso4217_n1__15@plt>
  jmp    L2187
L3036:
  cmpl   $0xf63,-0x4(%rbp)
  jle    L494
  cmpl   $0xf67,-0x4(%rbp)
  jg     L494
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n4@plt>
  jmp    L2187
L494:
  cmpl   $0xf6d,-0x4(%rbp)
  jle    L2543
  cmpl   $0xf73,-0x4(%rbp)
  jg     L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L532:
  cmpl   $0x112f,-0x4(%rbp)
  jg     L2181
  cmpl   $0x10cc,-0x4(%rbp)
  je     L24
  cmpl   $0x10cd,-0x4(%rbp)
  je     L24
  cmpl   $0x10d6,-0x4(%rbp)
  je     L24
  cmpl   $0x10d7,-0x4(%rbp)
  je     L24
  cmpl   $0x10e0,-0x4(%rbp)
  jne    L2546
L24:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__35_pcenc@plt>
  jmp    L2187
L2546:
  cmpl   $0x10cd,-0x4(%rbp)
  jle    L1222
  cmpl   $0x10d2,-0x4(%rbp)
  jle    L493
L1222:
  cmpl   $0x10d7,-0x4(%rbp)
  jle    L2433
  cmpl   $0x10dc,-0x4(%rbp)
  jg     L2433
L493:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__70_pcenc@plt>
  jmp    L2187
L2433:
  cmpl   $0x10d3,-0x4(%rbp)
  je     L2584
  cmpl   $0x10dd,-0x4(%rbp)
  jne    L605
L2584:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x2_iso3166alpha2@plt>
  jmp    L2187
L605:
  cmpl   $0x10d4,-0x4(%rbp)
  je     L1058
  cmpl   $0x10df,-0x4(%rbp)
  jne    L1908
L1058:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30@plt>
  jmp    L2187
L1908:
  cmpl   $0x10de,-0x4(%rbp)
  jne    L1752
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L1752:
  cmpl   $0x10e0,-0x4(%rbp)
  jle    L16
  cmpl   $0x10e3,-0x4(%rbp)
  jg     L16
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1_yesno@plt>
  jmp    L2187
L16:
  cmpl   $0x10e4,-0x4(%rbp)
  je     L1819
  cmpl   $0x10e5,-0x4(%rbp)
  jne    L2612
L1819:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6_yymmd0_n4_hhmm@plt>
  jmp    L2187
L2612:
  cmpl   $0x10e6,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6_yymmdd@plt>
  jmp    L2187
L2181:
  cmpl   $0x1bbb,-0x4(%rbp)
  jg     L2832
  cmpl   $0x1b59,-0x4(%rbp)
  jne    L2065
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n13@plt>
  jmp    L2187
L2065:
  cmpl   $0x1b5a,-0x4(%rbp)
  jne    L2732
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30@plt>
  jmp    L2187
L2732:
  cmpl   $0x1b5b,-0x4(%rbp)
  jne    L1438
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6_yymmdd_n4_hhmm@plt>
  jmp    L2187
L1438:
  cmpl   $0x1b5c,-0x4(%rbp)
  jne    L204
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1__4@plt>
  jmp    L2187
L204:
  cmpl   $0x1b5d,-0x4(%rbp)
  jne    L477
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__12@plt>
  jmp    L2187
L477:
  cmpl   $0x1b5e,-0x4(%rbp)
  jne    L771
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6_yymmdd@plt>
  jmp    L2187
L771:
  cmpl   $0x1b5f,-0x4(%rbp)
  jne    L1219
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6_yymmdd_n0__6_yymmdd@plt>
  jmp    L2187
L1219:
  cmpl   $0x1b60,-0x4(%rbp)
  jne    L2803
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__3@plt>
  jmp    L2187
L2803:
  cmpl   $0x1b61,-0x4(%rbp)
  jne    L2014
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__10@plt>
  jmp    L2187
L2014:
  cmpl   $0x1b62,-0x4(%rbp)
  jne    L1275
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__2@plt>
  jmp    L2187
L1275:
  cmpl   $0x1b6b,-0x4(%rbp)
  jle    L2186
  cmpl   $0x1b6e,-0x4(%rbp)
  jg     L2186
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L2186:
  cmpl   $0x1b6f,-0x4(%rbp)
  jne    L2822
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30_key@plt>
  jmp    L2187
L2822:
  cmpl   $0x1b75,-0x4(%rbp)
  jle    L324
  cmpl   $0x1b7f,-0x4(%rbp)
  jg     L324
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n3_iso3166999_x1__27@plt>
  jmp    L2187
L324:
  cmpl   $0x1b80,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1_x1_x1_x1_importeridx@plt>
  jmp    L2187
L2832:
  cmpl   $0x1c83,-0x4(%rbp)
  jg     L2352
  cmpl   $0x1c3d,-0x4(%rbp)
  jle    L2110
  cmpl   $0x1c47,-0x4(%rbp)
  jg     L2110
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x2_x1__28@plt>
  jmp    L2187
L2110:
  cmpl   $0x1c48,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L2352:
  cmpl   $0x1fa3,-0x4(%rbp)
  jg     L1084
  cmpl   $0x1f41,-0x4(%rbp)
  jne    L904
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1@plt>
  jmp    L2187
L904:
  cmpl   $0x1f42,-0x4(%rbp)
  je     L266
  cmpl   $0x1f4c,-0x4(%rbp)
  jne    L1037
L266:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__20@plt>
  jmp    L2187
L1037:
  cmpl   $0x1f43,-0x4(%rbp)
  jne    L1612
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1_zero_n13_csum_key_x0__16@plt>
  jmp    L2187
L1612:
  cmpl   $0x1f44,-0x4(%rbp)
  jne    L1639
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__30_key@plt>
  jmp    L2187
L1639:
  cmpl   $0x1f45,-0x4(%rbp)
  jne    L1745
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n6@plt>
  jmp    L2187
L1745:
  cmpl   $0x1f46,-0x4(%rbp)
  je     L2413
  cmpl   $0x1f5a,-0x4(%rbp)
  jne    L2895
L2413:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n14_csum_n4_pieceoftotal@plt>
  jmp    L2187
L2895:
  cmpl   $0x1f47,-0x4(%rbp)
  jne    L127
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__34_iban@plt>
  jmp    L2187
L127:
  cmpl   $0x1f48,-0x4(%rbp)
  jne    L1553
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n8_yymmddhh_n0__4_mmoptss@plt>
  jmp    L2187
L1553:
  cmpl   $0x1f49,-0x4(%rbp)
  jne    L1010
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__50@plt>
  jmp    L2187
L1010:
  cmpl   $0x1f4a,-0x4(%rbp)
  jne    L2499
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <c1__30_key@plt>
  jmp    L2187
L2499:
  cmpl   $0x1f4b,-0x4(%rbp)
  jne    L781
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1__12_nozeroprefix@plt>
  jmp    L2187
L781:
  cmpl   $0x1f4d,-0x4(%rbp)
  jne    L1425
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__25_csumalpha_key@plt>
  jmp    L2187
L1425:
  cmpl   $0x1f51,-0x4(%rbp)
  je     L1036
  cmpl   $0x1f52,-0x4(%rbp)
  jne    L96
L1036:
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n18_csum@plt>
  jmp    L2187
L96:
  cmpl   $0x1f53,-0x4(%rbp)
  jne    L2746
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n1__10@plt>
  jmp    L2187
L2746:
  cmpl   $0x1f54,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__25@plt>
  jmp    L2187
L1084:
  cmpl   $0x2007,-0x4(%rbp)
  jg     L2454
  cmpl   $0x1fae,-0x4(%rbp)
  jne    L3049
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__70_couponcode@plt>
  jmp    L2187
L3049:
  cmpl   $0x1faf,-0x4(%rbp)
  jne    L296
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <n4@plt>
  jmp    L2187
L296:
  cmpl   $0x1fb0,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__70_couponposoffer@plt>
  jmp    L2187
L2454:
  cmpl   $0x206b,-0x4(%rbp)
  jg     L2543
  cmpl   $0x2008,-0x4(%rbp)
  jne    L2543
  mov    -0x28(%rbp),%rdi
  mov    -0x20(%rbp),%rcx
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%esi
  mov    -0x10(%rbp),%rax
  mov    %rdi,%r8
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <x1__70@plt>
  jmp    L2187
L2543:
  mov    -0x18(%rbp),%rax
  movl   $0x1,(%rax)
  mov    $0x0,%eax
L2187:
  leave
  ret
```

assistant: ```c
int gs1_lint(const int ai, const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) {
  *p_err_no = 2;
  if (ai < 100) {
    if (ai == 0) {
      return n18_csum_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 1 || ai == 2) {
      return n14_csum_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 10 || ai == 21 || ai == 22) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if ((ai >= 11 && ai <= 13) || (ai >= 15 && ai <= 17)) {
      return n6_yymmd0(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 20) {
      return n2(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 30 || ai == 37) {
      return n1__8(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 90) {
      return x1__30(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 91) {
      return x1__90(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 300) {
    if (ai == 235) {
      return x1__28(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 240 || ai == 241 || ai == 250 || ai == 251) {
      return x1__30(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 242) {
      return n1__6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 243 || ai == 254) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 253) {
      return n13_csum_key_x0__17(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 255) {
      return n13_csum_key_n0__12(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 500) {
    if (ai == 400 || ai == 403) {
      return x1__30(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 401) {
      return x1__30_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 402) {
      return n17_csum_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 410 && ai <= 417) {
      return n13_csum_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 420) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 421) {
      return n3_iso3166_x1__9(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 422 || ai == 424 || ai == 426) {
      return n3_iso3166(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 423 || ai == 425) {
      return n3__15_iso3166list(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 427) {
      return x1__3(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 800) {
    if (ai >= 710 && ai <= 714) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 3200) {
    if ((ai >= 3100 && ai <= 3105) || (ai >= 3110 && ai <= 3115) || (ai >= 3120 && ai <= 3125) || (ai >= 3130 && ai <= 3135) || (ai >= 3140 && ai <= 3145) || (ai >= 3150 && ai <= 3155) || (ai >= 3160 && ai <= 3165)) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 3300) {
    if (ai <= 3205 || (ai >= 3210 && ai <= 3215) || (ai >= 3220 && ai <= 3225) || (ai >= 3230 && ai <= 3235) || (ai >= 3240 && ai <= 3245) || (ai >= 3250 && ai <= 3255) || (ai >= 3260 && ai <= 3265) || (ai >= 3270 && ai <= 3275) || (ai >= 3280 && ai <= 3285) || (ai >= 3290 && ai <= 3295)) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 3400) {
    if (ai <= 3305 || (ai >= 3310 && ai <= 3315) || (ai >= 3320 && ai <= 3325) || (ai >= 3330 && ai <= 3335) || (ai >= 3340 && ai <= 3345) || (ai >= 3350 && ai <= 3355) || (ai >= 3360 && ai <= 3365) || (ai >= 3370 && ai <= 3375)) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 3500) {
    if (ai <= 3405 || (ai >= 3410 && ai <= 3415) || (ai >= 3420 && ai <= 3425) || (ai >= 3430 && ai <= 3435) || (ai >= 3440 && ai <= 3445) || (ai >= 3450 && ai <= 3455) || (ai >= 3460 && ai <= 3465) || (ai >= 3470 && ai <= 3475) || (ai >= 3480 && ai <= 3485) || (ai >= 3490 && ai <= 3495)) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 3600) {
    if (ai <= 3505 || (ai >= 3510 && ai <= 3515) || (ai >= 3520 && ai <= 3525) || (ai >= 3530 && ai <= 3535) || (ai >= 3540 && ai <= 3545) || (ai >= 3550 && ai <= 3555) || (ai >= 3560 && ai <= 3565) || (ai >= 3570 && ai <= 3575)) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 3700) {
    if (ai <= 3605 || (ai >= 3610 && ai <= 3615) || (ai >= 3620 && ai <= 3625) || (ai >= 3630 && ai <= 3635) || (ai >= 3640 && ai <= 3645) || (ai >= 3650 && ai <= 3655) || (ai >= 3660 && ai <= 3665) || (ai >= 3670 && ai <= 3675) || (ai >= 3680 && ai <= 3685) || (ai >= 3690 && ai <= 3695)) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 4000) {
    if ((ai >= 3900 && ai <= 3909) || (ai >= 3920 && ai <= 3929)) {
      return n1__15(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if ((ai >= 3910 && ai <= 3919) || (ai >= 3930 && ai <= 3939)) {
      return n3_iso4217_n1__15(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 3940 && ai <= 3943) {
      return n4(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 3950 && ai <= 3955) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 4400) {
    if (ai == 4300 || ai == 4301 || ai == 4310 || ai == 4311 || ai == 4320) {
      return x1__35_pcenc(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if ((ai >= 4302 && ai <= 4306) || (ai >= 4312 && ai <= 4316)) {
      return x1__70_pcenc(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 4307 || ai == 4317) {
      return x2_iso3166alpha2(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 4308 || ai == 4319) {
      return x1__30(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 4318) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 4321 && ai <= 4323) {
      return n1_yesno(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 4324 || ai == 4325) {
      return n6_yymmd0_n4_hhmm(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 4326) {
      return n6_yymmdd(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 7100) {
    if (ai == 7001) {
      return n13(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7002) {
      return x1__30(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7003) {
      return n6_yymmdd_n4_hhmm(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7004) {
      return n1__4(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7005) {
      return x1__12(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7006) {
      return n6_yymmdd(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7007) {
      return n6_yymmdd_n0__6_yymmdd(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7008) {
      return x1__3(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7009) {
      return x1__10(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7010) {
      return x1__2(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 7020 && ai <= 7022) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7023) {
      return x1__30_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai >= 7030 && ai <= 7039) {
      return n3_iso3166999_x1__27(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7040) {
      return n1_x1_x1_x1_importeridx(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 7300) {
    if (ai >= 7230 && ai <= 7239) {
      return x2_x1__28(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 7240) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 8100) {
    if (ai == 8001) {
      return n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8002 || ai == 8012) {
      return x1__20(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8003) {
      return n1_zero_n13_csum_key_x0__16(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8004) {
      return x1__30_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8005) {
      return n6(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8006 || ai == 8026) {
      return n14_csum_n4_pieceoftotal(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8007) {
      return x1__34_iban(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8008) {
      return n8_yymmddhh_n0__4_mmoptss(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8009) {
      return x1__50(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8010) {
      return c1__30_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8011) {
      return n1__12_nozeroprefix(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8013) {
      return x1__25_csumalpha_key(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8017 || ai == 8018) {
      return n18_csum(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8019) {
      return n1__10(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8020) {
      return x1__25(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 8200) {
    if (ai == 8110) {
      return x1__70_couponcode(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8111) {
      return n4(data, data_len, p_err_no, p_err_posn, err_msg);
    }
    if (ai == 8112) {
      return x1__70_couponposoffer(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  } else if (ai < 8300) {
    if (ai == 8200) {
      return x1__70(data, data_len, p_err_no, p_err_posn, err_msg);
    }
  }
  *p_err_no = 1;
  return 0;
}
```