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

```asm
<gs1_lint>:
  endbr64
  mov    %edi,%eax
  mov    %r8,%r10
  mov    %rsi,%rdi
  movl   $0x2,(%rcx)
  mov    %edx,%esi
  mov    %r9,%r8
  mov    %rcx,%rdx
  cmp    $0x63,%eax
  jg     L282
  test   %eax,%eax
  je     L885
  lea    -0x1(%rax),%ecx
  cmp    $0x1,%ecx
  jbe    L905
  lea    -0xa(%rax),%ecx
  cmp    $0x50,%ecx
  ja     L56
  lea    D58(%rip),%r9
  movslq (%r9,%rcx,4),%rcx
  add    %r9,%rcx
  notrack jmp *%rcx
  nopl   0x0(%rax)
L282:
  cmp    $0x12b,%eax
  jg     L153
  sub    $0xeb,%eax
  cmp    $0x14,%eax
  ja     L25
  lea    D0(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
  nopw   0x0(%rax,%rax,1)
L153:
  cmp    $0x1f3,%eax
  jg     L88
  cmp    $0x1a5,%eax
  jg     L686
  cmp    $0x18f,%eax
  jle    L25
  sub    $0x190,%eax
  cmp    $0x15,%eax
  ja     L25
  lea    D48(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
L56:
  cmp    $0x5a,%eax
  jg     L940
L25:
  movl   $0x1,(%rdx)
  xor    %eax,%eax
  ret
  nopw   0x0(%rax,%rax,1)
L88:
  cmp    $0x31f,%eax
  jg     L368
  sub    $0x2c6,%eax
  cmp    $0x4,%eax
  ja     L25
L90:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25a0 <x1__20@plt>
  nopl   0x0(%rax,%rax,1)
L885:
  mov    %r10,%rcx
  jmp    2620 <n18_csum_key@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2650 <x1__30@plt>
  nopw   0x0(%rax,%rax,1)
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23b0 <n6_yymmd0@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2450 <n1__8@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2400 <n2@plt>
  xchg   %ax,%ax
L686:
  lea    -0x1a6(%rax),%ecx
  cmp    $0x5,%ecx
  ja     L25
  mov    $0x1,%r9d
  shl    %cl,%r9
  test   $0x15,%r9b
  je     L488
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23d0 <n3_iso3166@plt>
  nopl   0x0(%rax)
L368:
  cmp    $0xc7f,%eax
  jle    L680
  cmp    $0xce3,%eax
  jg     L429
  lea    -0xc8a(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  cmp    $0xc85,%eax
  jle    L703
  cmp    $0xcdf,%eax
  jg     L25
  cmp    $0xca7,%eax
  jg     L482
  cmp    $0xc99,%eax
  jg     L696
  cmp    $0xc93,%eax
  jle    L25
L703:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2460 <n6@plt>
  cs nopw 0x0(%rax,%rax,1)
L488:
  and    $0xa,%r9d
  je     L895
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26f0 <n3__15_iso3166list@plt>
L905:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2640 <n14_csum_key@plt>
  nopw   0x0(%rax,%rax,1)
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2480 <n13_csum_key@plt>
  nopw   0x0(%rax,%rax,1)
L680:
  lea    -0xc1c(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  lea    -0xc26(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  sub    $0xc30,%eax
  cmp    $0x2d,%eax
  ja     L25
  movabs $0x3f0fc3f0fc3f,%rcx
  bt     %rax,%rcx
  jb     L703
  jmp    L25
  nopl   0x0(%rax)
L895:
  cmp    $0x5,%ecx
  jne    L25
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2420 <x1__3@plt>
  nopl   0x0(%rax,%rax,1)
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2430 <x1__28@plt>
  nopw   0x0(%rax,%rax,1)
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25f0 <n13_csum_key_x0__17@plt>
  nopw   0x0(%rax,%rax,1)
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26c0 <n1__6@plt>
  nopw   0x0(%rax,%rax,1)
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2570 <n13_csum_key_n0__12@plt>
  nopw   0x0(%rax,%rax,1)
L940:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26a0 <x1__90@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24b0 <n17_csum_key@plt>
L523:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23c0 <x1__30_key@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2490 <n3_iso3166_x1__9@plt>
L429:
  cmp    $0xd47,%eax
  jg     L349
  lea    -0xcee(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  cmp    $0xce9,%eax
  jle    L703
  sub    $0xcf8,%eax
  cmp    $0x37,%eax
  ja     L25
L921:
  movabs $0xfc3f0fc3f0fc3f,%rcx
  bt     %rax,%rcx
  jb     L703
  jmp    L25
L696:
  sub    $0xc9e,%eax
  cmp    $0x5,%eax
  ja     L25
  jmp    L703
L482:
  movabs $0xfc3f0fc3f0fc3f,%rcx
  sub    $0xca8,%eax
  bt     %rax,%rcx
  jb     L703
  jmp    L25
L349:
  cmp    $0xdab,%eax
  jg     L533
  lea    -0xd52(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  cmp    $0xd4d,%eax
  jle    L703
  cmp    $0xda7,%eax
  jg     L25
  cmp    $0xd6f,%eax
  jg     L29
  cmp    $0xd61,%eax
  jg     L164
  cmp    $0xd5b,%eax
  jle    L25
  jmp    L703
L533:
  cmp    $0xe0f,%eax
  jg     L719
  lea    -0xdb6(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  cmp    $0xdb1,%eax
  jle    L703
  sub    $0xdc0,%eax
  cmp    $0x37,%eax
  jbe    L921
  jmp    L25
L164:
  sub    $0xd66,%eax
  cmp    $0x5,%eax
  ja     L25
  jmp    L703
L29:
  movabs $0xfc3f0fc3f0fc3f,%rcx
  sub    $0xd70,%eax
  bt     %rax,%rcx
  jb     L703
  jmp    L25
L719:
  cmp    $0xe73,%eax
  jg     L306
  lea    -0xe1a(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L703
  cmp    $0xe15,%eax
  jle    L703
  cmp    $0xe6f,%eax
  jg     L25
  cmp    $0xe37,%eax
  jg     L9
  cmp    $0xe29,%eax
  jg     L510
  cmp    $0xe23,%eax
  jle    L25
  jmp    L703
L306:
  cmp    $0xf9f,%eax
  jg     L775
  lea    -0xf3c(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L2
  lea    -0xf50(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L2
  lea    -0xf46(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L524
  lea    -0xf5a(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L524
  lea    -0xf64(%rax),%ecx
  cmp    $0x3,%ecx
  jbe    L641
  sub    $0xf6e,%eax
  cmp    $0x5,%eax
  ja     L25
  jmp    L703
L510:
  sub    $0xe2e,%eax
  cmp    $0x5,%eax
  ja     L25
  jmp    L703
L9:
  movabs $0xfc3f0fc3f0fc3f,%r9
  sub    $0xe38,%eax
  mov    %eax,%ecx
  shr    %cl,%r9
  and    $0x1,%r9b
  jne    L703
  jmp    L25
L775:
  cmp    $0x112f,%eax
  jg     L687
  lea    -0x10cc(%rax),%ecx
  cmp    $0x1,%ecx
  jbe    L563
  cmp    $0x10d6,%eax
  je     L563
  sub    $0x10ce,%eax
  cmp    $0x18,%eax
  ja     L25
  lea    D53(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24e0 <x1__70_pcenc@plt>
L687:
  cmp    $0x1bbb,%eax
  jg     L94
  lea    -0x1b59(%rax),%ecx
  cmp    $0x9,%ecx
  ja     L101
  lea    D45(%rip),%r9
  movslq (%r9,%rcx,4),%rax
  add    %r9,%rax
  notrack jmp *%rax
L563:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24d0 <x1__35_pcenc@plt>
L641:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2540 <n4@plt>
L524:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2510 <n3_iso4217_n1__15@plt>
L2:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2580 <n1__15@plt>
L94:
  cmp    $0x1c83,%eax
  jg     L737
  lea    -0x1c3e(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L313
  cmp    $0x1c48,%eax
  jne    L25
  jmp    L90
L737:
  cmp    $0x1fa3,%eax
  jg     L129
  sub    $0x1f41,%eax
  cmp    $0x19,%eax
  ja     L25
  lea    D12(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
L313:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24a0 <x2_x1__28@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25c0 <x1__25@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25e0 <n1__10@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2440 <n18_csum@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24c0 <x1__25_csumalpha_key@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2520 <n1__12_nozeroprefix@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2590 <c1__30_key@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2560 <x1__50@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2610 <n8_yymmddhh_n0__4_mmoptss@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2690 <x1__34_iban@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2410 <n14_csum_n4_pieceoftotal@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25d0 <n1_zero_n13_csum_key_x0__16@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2530 <n4_nonzero_n5_nonzero_n3_nonzero_n1_winding_n1@plt>
L129:
  cmp    $0x2007,%eax
  jg     L10
  cmp    $0x1fae,%eax
  je     L973
  cmp    $0x1faf,%eax
  je     L641
  cmp    $0x1fb0,%eax
  jne    L25
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26d0 <x1__70_couponposoffer@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23a0 <n6_yymmdd@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2470 <n6_yymmd0_n4_hhmm@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2550 <n1_yesno@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23e0 <x2_iso3166alpha2@plt>
L973:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2670 <x1__70_couponcode@plt>
L10:
  cmp    $0x2008,%eax
  jne    L25
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2660 <x1__70@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24f0 <x1__10@plt>
L101:
  lea    -0x1b6c(%rax),%ecx
  cmp    $0x2,%ecx
  jbe    L90
  cmp    $0x1b6f,%eax
  je     L523
  lea    -0x1b76(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L451
  cmp    $0x1b80,%eax
  jne    L25
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26e0 <n1_x1_x1_x1_importeridx@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25b0 <n13@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26b0 <x1__2@plt>
L451:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2500 <n3_iso3166999_x1__27@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2680 <n6_yymmdd_n0__6_yymmdd@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2630 <x1__12@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23f0 <n1__4@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2600 <n6_yymmdd_n4_hhmm@plt>
```

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;
}
```