user: What would the C source look like for the assembly code provided here?

```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     L5
  test   %eax,%eax
  je     L618
  lea    -0x1(%rax),%ecx
  cmp    $0x1,%ecx
  jbe    L306
  lea    -0xa(%rax),%ecx
  cmp    $0x50,%ecx
  ja     L789
  lea    D23(%rip),%r9
  movslq (%r9,%rcx,4),%rcx
  add    %r9,%rcx
  notrack jmp *%rcx
  nopl   0x0(%rax)
L5:
  cmp    $0x12b,%eax
  jg     L958
  sub    $0xeb,%eax
  cmp    $0x14,%eax
  ja     L216
  lea    D36(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
  nopw   0x0(%rax,%rax,1)
L958:
  cmp    $0x1f3,%eax
  jg     L670
  cmp    $0x1a5,%eax
  jg     L902
  cmp    $0x18f,%eax
  jle    L216
  sub    $0x190,%eax
  cmp    $0x15,%eax
  ja     L216
  lea    D24(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
L789:
  cmp    $0x5a,%eax
  jg     L779
L216:
  movl   $0x1,(%rdx)
  xor    %eax,%eax
  ret
  nopw   0x0(%rax,%rax,1)
L670:
  cmp    $0x31f,%eax
  jg     L242
  sub    $0x2c6,%eax
  cmp    $0x4,%eax
  ja     L216
L253:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    25a0 <x1__20@plt>
  nopl   0x0(%rax,%rax,1)
L618:
  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
L902:
  lea    -0x1a6(%rax),%ecx
  cmp    $0x5,%ecx
  ja     L216
  mov    $0x1,%r9d
  shl    %cl,%r9
  test   $0x15,%r9b
  je     L569
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    23d0 <n3_iso3166@plt>
  nopl   0x0(%rax)
L242:
  cmp    $0xc7f,%eax
  jle    L81
  cmp    $0xce3,%eax
  jg     L34
  lea    -0xc8a(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  cmp    $0xc85,%eax
  jle    L609
  cmp    $0xcdf,%eax
  jg     L216
  cmp    $0xca7,%eax
  jg     L534
  cmp    $0xc99,%eax
  jg     L912
  cmp    $0xc93,%eax
  jle    L216
L609:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2460 <n6@plt>
  cs nopw 0x0(%rax,%rax,1)
L569:
  and    $0xa,%r9d
  je     L812
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26f0 <n3__15_iso3166list@plt>
L306:
  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)
L81:
  lea    -0xc1c(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  lea    -0xc26(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  sub    $0xc30,%eax
  cmp    $0x2d,%eax
  ja     L216
  movabs $0x3f0fc3f0fc3f,%rcx
  bt     %rax,%rcx
  jb     L609
  jmp    L216
  nopl   0x0(%rax)
L812:
  cmp    $0x5,%ecx
  jne    L216
  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)
L779:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    26a0 <x1__90@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24b0 <n17_csum_key@plt>
L362:
  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>
L34:
  cmp    $0xd47,%eax
  jg     L918
  lea    -0xcee(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  cmp    $0xce9,%eax
  jle    L609
  sub    $0xcf8,%eax
  cmp    $0x37,%eax
  ja     L216
L413:
  movabs $0xfc3f0fc3f0fc3f,%rcx
  bt     %rax,%rcx
  jb     L609
  jmp    L216
L912:
  sub    $0xc9e,%eax
  cmp    $0x5,%eax
  ja     L216
  jmp    L609
L534:
  movabs $0xfc3f0fc3f0fc3f,%rcx
  sub    $0xca8,%eax
  bt     %rax,%rcx
  jb     L609
  jmp    L216
L918:
  cmp    $0xdab,%eax
  jg     L881
  lea    -0xd52(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  cmp    $0xd4d,%eax
  jle    L609
  cmp    $0xda7,%eax
  jg     L216
  cmp    $0xd6f,%eax
  jg     L974
  cmp    $0xd61,%eax
  jg     L155
  cmp    $0xd5b,%eax
  jle    L216
  jmp    L609
L881:
  cmp    $0xe0f,%eax
  jg     L142
  lea    -0xdb6(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  cmp    $0xdb1,%eax
  jle    L609
  sub    $0xdc0,%eax
  cmp    $0x37,%eax
  jbe    L413
  jmp    L216
L155:
  sub    $0xd66,%eax
  cmp    $0x5,%eax
  ja     L216
  jmp    L609
L974:
  movabs $0xfc3f0fc3f0fc3f,%rcx
  sub    $0xd70,%eax
  bt     %rax,%rcx
  jb     L609
  jmp    L216
L142:
  cmp    $0xe73,%eax
  jg     L457
  lea    -0xe1a(%rax),%ecx
  cmp    $0x5,%ecx
  jbe    L609
  cmp    $0xe15,%eax
  jle    L609
  cmp    $0xe6f,%eax
  jg     L216
  cmp    $0xe37,%eax
  jg     L410
  cmp    $0xe29,%eax
  jg     L181
  cmp    $0xe23,%eax
  jle    L216
  jmp    L609
L457:
  cmp    $0xf9f,%eax
  jg     L553
  lea    -0xf3c(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L510
  lea    -0xf50(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L510
  lea    -0xf46(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L775
  lea    -0xf5a(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L775
  lea    -0xf64(%rax),%ecx
  cmp    $0x3,%ecx
  jbe    L26
  sub    $0xf6e,%eax
  cmp    $0x5,%eax
  ja     L216
  jmp    L609
L181:
  sub    $0xe2e,%eax
  cmp    $0x5,%eax
  ja     L216
  jmp    L609
L410:
  movabs $0xfc3f0fc3f0fc3f,%r9
  sub    $0xe38,%eax
  mov    %eax,%ecx
  shr    %cl,%r9
  and    $0x1,%r9b
  jne    L609
  jmp    L216
L553:
  cmp    $0x112f,%eax
  jg     L845
  lea    -0x10cc(%rax),%ecx
  cmp    $0x1,%ecx
  jbe    L137
  cmp    $0x10d6,%eax
  je     L137
  sub    $0x10ce,%eax
  cmp    $0x18,%eax
  ja     L216
  lea    D46(%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>
L845:
  cmp    $0x1bbb,%eax
  jg     L57
  lea    -0x1b59(%rax),%ecx
  cmp    $0x9,%ecx
  ja     L226
  lea    D22(%rip),%r9
  movslq (%r9,%rcx,4),%rax
  add    %r9,%rax
  notrack jmp *%rax
L137:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24d0 <x1__35_pcenc@plt>
L26:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2540 <n4@plt>
L775:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2510 <n3_iso4217_n1__15@plt>
L510:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2580 <n1__15@plt>
L57:
  cmp    $0x1c83,%eax
  jg     L615
  lea    -0x1c3e(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L888
  cmp    $0x1c48,%eax
  jne    L216
  jmp    L253
L615:
  cmp    $0x1fa3,%eax
  jg     L314
  sub    $0x1f41,%eax
  cmp    $0x19,%eax
  ja     L216
  lea    D15(%rip),%rcx
  movslq (%rcx,%rax,4),%rax
  add    %rcx,%rax
  notrack jmp *%rax
L888:
  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>
L314:
  cmp    $0x2007,%eax
  jg     L466
  cmp    $0x1fae,%eax
  je     L293
  cmp    $0x1faf,%eax
  je     L26
  cmp    $0x1fb0,%eax
  jne    L216
  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>
L293:
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2670 <x1__70_couponcode@plt>
L466:
  cmp    $0x2008,%eax
  jne    L216
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    2660 <x1__70@plt>
  mov    %r10,%rcx
  xor    %eax,%eax
  jmp    24f0 <x1__10@plt>
L226:
  lea    -0x1b6c(%rax),%ecx
  cmp    $0x2,%ecx
  jbe    L253
  cmp    $0x1b6f,%eax
  je     L362
  lea    -0x1b76(%rax),%ecx
  cmp    $0x9,%ecx
  jbe    L22
  cmp    $0x1b80,%eax
  jne    L216
  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>
L22:
  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;
}
```