
int _getopt_internal_r(int argc,char **argv,char *optstring,rpl_option *longopts,int *longind,
                      int long_only,_getopt_data *d,int posixly_correct)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  long lVar4;
  byte *pbVar5;
  __ord _Var6;
  int iVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  option_list *poVar11;
  long lVar12;
  ulong uVar13;
  char cVar14;
  byte *pbVar15;
  byte *pbVar16;
  rpl_option *prVar17;
  rpl_option *prVar18;
  int iVar19;
  option_list *poVar20;
  char *pcVar21;
  rpl_option *prVar22;
  long in_FS_OFFSET;
  bool bVar23;
  bool bVar24;
  byte bVar25;
  char *local_b0;
  int local_74;
  int local_68;
  option_list first;
  
  bVar25 = 0;
  lVar4 = *(long *)(in_FS_OFFSET + 0x28);
  iVar19 = d->rpl_opterr;
  if (argc < 1) {
    iVar19 = -1;
    goto LAB_001098ef;
  }
  d->rpl_optarg = (char *)0x0;
  if (d->rpl_optind == 0) {
    d->rpl_optind = 1;
LAB_00108b56:
    d->__last_nonopt = d->rpl_optind;
    d->__first_nonopt = d->rpl_optind;
    d->__nextchar = (char *)0x0;
    _Var6 = PERMUTE;
    if (posixly_correct == 0) {
      pcVar9 = getenv("POSIXLY_CORRECT");
      _Var6 = (__ord)(pcVar9 != (char *)0x0);
    }
    d->__posixly_correct = _Var6;
    if (*optstring == '-') {
      d->__ordering = RETURN_IN_ORDER;
      local_b0 = optstring + 1;
    }
    else if (*optstring == '+') {
      d->__ordering = REQUIRE_ORDER;
      local_b0 = optstring + 1;
    }
    else {
      d->__ordering = _Var6 ^ PERMUTE;
      local_b0 = optstring;
    }
    d->__initialized = 1;
  }
  else {
    if (d->__initialized == 0) goto LAB_00108b56;
    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);
  }
  iVar7 = 0;
  if (*local_b0 != ':') {
    iVar7 = iVar19;
  }
  if ((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')) {
    iVar19 = d->rpl_optind;
    if (iVar19 < d->__last_nonopt) {
      d->__last_nonopt = iVar19;
    }
    if (iVar19 < d->__first_nonopt) {
      d->__first_nonopt = iVar19;
    }
    if (d->__ordering == PERMUTE) {
      iVar3 = d->__last_nonopt;
      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {
        if (iVar19 != iVar3) {
          d->__first_nonopt = iVar19;
        }
      }
      else {
        exchange(argv,d);
      }
      iVar19 = d->rpl_optind;
      if (iVar19 < argc) {
        lVar12 = (long)iVar19;
        do {
          iVar19 = (int)lVar12;
          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;
          iVar19 = iVar19 + 1;
          d->rpl_optind = iVar19;
          lVar12 = lVar12 + 1;
        } while ((int)lVar12 < argc);
      }
      d->__last_nonopt = iVar19;
    }
    uVar2 = d->rpl_optind;
    bVar23 = uVar2 < (uint)argc;
    bVar24 = uVar2 == argc;
    if (!bVar24) {
      pbVar5 = (byte *)argv[(int)uVar2];
      lVar12 = 3;
      pbVar15 = pbVar5;
      pbVar16 = &DAT_0010b4bb;
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar23 = *pbVar15 < *pbVar16;
        bVar24 = *pbVar15 == *pbVar16;
        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;
        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;
      } while (bVar24);
      if ((!bVar23 && !bVar24) != bVar23) {
        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {
          if (d->__ordering == REQUIRE_ORDER) {
            iVar19 = -1;
          }
          else {
            d->rpl_optind = uVar2 + 1;
            d->rpl_optarg = argv[(int)uVar2];
            iVar19 = 1;
          }
          goto LAB_001098ef;
        }
        d->__nextchar =
             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);
        goto LAB_00108d36;
      }
      iVar7 = uVar2 + 1;
      d->rpl_optind = iVar7;
      iVar19 = d->__last_nonopt;
      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {
        if (d->__first_nonopt == iVar19) {
          d->__first_nonopt = iVar7;
        }
      }
      else {
        exchange(argv,d);
      }
      d->__last_nonopt = argc;
      d->rpl_optind = argc;
    }
    if (d->__first_nonopt == d->__last_nonopt) {
      iVar19 = -1;
    }
    else {
      d->rpl_optind = d->__first_nonopt;
      iVar19 = -1;
    }
    goto LAB_001098ef;
  }
LAB_00108d36:
  if (longopts != (rpl_option *)0x0) {
    cVar14 = argv[d->rpl_optind][1];
    if ((cVar14 == '-') ||
       ((long_only != 0 &&
        ((argv[d->rpl_optind][2] != '\0' ||
         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {
      pcVar9 = d->__nextchar;
      cVar14 = *pcVar9;
      pcVar21 = pcVar9;
      while ((cVar14 != '\0' && (cVar14 != '='))) {
        pcVar21 = pcVar21 + 1;
        cVar14 = *pcVar21;
      }
      pcVar10 = longopts->name;
      if (pcVar10 == (char *)0x0) {
        local_68 = -1;
        poVar20 = (option_list *)0x0;
        iVar19 = local_68;
        prVar18 = (rpl_option *)0x0;
joined_r0x00109833:
        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {
          poVar11 = poVar20->next;
          free(poVar20);
          poVar20 = poVar11;
          iVar19 = local_68;
        }
      }
      else {
        local_68 = -1;
        bVar23 = false;
        poVar20 = (option_list *)0x0;
        iVar19 = 0;
        prVar17 = longopts;
        prVar22 = (rpl_option *)0x0;
        do {
          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);
          prVar18 = prVar22;
          iVar3 = local_68;
          if (iVar8 == 0) {
            lVar12 = -1;
            do {
              if (lVar12 == 0) break;
              lVar12 = lVar12 + -1;
              cVar14 = *pcVar10;
              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;
            } while (cVar14 != '\0');
            prVar18 = prVar17;
            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;
            iVar3 = iVar19;
            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {
              if ((long_only == 0) &&
                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&
                  (prVar22->val == prVar17->val)))) {
                bVar23 = false;
              }
              else {
                poVar11 = (option_list *)malloc(0x10);
                if (poVar11 == (option_list *)0x0) {
                  if (poVar20 == (option_list *)0x0) {
                    bVar23 = true;
                  }
                  else {
                    do {
                      poVar11 = poVar20->next;
                      free(poVar20);
                      poVar20 = poVar11;
                    } while (poVar11 != (option_list *)0x0);
                    bVar23 = true;
                  }
                }
                else {
                  poVar11->p = prVar17;
                  poVar11->next = poVar20;
                  poVar20 = poVar11;
                }
              }
            }
          }
          local_68 = iVar3;
          prVar17 = prVar17 + 1;
          iVar19 = iVar19 + 1;
          pcVar10 = prVar17->name;
          prVar22 = prVar18;
        } while (pcVar10 != (char *)0x0);
        if ((bVar23) || (poVar20 != (option_list *)0x0)) {
          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {
            if ((!bVar23) || (iVar7 == 0)) {
              uVar13 = 0xffffffffffffffff;
              pcVar9 = d->__nextchar;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
              } while (cVar14 != '\0');
              d->__nextchar = d->__nextchar + (~uVar13 - 1);
              d->rpl_optind = d->rpl_optind + 1;
              d->rpl_optopt = 0;
              if (poVar20 == (option_list *)0x0) {
                iVar19 = 0x3f;
              }
              else {
                do {
                  poVar11 = poVar20->next;
                  free(poVar20);
                  poVar20 = poVar11;
                } while (poVar11 != (option_list *)0x0);
                iVar19 = 0x3f;
              }
              goto LAB_001098ef;
            }
            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);
          }
          else {
            first.p = prVar18;
            first.next = poVar20;
            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,
                          argv[d->rpl_optind]);
            poVar20 = &first;
            do {
              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);
              poVar20 = poVar20->next;
            } while (poVar20 != (option_list *)0x0);
            fputc(10,stderr);
          }
          uVar13 = 0xffffffffffffffff;
          pcVar9 = d->__nextchar;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar9;
            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
          } while (cVar14 != '\0');
          d->__nextchar = d->__nextchar + (~uVar13 - 1);
          d->rpl_optind = d->rpl_optind + 1;
          d->rpl_optopt = 0;
          iVar19 = 0x3f;
          goto LAB_001098ef;
        }
      }
      if (prVar18 != (rpl_option *)0x0) {
        iVar3 = d->rpl_optind;
        iVar19 = iVar3 + 1;
        d->rpl_optind = iVar19;
        if (*pcVar21 == '\0') {
          if (prVar18->has_arg == 1) {
            if (argc <= iVar19) {
              if (iVar7 != 0) {
                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,
                              prVar18->name);
              }
              uVar13 = 0xffffffffffffffff;
              pcVar9 = d->__nextchar;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
              } while (cVar14 != '\0');
              d->__nextchar = d->__nextchar + (~uVar13 - 1);
              d->rpl_optopt = prVar18->val;
              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;
              goto LAB_001098ef;
            }
            d->rpl_optind = iVar3 + 2;
            d->rpl_optarg = argv[iVar19];
          }
        }
        else {
          if (prVar18->has_arg == 0) {
            if (iVar7 != 0) {
              if (argv[(long)iVar19 + -1][1] == '-') {
                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,
                              prVar18->name);
              }
              else {
                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,
                              (int)*argv[(long)iVar19 + -1],prVar18->name);
              }
            }
            uVar13 = 0xffffffffffffffff;
            pcVar9 = d->__nextchar;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar14 = *pcVar9;
              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
            } while (cVar14 != '\0');
            d->__nextchar = d->__nextchar + (~uVar13 - 1);
            d->rpl_optopt = prVar18->val;
            iVar19 = 0x3f;
            goto LAB_001098ef;
          }
          d->rpl_optarg = pcVar21 + 1;
        }
        uVar13 = 0xffffffffffffffff;
        pcVar9 = d->__nextchar;
        do {
          if (uVar13 == 0) break;
          uVar13 = uVar13 - 1;
          cVar14 = *pcVar9;
          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
        } while (cVar14 != '\0');
        d->__nextchar = d->__nextchar + (~uVar13 - 1);
        if (longind != (int *)0x0) {
          *longind = local_68;
        }
        if (prVar18->flag == (int *)0x0) {
          iVar19 = prVar18->val;
        }
        else {
          *prVar18->flag = prVar18->val;
          iVar19 = 0;
        }
        goto LAB_001098ef;
      }
      if (long_only == 0) {
        if (iVar7 != 0) {
          pcVar9 = argv[d->rpl_optind];
          if (pcVar9[1] == '-') goto LAB_001097e1;
LAB_00109263:
          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,
                        d->__nextchar);
        }
      }
      else {
        pcVar9 = argv[d->rpl_optind];
        if (pcVar9[1] == '-') {
          if (iVar7 != 0) {
LAB_001097e1:
            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);
          }
        }
        else {
          pcVar21 = strchr(local_b0,(int)*d->__nextchar);
          if (pcVar21 != (char *)0x0) goto LAB_00108d74;
          if (iVar7 != 0) goto LAB_00109263;
        }
      }
      d->__nextchar = "";
      d->rpl_optind = d->rpl_optind + 1;
      d->rpl_optopt = 0;
      iVar19 = 0x3f;
      goto LAB_001098ef;
    }
  }
LAB_00108d74:
  pcVar21 = d->__nextchar;
  pcVar9 = pcVar21 + 1;
  d->__nextchar = pcVar9;
  cVar14 = *pcVar21;
  iVar19 = (int)cVar14;
  pcVar10 = strchr(local_b0,iVar19);
  if (pcVar21[1] == '\0') {
    d->rpl_optind = d->rpl_optind + 1;
  }
  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {
    if (iVar7 != 0) {
      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);
    }
    d->rpl_optopt = iVar19;
    iVar19 = 0x3f;
  }
  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {
    if (longopts != (rpl_option *)0x0) {
      if (pcVar21[1] == '\0') {
        iVar3 = d->rpl_optind;
        if (iVar3 == argc) {
          if (iVar7 != 0) {
            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);
          }
          d->rpl_optopt = iVar19;
          cVar14 = *local_b0;
          if (*local_b0 != ':') {
            cVar14 = '?';
          }
          iVar19 = (int)cVar14;
          goto LAB_001098ef;
        }
        d->rpl_optind = iVar3 + 1;
        d->rpl_optarg = argv[iVar3];
      }
      else {
        d->rpl_optarg = pcVar9;
        d->rpl_optind = d->rpl_optind + 1;
      }
      pcVar9 = d->rpl_optarg;
      d->__nextchar = pcVar9;
      cVar14 = *pcVar9;
      pcVar21 = pcVar9;
      while ((cVar14 != '\0' && (cVar14 != '='))) {
        pcVar21 = pcVar21 + 1;
        cVar14 = *pcVar21;
      }
      pcVar10 = longopts->name;
      if (pcVar10 != (char *)0x0) {
        iVar19 = 0;
        local_74 = 0;
        prVar18 = (rpl_option *)0x0;
        bVar23 = false;
        do {
          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);
          prVar17 = prVar18;
          iVar3 = local_74;
          bVar24 = bVar23;
          if (iVar8 == 0) {
            uVar13 = 0xffffffffffffffff;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar1 = *pcVar10;
              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;
            } while (cVar1 != '\0');
            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;
            prVar17 = longopts;
            iVar3 = iVar19;
            if (prVar18 != (rpl_option *)0x0) {
              if (long_only == 0) {
                if (prVar18->has_arg == longopts->has_arg) {
                  if (prVar18->flag == longopts->flag) {
                    prVar17 = prVar18;
                    iVar3 = local_74;
                    bVar24 = true;
                    if (prVar18->val == longopts->val) {
                      bVar24 = bVar23;
                    }
                  }
                  else {
                    prVar17 = prVar18;
                    iVar3 = local_74;
                    bVar24 = true;
                  }
                }
                else {
                  prVar17 = prVar18;
                  iVar3 = local_74;
                  bVar24 = true;
                }
              }
              else {
                prVar17 = prVar18;
                iVar3 = local_74;
                bVar24 = true;
              }
            }
          }
          local_74 = iVar3;
          longopts = longopts + 1;
          iVar19 = iVar19 + 1;
          pcVar10 = longopts->name;
          prVar18 = prVar17;
          bVar23 = bVar24;
        } while (pcVar10 != (char *)0x0);
        longopts = prVar17;
        iVar19 = local_74;
        if (bVar24) {
          if (iVar7 != 0) {
            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);
          }
          uVar13 = 0xffffffffffffffff;
          pcVar9 = d->__nextchar;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar9;
            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
          } while (cVar14 != '\0');
          d->__nextchar = d->__nextchar + (~uVar13 - 1);
          d->rpl_optind = d->rpl_optind + 1;
          iVar19 = 0x3f;
          goto LAB_001098ef;
        }
LAB_001094ec:
        local_74 = iVar19;
        if (longopts != (rpl_option *)0x0) {
          if (cVar14 == '\0') {
            if (longopts->has_arg == 1) {
              iVar19 = d->rpl_optind;
              if (argc <= iVar19) {
                if (iVar7 != 0) {
                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,
                                longopts->name);
                }
                uVar13 = 0xffffffffffffffff;
                pcVar9 = d->__nextchar;
                do {
                  if (uVar13 == 0) break;
                  uVar13 = uVar13 - 1;
                  cVar14 = *pcVar9;
                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
                } while (cVar14 != '\0');
                d->__nextchar = d->__nextchar + (~uVar13 - 1);
                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;
                goto LAB_001098ef;
              }
              d->rpl_optind = iVar19 + 1;
              d->rpl_optarg = argv[iVar19];
            }
            else {
              d->rpl_optarg = (char *)0x0;
            }
          }
          else {
            if (longopts->has_arg == 0) {
              if (iVar7 != 0) {
                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,
                              longopts->name);
              }
              uVar13 = 0xffffffffffffffff;
              pcVar9 = d->__nextchar;
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;
              } while (cVar14 != '\0');
              d->__nextchar = d->__nextchar + (~uVar13 - 1);
              iVar19 = 0x3f;
              goto LAB_001098ef;
            }
            d->rpl_optarg = pcVar21 + 1;
          }
          uVar13 = 0xffffffffffffffff;
          pcVar21 = pcVar9;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar21;
            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;
          } while (cVar14 != '\0');
          d->__nextchar = pcVar9 + (~uVar13 - 1);
          if (longind != (int *)0x0) {
            *longind = local_74;
          }
          if (longopts->flag == (int *)0x0) {
            iVar19 = longopts->val;
          }
          else {
            *longopts->flag = longopts->val;
            iVar19 = 0;
          }
          goto LAB_001098ef;
        }
      }
    }
    d->__nextchar = (char *)0x0;
    iVar19 = 0x57;
  }
  else {
    if (pcVar10[1] == ':') {
      if (pcVar10[2] == ':') {
        if (pcVar21[1] == '\0') {
          d->rpl_optarg = (char *)0x0;
        }
        else {
          d->rpl_optarg = pcVar9;
          d->rpl_optind = d->rpl_optind + 1;
        }
        d->__nextchar = (char *)0x0;
      }
      else {
        if (pcVar21[1] == '\0') {
          iVar3 = d->rpl_optind;
          if (iVar3 == argc) {
            if (iVar7 != 0) {
              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);
            }
            d->rpl_optopt = iVar19;
            cVar14 = *local_b0;
            if (cVar14 != ':') {
              cVar14 = '?';
            }
          }
          else {
            d->rpl_optind = iVar3 + 1;
            d->rpl_optarg = argv[iVar3];
          }
        }
        else {
          d->rpl_optarg = pcVar9;
          d->rpl_optind = d->rpl_optind + 1;
        }
        d->__nextchar = (char *)0x0;
      }
    }
    iVar19 = (int)cVar14;
  }
LAB_001098ef:
  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar19;
}



int FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,
                int param_6,uint *param_7,int param_8)

{
  char cVar1;
  uint uVar2;
  byte *pbVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  undefined8 *puVar11;
  long lVar12;
  ulong uVar13;
  char cVar14;
  long **pplVar15;
  byte *pbVar16;
  byte *pbVar17;
  long *plVar18;
  long *plVar19;
  undefined8 *__ptr;
  char *pcVar20;
  long *plVar21;
  long in_FS_OFFSET;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  char *local_b0;
  int local_74;
  int local_68;
  long *local_58;
  undefined8 *local_50;
  long local_40;
  
  bVar24 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar6 = param_7[1];
  if ((int)param_1 < 1) {
    iVar7 = -1;
    goto LAB_001098ef;
  }
  param_7[4] = 0;
  param_7[5] = 0;
  if (*param_7 == 0) {
    *param_7 = 1;
LAB_00108b56:
    param_7[0xd] = *param_7;
    param_7[0xc] = *param_7;
    param_7[8] = 0;
    param_7[9] = 0;
    uVar5 = 1;
    if (param_8 == 0) {
      pcVar9 = getenv("POSIXLY_CORRECT");
      uVar5 = (uint)(pcVar9 != (char *)0x0);
    }
    param_7[0xb] = uVar5;
    if (*param_3 == '-') {
      param_7[10] = 2;
      local_b0 = param_3 + 1;
    }
    else if (*param_3 == '+') {
      param_7[10] = 0;
      local_b0 = param_3 + 1;
    }
    else {
      param_7[10] = uVar5 ^ 1;
      local_b0 = param_3;
    }
    param_7[6] = 1;
  }
  else {
    if (param_7[6] == 0) goto LAB_00108b56;
    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);
  }
  uVar5 = 0;
  if (*local_b0 != ':') {
    uVar5 = uVar6;
  }
  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {
    uVar6 = *param_7;
    if ((int)uVar6 < (int)param_7[0xd]) {
      param_7[0xd] = uVar6;
    }
    if ((int)uVar6 < (int)param_7[0xc]) {
      param_7[0xc] = uVar6;
    }
    if (param_7[10] == 1) {
      uVar2 = param_7[0xd];
      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {
        if (uVar6 != uVar2) {
          param_7[0xc] = uVar6;
        }
      }
      else {
        FUN_00108a11(param_2,param_7);
      }
      uVar6 = *param_7;
      if ((int)uVar6 < (int)param_1) {
        lVar12 = (long)(int)uVar6;
        do {
          uVar6 = (uint)lVar12;
          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;
          uVar6 = uVar6 + 1;
          *param_7 = uVar6;
          lVar12 = lVar12 + 1;
        } while ((int)lVar12 < (int)param_1);
      }
      param_7[0xd] = uVar6;
    }
    uVar6 = *param_7;
    bVar22 = uVar6 < param_1;
    bVar23 = uVar6 == param_1;
    if (!bVar23) {
      pbVar3 = (byte *)param_2[(int)uVar6];
      lVar12 = 3;
      pbVar16 = pbVar3;
      pbVar17 = &DAT_0010b4bb;
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar22 = *pbVar16 < *pbVar17;
        bVar23 = *pbVar16 == *pbVar17;
        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;
        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
      } while (bVar23);
      if ((!bVar22 && !bVar23) != bVar22) {
        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {
          if (param_7[10] == 0) {
            iVar7 = -1;
          }
          else {
            *param_7 = uVar6 + 1;
            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];
            iVar7 = 1;
          }
          goto LAB_001098ef;
        }
        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;
        goto LAB_00108d36;
      }
      uVar6 = uVar6 + 1;
      *param_7 = uVar6;
      uVar5 = param_7[0xd];
      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {
        if (param_7[0xc] == uVar5) {
          param_7[0xc] = uVar6;
        }
      }
      else {
        FUN_00108a11(param_2,param_7);
      }
      param_7[0xd] = param_1;
      *param_7 = param_1;
    }
    if (param_7[0xc] == param_7[0xd]) {
      iVar7 = -1;
    }
    else {
      *param_7 = param_7[0xc];
      iVar7 = -1;
    }
    goto LAB_001098ef;
  }
LAB_00108d36:
  if (param_4 != (long *)0x0) {
    cVar14 = *(char *)(param_2[(int)*param_7] + 1);
    if ((cVar14 == '-') ||
       ((param_6 != 0 &&
        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||
         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {
      pcVar9 = *(char **)(param_7 + 8);
      cVar14 = *pcVar9;
      pcVar20 = pcVar9;
      while ((cVar14 != '\0' && (cVar14 != '='))) {
        pcVar20 = pcVar20 + 1;
        cVar14 = *pcVar20;
      }
      pcVar10 = (char *)*param_4;
      if (pcVar10 == (char *)0x0) {
        local_68 = -1;
        __ptr = (undefined8 *)0x0;
        iVar7 = local_68;
        plVar19 = (long *)0x0;
joined_r0x00109833:
        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {
          puVar11 = (undefined8 *)__ptr[1];
          free(__ptr);
          __ptr = puVar11;
          iVar7 = local_68;
        }
      }
      else {
        local_68 = -1;
        bVar22 = false;
        __ptr = (undefined8 *)0x0;
        iVar7 = 0;
        plVar18 = param_4;
        plVar21 = (long *)0x0;
        do {
          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)
          ;
          plVar19 = plVar21;
          iVar4 = local_68;
          if (iVar8 == 0) {
            lVar12 = -1;
            do {
              if (lVar12 == 0) break;
              lVar12 = lVar12 + -1;
              cVar14 = *pcVar10;
              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;
            } while (cVar14 != '\0');
            plVar19 = plVar18;
            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;
            iVar4 = iVar7;
            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {
              if ((param_6 == 0) &&
                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&
                  ((int)plVar21[3] == (int)plVar18[3])))) {
                bVar22 = false;
              }
              else {
                puVar11 = (undefined8 *)malloc(0x10);
                if (puVar11 == (undefined8 *)0x0) {
                  if (__ptr == (undefined8 *)0x0) {
                    bVar22 = true;
                  }
                  else {
                    do {
                      puVar11 = (undefined8 *)__ptr[1];
                      free(__ptr);
                      __ptr = puVar11;
                    } while (puVar11 != (undefined8 *)0x0);
                    bVar22 = true;
                  }
                }
                else {
                  *puVar11 = plVar18;
                  puVar11[1] = __ptr;
                  __ptr = puVar11;
                }
              }
            }
          }
          local_68 = iVar4;
          plVar18 = plVar18 + 4;
          iVar7 = iVar7 + 1;
          pcVar10 = (char *)*plVar18;
          plVar21 = plVar19;
        } while (pcVar10 != (char *)0x0);
        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {
          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {
            if ((!bVar22) || (uVar5 == 0)) {
              uVar13 = 0xffffffffffffffff;
              pcVar9 = *(char **)(param_7 + 8);
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
              } while (cVar14 != '\0');
              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
              *param_7 = *param_7 + 1;
              param_7[2] = 0;
              if (__ptr == (undefined8 *)0x0) {
                iVar7 = 0x3f;
              }
              else {
                do {
                  puVar11 = (undefined8 *)__ptr[1];
                  free(__ptr);
                  __ptr = puVar11;
                } while (puVar11 != (undefined8 *)0x0);
                iVar7 = 0x3f;
              }
              goto LAB_001098ef;
            }
            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,
                          param_2[(int)*param_7]);
          }
          else {
            local_58 = plVar19;
            local_50 = __ptr;
            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,
                          param_2[(int)*param_7]);
            pplVar15 = &local_58;
            do {
              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);
              pplVar15 = (long **)pplVar15[1];
            } while (pplVar15 != (long **)0x0);
            fputc(10,stderr);
          }
          uVar13 = 0xffffffffffffffff;
          pcVar9 = *(char **)(param_7 + 8);
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar9;
            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
          } while (cVar14 != '\0');
          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
          *param_7 = *param_7 + 1;
          param_7[2] = 0;
          iVar7 = 0x3f;
          goto LAB_001098ef;
        }
      }
      if (plVar19 != (long *)0x0) {
        uVar2 = *param_7;
        uVar6 = uVar2 + 1;
        *param_7 = uVar6;
        if (*pcVar20 == '\0') {
          if ((int)plVar19[1] == 1) {
            if ((int)param_1 <= (int)uVar6) {
              if (uVar5 != 0) {
                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,
                              *plVar19);
              }
              uVar13 = 0xffffffffffffffff;
              pcVar9 = *(char **)(param_7 + 8);
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
              } while (cVar14 != '\0');
              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
              param_7[2] = *(uint *)(plVar19 + 3);
              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;
              goto LAB_001098ef;
            }
            *param_7 = uVar2 + 2;
            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];
          }
        }
        else {
          if ((int)plVar19[1] == 0) {
            if (uVar5 != 0) {
              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {
                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,
                              *plVar19);
              }
              else {
                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,
                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);
              }
            }
            uVar13 = 0xffffffffffffffff;
            pcVar9 = *(char **)(param_7 + 8);
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar14 = *pcVar9;
              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
            } while (cVar14 != '\0');
            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
            param_7[2] = *(uint *)(plVar19 + 3);
            iVar7 = 0x3f;
            goto LAB_001098ef;
          }
          *(char **)(param_7 + 4) = pcVar20 + 1;
        }
        uVar13 = 0xffffffffffffffff;
        pcVar9 = *(char **)(param_7 + 8);
        do {
          if (uVar13 == 0) break;
          uVar13 = uVar13 - 1;
          cVar14 = *pcVar9;
          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
        } while (cVar14 != '\0');
        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
        if (param_5 != (int *)0x0) {
          *param_5 = local_68;
        }
        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {
          iVar7 = (int)plVar19[3];
        }
        else {
          *(undefined4 *)plVar19[2] = (int)plVar19[3];
          iVar7 = 0;
        }
        goto LAB_001098ef;
      }
      if (param_6 == 0) {
        if (uVar5 != 0) {
          pcVar9 = (char *)param_2[(int)*param_7];
          if (pcVar9[1] == '-') goto LAB_001097e1;
LAB_00109263:
          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,
                        *(undefined8 *)(param_7 + 8));
        }
      }
      else {
        pcVar9 = (char *)param_2[(int)*param_7];
        if (pcVar9[1] == '-') {
          if (uVar5 != 0) {
LAB_001097e1:
            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,
                          *(undefined8 *)(param_7 + 8));
          }
        }
        else {
          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));
          if (pcVar20 != (char *)0x0) goto LAB_00108d74;
          if (uVar5 != 0) goto LAB_00109263;
        }
      }
      *(char **)(param_7 + 8) = "";
      *param_7 = *param_7 + 1;
      param_7[2] = 0;
      iVar7 = 0x3f;
      goto LAB_001098ef;
    }
  }
LAB_00108d74:
  pcVar20 = *(char **)(param_7 + 8);
  pcVar9 = pcVar20 + 1;
  *(char **)(param_7 + 8) = pcVar9;
  cVar14 = *pcVar20;
  uVar6 = (uint)cVar14;
  pcVar10 = strchr(local_b0,uVar6);
  if (pcVar20[1] == '\0') {
    *param_7 = *param_7 + 1;
  }
  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {
    if (uVar5 != 0) {
      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);
    }
    param_7[2] = uVar6;
    iVar7 = 0x3f;
  }
  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {
    if (param_4 != (long *)0x0) {
      if (pcVar20[1] == '\0') {
        uVar2 = *param_7;
        if (uVar2 == param_1) {
          if (uVar5 != 0) {
            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);
          }
          param_7[2] = uVar6;
          cVar14 = *local_b0;
          if (*local_b0 != ':') {
            cVar14 = '?';
          }
          iVar7 = (int)cVar14;
          goto LAB_001098ef;
        }
        *param_7 = uVar2 + 1;
        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];
      }
      else {
        *(char **)(param_7 + 4) = pcVar9;
        *param_7 = *param_7 + 1;
      }
      pcVar9 = *(char **)(param_7 + 4);
      *(char **)(param_7 + 8) = pcVar9;
      cVar14 = *pcVar9;
      pcVar20 = pcVar9;
      while ((cVar14 != '\0' && (cVar14 != '='))) {
        pcVar20 = pcVar20 + 1;
        cVar14 = *pcVar20;
      }
      pcVar10 = (char *)*param_4;
      if (pcVar10 != (char *)0x0) {
        iVar7 = 0;
        local_74 = 0;
        plVar19 = (long *)0x0;
        bVar22 = false;
        do {
          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);
          plVar18 = plVar19;
          iVar4 = local_74;
          bVar23 = bVar22;
          if (iVar8 == 0) {
            uVar13 = 0xffffffffffffffff;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar1 = *pcVar10;
              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;
            } while (cVar1 != '\0');
            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;
            plVar18 = param_4;
            iVar4 = iVar7;
            if (plVar19 != (long *)0x0) {
              if (param_6 == 0) {
                if ((int)plVar19[1] == (int)param_4[1]) {
                  if (plVar19[2] == param_4[2]) {
                    plVar18 = plVar19;
                    iVar4 = local_74;
                    bVar23 = true;
                    if ((int)plVar19[3] == (int)param_4[3]) {
                      bVar23 = bVar22;
                    }
                  }
                  else {
                    plVar18 = plVar19;
                    iVar4 = local_74;
                    bVar23 = true;
                  }
                }
                else {
                  plVar18 = plVar19;
                  iVar4 = local_74;
                  bVar23 = true;
                }
              }
              else {
                plVar18 = plVar19;
                iVar4 = local_74;
                bVar23 = true;
              }
            }
          }
          local_74 = iVar4;
          param_4 = param_4 + 4;
          iVar7 = iVar7 + 1;
          pcVar10 = (char *)*param_4;
          plVar19 = plVar18;
          bVar22 = bVar23;
        } while (pcVar10 != (char *)0x0);
        param_4 = plVar18;
        iVar7 = local_74;
        if (bVar23) {
          if (uVar5 != 0) {
            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);
          }
          uVar13 = 0xffffffffffffffff;
          pcVar9 = *(char **)(param_7 + 8);
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar9;
            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
          } while (cVar14 != '\0');
          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
          *param_7 = *param_7 + 1;
          iVar7 = 0x3f;
          goto LAB_001098ef;
        }
LAB_001094ec:
        local_74 = iVar7;
        if (param_4 != (long *)0x0) {
          if (cVar14 == '\0') {
            if ((int)param_4[1] == 1) {
              uVar6 = *param_7;
              if ((int)param_1 <= (int)uVar6) {
                if (uVar5 != 0) {
                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,
                                *param_4);
                }
                uVar13 = 0xffffffffffffffff;
                pcVar9 = *(char **)(param_7 + 8);
                do {
                  if (uVar13 == 0) break;
                  uVar13 = uVar13 - 1;
                  cVar14 = *pcVar9;
                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
                } while (cVar14 != '\0');
                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;
                goto LAB_001098ef;
              }
              *param_7 = uVar6 + 1;
              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];
            }
            else {
              param_7[4] = 0;
              param_7[5] = 0;
            }
          }
          else {
            if ((int)param_4[1] == 0) {
              if (uVar5 != 0) {
                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,
                              *param_4);
              }
              uVar13 = 0xffffffffffffffff;
              pcVar9 = *(char **)(param_7 + 8);
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
              } while (cVar14 != '\0');
              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
              iVar7 = 0x3f;
              goto LAB_001098ef;
            }
            *(char **)(param_7 + 4) = pcVar20 + 1;
          }
          uVar13 = 0xffffffffffffffff;
          pcVar20 = pcVar9;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar20;
            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;
          } while (cVar14 != '\0');
          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);
          if (param_5 != (int *)0x0) {
            *param_5 = local_74;
          }
          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {
            iVar7 = (int)param_4[3];
          }
          else {
            *(undefined4 *)param_4[2] = (int)param_4[3];
            iVar7 = 0;
          }
          goto LAB_001098ef;
        }
      }
    }
    param_7[8] = 0;
    param_7[9] = 0;
    iVar7 = 0x57;
  }
  else {
    if (pcVar10[1] == ':') {
      if (pcVar10[2] == ':') {
        if (pcVar20[1] == '\0') {
          param_7[4] = 0;
          param_7[5] = 0;
        }
        else {
          *(char **)(param_7 + 4) = pcVar9;
          *param_7 = *param_7 + 1;
        }
        param_7[8] = 0;
        param_7[9] = 0;
      }
      else {
        if (pcVar20[1] == '\0') {
          uVar2 = *param_7;
          if (uVar2 == param_1) {
            if (uVar5 != 0) {
              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);
            }
            param_7[2] = uVar6;
            cVar14 = *local_b0;
            if (cVar14 != ':') {
              cVar14 = '?';
            }
          }
          else {
            *param_7 = uVar2 + 1;
            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];
          }
        }
        else {
          *(char **)(param_7 + 4) = pcVar9;
          *param_7 = *param_7 + 1;
        }
        param_7[8] = 0;
        param_7[9] = 0;
      }
    }
    iVar7 = (int)cVar14;
  }
LAB_001098ef:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar7;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x88
MOV qword ptr [RSP + 0x20],RSI
MOV qword ptr [RSP + 0x8],RDX
MOV qword ptr [RSP + 0x28],RCX
MOV qword ptr [RSP + 0x38],R8
MOV dword ptr [RSP + 0x40],R9D
MOV RBX,qword ptr [RSP + 0xc0]
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x78],RAX
XOR EAX,EAX
MOV EAX,dword ptr [RBX + 0x4]
MOV dword ptr [RSP + 0x14],EAX
TEST EDI,EDI
JLE 0x001097b8
MOV R15D,EDI
MOV qword ptr [RBX + 0x10],0x0
CMP dword ptr [RBX],0x0
JZ 0x00108b50
CMP dword ptr [RBX + 0x18],0x0
JZ 0x00108b56
MOV RDI,qword ptr [RSP + 0x8]
MOVZX EAX,byte ptr [RDI]
SUB EAX,0x2b
AND EAX,0xfd
CMP AL,0x1
ADC RDI,0x0
MOV qword ptr [RSP + 0x8],RDI
JMP 0x00108ba3
MOV dword ptr [RBX],0x1
MOV EAX,dword ptr [RBX]
MOV dword ptr [RBX + 0x34],EAX
MOV dword ptr [RBX + 0x30],EAX
MOV qword ptr [RBX + 0x20],0x0
MOV EAX,0x1
CMP dword ptr [RSP + 0xc8],0x0
JZ 0x00108c5a
MOV dword ptr [RBX + 0x2c],EAX
MOV RSI,qword ptr [RSP + 0x8]
MOVZX EDX,byte ptr [RSI]
CMP DL,0x2d
JZ 0x00108c74
CMP DL,0x2b
JZ 0x00108c86
XOR EAX,0x1
MOV dword ptr [RBX + 0x28],EAX
MOV dword ptr [RBX + 0x18],0x1
MOV RAX,qword ptr [RSP + 0x8]
CMP byte ptr [RAX],0x3a
MOV EAX,0x0
CMOVNZ EAX,dword ptr [RSP + 0x14]
MOV dword ptr [RSP + 0x14],EAX
MOV RAX,qword ptr [RBX + 0x20]
TEST RAX,RAX
JZ 0x00108bcb
CMP byte ptr [RAX],0x0
JNZ 0x00108d36
MOV EAX,dword ptr [RBX]
CMP dword ptr [RBX + 0x34],EAX
JLE 0x00108bd5
MOV dword ptr [RBX + 0x34],EAX
CMP EAX,dword ptr [RBX + 0x30]
JGE 0x00108bdd
MOV dword ptr [RBX + 0x30],EAX
CMP dword ptr [RBX + 0x28],0x1
JZ 0x00108c98
MOV EAX,dword ptr [RBX]
CMP EAX,R15D
JZ 0x00108c42
MOVSXD RDX,EAX
MOV R10,qword ptr [RSP + 0x20]
LEA R8,[R10 + RDX*0x8]
MOV RDX,qword ptr [R8]
MOV ECX,0x3
LEA RDI,[0x10b4bb]
MOV RSI,RDX
CMPSB.REPE RDI,RSI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x001098cb
ADD EAX,0x1
MOV dword ptr [RBX],EAX
MOV ECX,dword ptr [RBX + 0x30]
MOV EDX,dword ptr [RBX + 0x34]
CMP EAX,EDX
JZ 0x00108c33
CMP ECX,EDX
JNZ 0x00108cf4
CMP ECX,EDX
JZ 0x00108d04
MOV dword ptr [RBX + 0x34],R15D
MOV dword ptr [RBX],R15D
MOV EAX,dword ptr [RBX + 0x30]
CMP EAX,dword ptr [RBX + 0x34]
JZ 0x001098c4
MOV dword ptr [RBX],EAX
MOV EAX,0xffffffff
JMP 0x001098ef
LEA RDI,[0x10bcf1]
CALL 0x00103030
TEST RAX,RAX
SETNZ AL
MOVZX EAX,AL
JMP 0x00108b79
MOV dword ptr [RBX + 0x28],0x2
ADD qword ptr [RSP + 0x8],0x1
JMP 0x00108b9c
MOV dword ptr [RBX + 0x28],0x0
ADD qword ptr [RSP + 0x8],0x1
JMP 0x00108b9c
MOV EDX,dword ptr [RBX + 0x34]
CMP dword ptr [RBX + 0x30],EDX
JZ 0x00108ca4
CMP EAX,EDX
JNZ 0x00108cbc
CMP EAX,EDX
JZ 0x00108cab
MOV dword ptr [RBX + 0x30],EAX
MOV EDX,dword ptr [RBX]
CMP R15D,EDX
JLE 0x00108cec
MOVSXD RAX,EDX
MOV RDI,qword ptr [RSP + 0x20]
JMP 0x00108cd9
MOV RSI,RBX
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00108a11
JMP 0x00108cab
LEA EDX,[RSI + 0x1]
MOV dword ptr [RBX],EDX
ADD RAX,0x1
CMP R15D,EAX
JLE 0x00108cec
MOV ESI,EAX
MOV EDX,EAX
MOV RCX,qword ptr [RDI + RAX*0x8]
CMP byte ptr [RCX],0x2d
JNZ 0x00108ccb
CMP byte ptr [RCX + 0x1],0x0
JZ 0x00108ccb
MOV dword ptr [RBX + 0x34],EDX
JMP 0x00108be7
MOV RSI,RBX
MOV RDI,R10
CALL 0x00108a11
JMP 0x00108c3b
MOV dword ptr [RBX + 0x30],EAX
JMP 0x00108c3b
MOVZX ECX,byte ptr [RDX + 0x1]
TEST CL,CL
JZ 0x001098d4
CMP CL,0x2d
SETZ CL
CMP qword ptr [RSP + 0x28],0x0
SETNZ AL
MOVZX EAX,AL
AND RAX,RCX
LEA RAX,[RDX + RAX*0x1 + 0x1]
MOV qword ptr [RBX + 0x20],RAX
CMP qword ptr [RSP + 0x28],0x0
JZ 0x00108d74
MOVSXD RAX,dword ptr [RBX]
MOV RSI,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RSI + RAX*0x8]
MOVZX ESI,byte ptr [RAX + 0x1]
CMP SIL,0x2d
JZ 0x00108dd3
CMP dword ptr [RSP + 0x40],0x0
JZ 0x00108d74
CMP byte ptr [RAX + 0x2],0x0
JNZ 0x00108dd3
MOVSX ESI,SIL
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00103140
TEST RAX,RAX
JZ 0x00108dd3
MOV R12,qword ptr [RBX + 0x20]
LEA R14,[R12 + 0x1]
MOV qword ptr [RBX + 0x20],R14
MOVZX EBP,byte ptr [R12]
MOVSX R13D,BPL
MOV ESI,R13D
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00103140
CMP byte ptr [R12 + 0x1],0x0
JNZ 0x00108da2
ADD dword ptr [RBX],0x1
LEA EDX,[RBP + -0x3a]
CMP DL,0x1
JBE 0x001092b0
TEST RAX,RAX
JZ 0x001092b0
CMP byte ptr [RAX],0x57
JZ 0x001092ef
CMP byte ptr [RAX + 0x1],0x3a
JZ 0x00109708
MOVSX EAX,BPL
JMP 0x001098ef
MOV RDX,qword ptr [RBX + 0x20]
MOVZX EAX,byte ptr [RDX]
TEST AL,AL
JZ 0x00108e48
CMP AL,0x3d
JZ 0x00108e48
MOV R14,RDX
ADD R14,0x1
MOVZX EAX,byte ptr [R14]
TEST AL,AL
JZ 0x00108df5
CMP AL,0x3d
JNZ 0x00108de5
MOV RAX,R14
SUB RAX,RDX
MOV qword ptr [RSP + 0x18],RAX
MOV dword ptr [RSP + 0x30],EAX
MOV R12,qword ptr [RSP + 0x28]
MOV RBP,qword ptr [R12]
TEST RBP,RBP
JZ 0x0010980f
MOV ECX,0x0
MOV dword ptr [RSP + 0x50],0xffffffff
MOV dword ptr [RSP + 0x44],0x0
MOV R13D,0x0
MOV EAX,0x0
MOV qword ptr [RSP + 0x48],R14
MOV R14D,ECX
MOV dword ptr [RSP + 0x54],R15D
MOV R15,RAX
JMP 0x00108ebc
MOV R14,RDX
JMP 0x00108df5
MOV RAX,qword ptr [R12 + 0x10]
CMP qword ptr [R15 + 0x10],RAX
JNZ 0x00108f12
MOV EAX,dword ptr [R12 + 0x18]
CMP dword ptr [R15 + 0x18],EAX
JNZ 0x00108f12
MOV EAX,dword ptr [RSP + 0x40]
MOV dword ptr [RSP + 0x44],EAX
JMP 0x00108ea7
TEST R13,R13
JZ 0x00108f34
MOV RDI,R13
MOV RBP,qword ptr [RDI + 0x8]
CALL 0x00103040
MOV RDI,RBP
TEST RBP,RBP
JNZ 0x00108e81
MOV R13,RBP
MOV dword ptr [RSP + 0x44],0x1
JMP 0x00108ea7
MOV dword ptr [RSP + 0x50],R14D
MOV R15,R12
ADD R12,0x20
ADD R14D,0x1
MOV RBP,qword ptr [R12]
TEST RBP,RBP
JZ 0x00108f41
MOV EDX,dword ptr [RSP + 0x18]
MOV RSI,qword ptr [RBX + 0x20]
MOV RDI,RBP
CALL 0x001030a0
TEST EAX,EAX
JNZ 0x00108ea7
MOV RCX,-0x1
MOV RDI,RBP
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
SUB RAX,0x1
CMP dword ptr [RSP + 0x30],EAX
JZ 0x0010981f
TEST R15,R15
JZ 0x00108e9f
CMP dword ptr [RSP + 0x44],0x0
JNZ 0x00108ea7
CMP dword ptr [RSP + 0x40],0x0
JNZ 0x00108f12
MOV EAX,dword ptr [R12 + 0x8]
CMP dword ptr [R15 + 0x8],EAX
JZ 0x00108e4d
MOV EDI,0x10
CALL 0x001032b0
TEST RAX,RAX
JZ 0x00108e75
MOV qword ptr [RAX],R12
MOV qword ptr [RAX + 0x8],R13
MOV R13,RAX
JMP 0x00108ea7
MOV dword ptr [RSP + 0x44],0x1
JMP 0x00108ea7
MOV R12,R15
MOV R14,qword ptr [RSP + 0x48]
MOV R15D,dword ptr [RSP + 0x54]
CMP dword ptr [RSP + 0x44],0x0
SETNZ AL
TEST R13,R13
SETNZ DL
TEST AL,AL
JNZ 0x00108f68
TEST DL,DL
JZ 0x00109849
CMP dword ptr [RSP + 0x14],0x0
SETNZ CL
TEST DL,DL
JZ 0x00108f78
TEST CL,CL
JNZ 0x00108fd9
TEST AL,AL
JZ 0x00108f84
TEST CL,CL
JNZ 0x0010908d
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
ADD dword ptr [RBX],0x1
MOV dword ptr [RBX + 0x8],0x0
TEST R13,R13
JZ 0x001097cc
MOV RDI,R13
MOV RBX,qword ptr [RDI + 0x8]
CALL 0x00103040
MOV RDI,RBX
TEST RBX,RBX
JNZ 0x00108fbe
MOV EAX,0x3f
JMP 0x001098ef
MOV qword ptr [RSP + 0x60],R12
MOV qword ptr [RSP + 0x68],R13
MOVSXD RAX,dword ptr [RBX]
MOV RSI,qword ptr [RSP + 0x20]
MOV R8,qword ptr [RSI + RAX*0x8]
MOV RCX,qword ptr [RSI]
LEA RDX,[0x10bd48]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
LEA RBP,[RSP + 0x60]
LEA R12,[0x10bd01]
MOV RAX,qword ptr [RBP]
MOV RCX,qword ptr [RAX]
MOV RDX,R12
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
MOV RBP,qword ptr [RBP + 0x8]
TEST RBP,RBP
JNZ 0x0010901b
MOV RSI,qword ptr [0x0010f560]
MOV EDI,0xa
CALL 0x001031e0
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
ADD dword ptr [RBX],0x1
MOV dword ptr [RBX + 0x8],0x0
MOV EAX,0x3f
JMP 0x001098ef
MOVSXD RAX,dword ptr [RBX]
MOV RCX,qword ptr [RSP + 0x20]
MOV R8,qword ptr [RCX + RAX*0x8]
MOV RCX,qword ptr [RCX]
LEA RDX,[0x10bd09]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x00109055
CMP dword ptr [RSP + 0x14],0x0
JZ 0x00109101
CDQE
MOV RCX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RCX + RAX*0x8 + -0x8]
CMP byte ptr [RAX + 0x1],0x2d
JZ 0x00109137
MOV R9,qword ptr [R12]
MOVSX R8D,byte ptr [RAX]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10bda8]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
MOV EAX,dword ptr [R12 + 0x18]
MOV dword ptr [RBX + 0x8],EAX
MOV EAX,0x3f
JMP 0x001098ef
MOV R8,qword ptr [R12]
MOV RCX,qword ptr [RCX]
LEA RDX,[0x10bd78]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x00109101
CMP dword ptr [R12 + 0x8],0x1
JNZ 0x00109877
CMP EAX,R15D
JGE 0x00109187
ADD EDX,0x2
MOV dword ptr [RBX],EDX
CDQE
MOV RSI,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RSI + RAX*0x8]
MOV qword ptr [RBX + 0x10],RAX
JMP 0x00109877
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x001091d1
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
MOV EAX,dword ptr [R12 + 0x18]
MOV dword ptr [RBX + 0x8],EAX
MOV RAX,qword ptr [RSP + 0x8]
CMP byte ptr [RAX],0x3a
SETNZ AL
MOVZX EAX,AL
LEA EAX,[RAX + RAX*0x4 + 0x3a]
JMP 0x001098ef
MOV R8,qword ptr [R12]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10bdd8]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x0010918e
MOV EAX,dword ptr [R12 + 0x18]
JMP 0x001098ef
CMP dword ptr [RSP + 0x40],0x0
JZ 0x00109246
MOVSXD RAX,dword ptr [RBX]
MOV RCX,qword ptr [RSP + 0x20]
MOV RBP,qword ptr [RCX + RAX*0x8]
CMP byte ptr [RBP + 0x1],0x2d
JZ 0x001097d6
MOV RAX,qword ptr [RBX + 0x20]
MOVSX ESI,byte ptr [RAX]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00103140
TEST RAX,RAX
JNZ 0x00108d74
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x00109263
JMP 0x00109291
CMP dword ptr [RSP + 0x14],0x0
JZ 0x00109291
MOVSXD RAX,dword ptr [RBX]
MOV RSI,qword ptr [RSP + 0x20]
MOV RBP,qword ptr [RSI + RAX*0x8]
CMP byte ptr [RBP + 0x1],0x2d
JZ 0x001097e1
MOV R9,qword ptr [RBX + 0x20]
MOVSX R8D,byte ptr [RBP]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10be20]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
LEA RAX,[0x10bd42]
MOV qword ptr [RBX + 0x20],RAX
ADD dword ptr [RBX],0x1
MOV dword ptr [RBX + 0x8],0x0
MOV EAX,0x3f
JMP 0x001098ef
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x001092c5
MOV dword ptr [RBX + 0x8],R13D
MOV EAX,0x3f
JMP 0x001098ef
MOV R8D,R13D
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10bd27]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x001092b7
CMP byte ptr [RAX + 0x1],0x3b
JNZ 0x00108dc0
CMP qword ptr [RSP + 0x28],0x0
JZ 0x001096f6
CMP byte ptr [R12 + 0x1],0x0
JZ 0x001093b4
MOV qword ptr [RBX + 0x10],R14
ADD dword ptr [RBX],0x1
MOV R13,qword ptr [RBX + 0x10]
MOV qword ptr [RSP + 0x30],R13
MOV qword ptr [RBX + 0x20],R13
MOVZX R12D,byte ptr [R13]
TEST R12B,R12B
JZ 0x00109423
CMP R12B,0x3d
JZ 0x00109423
ADD R13,0x1
MOVZX R12D,byte ptr [R13]
TEST R12B,R12B
JZ 0x00109351
CMP R12B,0x3d
JNZ 0x0010933d
MOV RSI,qword ptr [RSP + 0x28]
MOV RBP,qword ptr [RSI]
TEST RBP,RBP
JZ 0x001096f6
MOV R14D,0x0
MOV dword ptr [RSP + 0x44],0x0
MOV dword ptr [RSP + 0x28],0x0
MOV EDX,0x0
MOV RAX,R13
MOV RCX,qword ptr [RSP + 0x30]
SUB RAX,RCX
MOV EDI,EAX
MOV qword ptr [RSP + 0x18],RDI
MOV byte ptr [RSP + 0x50],R12B
MOV R12,RAX
MOV qword ptr [RSP + 0x48],R13
MOV R13,RCX
MOV dword ptr [RSP + 0x54],R15D
MOV R15,RDX
MOV qword ptr [RSP + 0x58],RBX
MOV RBX,RSI
JMP 0x0010947a
MOV EAX,dword ptr [RBX]
CMP EAX,R15D
JZ 0x001093d4
LEA EDX,[RAX + 0x1]
MOV dword ptr [RBX],EDX
CDQE
MOV RCX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RCX + RAX*0x8]
MOV qword ptr [RBX + 0x10],RAX
JMP 0x00109318
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x001093f9
MOV dword ptr [RBX + 0x8],R13D
MOV RAX,qword ptr [RSP + 0x8]
MOVZX EAX,byte ptr [RAX]
CMP AL,0x3a
MOV EDX,0x3f
CMOVNZ EAX,EDX
MOVSX EAX,AL
JMP 0x001098ef
MOV R8D,R13D
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10be40]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x001093db
MOV R13,qword ptr [RSP + 0x30]
JMP 0x00109351
MOV RAX,qword ptr [RBX + 0x10]
CMP qword ptr [R15 + 0x10],RAX
JZ 0x00109441
MOV dword ptr [RSP + 0x28],0x1
JMP 0x0010946a
MOV EAX,dword ptr [R15 + 0x18]
CMP EAX,dword ptr [RBX + 0x18]
MOV EAX,0x1
CMOVZ EAX,dword ptr [RSP + 0x28]
MOV dword ptr [RSP + 0x28],EAX
JMP 0x0010946a
MOV dword ptr [RSP + 0x44],R14D
MOV R15,RBX
JMP 0x0010946a
MOV dword ptr [RSP + 0x28],0x1
ADD RBX,0x20
ADD R14D,0x1
MOV RBP,qword ptr [RBX]
TEST RBP,RBP
JZ 0x001094cd
MOV RDX,R12
MOV RSI,R13
MOV RDI,RBP
CALL 0x001030a0
TEST EAX,EAX
JNZ 0x0010946a
MOV RCX,-0x1
MOV RDI,RBP
SCASB.REPNE RDI
NOT RCX
SUB RCX,0x1
CMP qword ptr [RSP + 0x18],RCX
JZ 0x001095c9
TEST R15,R15
JZ 0x00109458
CMP dword ptr [RSP + 0x40],0x0
JNZ 0x00109462
MOV EAX,dword ptr [RBX + 0x8]
CMP dword ptr [R15 + 0x8],EAX
JZ 0x0010942d
MOV dword ptr [RSP + 0x28],0x1
JMP 0x0010946a
MOV R11,R15
MOVZX R12D,byte ptr [RSP + 0x50]
MOV R13,qword ptr [RSP + 0x48]
MOV R15D,dword ptr [RSP + 0x54]
MOV RBX,qword ptr [RSP + 0x58]
CMP dword ptr [RSP + 0x28],0x0
JNZ 0x00109565
TEST R11,R11
JZ 0x001096f6
TEST R12B,R12B
JZ 0x0010964d
CMP dword ptr [R11 + 0x8],0x0
JZ 0x001095ee
ADD R13,0x1
MOV qword ptr [RBX + 0x10],R13
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x30]
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
MOV RDI,qword ptr [RSP + 0x30]
LEA RAX,[RDI + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
MOV RAX,qword ptr [RSP + 0x38]
TEST RAX,RAX
JZ 0x00109548
MOV ESI,dword ptr [RSP + 0x44]
MOV dword ptr [RAX],ESI
MOV RAX,qword ptr [R11 + 0x10]
TEST RAX,RAX
JZ 0x001096ed
MOV EDX,dword ptr [R11 + 0x18]
MOV dword ptr [RAX],EDX
MOV EAX,0x0
JMP 0x001098ef
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x0010959d
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
ADD dword ptr [RBX],0x1
MOV EAX,0x3f
JMP 0x001098ef
MOV R8,qword ptr [RSP + 0x30]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10be70]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x0010956c
MOVZX R12D,byte ptr [RSP + 0x50]
MOV R13,qword ptr [RSP + 0x48]
MOV R15D,dword ptr [RSP + 0x54]
MOV RAX,RBX
MOV RBX,qword ptr [RSP + 0x58]
MOV dword ptr [RSP + 0x44],R14D
MOV R11,RAX
JMP 0x001094ec
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x00109623
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
MOV EAX,0x3f
JMP 0x001098ef
MOV R8,qword ptr [R11]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10be98]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x001095f5
CMP dword ptr [R11 + 0x8],0x1
JZ 0x00109661
MOV qword ptr [RBX + 0x10],0x0
JMP 0x00109511
MOV EAX,dword ptr [RBX]
CMP EAX,R15D
JGE 0x00109681
LEA EDX,[RAX + 0x1]
MOV dword ptr [RBX],EDX
CDQE
MOV RCX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RCX + RAX*0x8]
MOV qword ptr [RBX + 0x10],RAX
JMP 0x00109511
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x001096c3
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RAX,[RDX + RAX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
MOV RAX,qword ptr [RSP + 0x8]
CMP byte ptr [RAX],0x3a
SETNZ AL
MOVZX EAX,AL
LEA EAX,[RAX + RAX*0x4 + 0x3a]
JMP 0x001098ef
MOV R8,qword ptr [R11]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10bec8]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x00109688
MOV EAX,dword ptr [R11 + 0x18]
JMP 0x001098ef
MOV qword ptr [RBX + 0x20],0x0
MOV EAX,0x57
JMP 0x001098ef
CMP byte ptr [RAX + 0x2],0x3a
JZ 0x0010972a
CMP byte ptr [R12 + 0x1],0x0
JZ 0x00109750
MOV qword ptr [RBX + 0x10],R14
ADD dword ptr [RBX],0x1
MOV qword ptr [RBX + 0x20],0x0
JMP 0x00108dca
CMP byte ptr [R12 + 0x1],0x0
JZ 0x00109746
MOV qword ptr [RBX + 0x10],R14
ADD dword ptr [RBX],0x1
MOV qword ptr [RBX + 0x20],0x0
JMP 0x00108dca
MOV qword ptr [RBX + 0x10],0x0
JMP 0x00109739
MOV EAX,dword ptr [RBX]
CMP EAX,R15D
JZ 0x0010976d
LEA EDX,[RAX + 0x1]
MOV dword ptr [RBX],EDX
CDQE
MOV RCX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RCX + RAX*0x8]
MOV qword ptr [RBX + 0x10],RAX
JMP 0x0010971d
CMP dword ptr [RSP + 0x14],0x0
JNZ 0x0010978e
MOV dword ptr [RBX + 0x8],R13D
MOV RAX,qword ptr [RSP + 0x8]
MOVZX EBP,byte ptr [RAX]
CMP BPL,0x3a
MOV EAX,0x3f
CMOVNZ EBP,EAX
JMP 0x0010971d
MOV R8D,R13D
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10be40]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x00109774
MOV EAX,0xffffffff
JMP 0x001098ef
MOV EAX,0xffffffff
JMP 0x001098ef
MOV EAX,0x3f
JMP 0x001098ef
CMP dword ptr [RSP + 0x14],0x0
JZ 0x00109291
MOV R8,qword ptr [RBX + 0x20]
MOV RAX,qword ptr [RSP + 0x20]
MOV RCX,qword ptr [RAX]
LEA RDX,[0x10be00]
MOV ESI,0x1
MOV RDI,qword ptr [0x0010f560]
MOV EAX,0x0
CALL 0x00103390
JMP 0x00109291
MOV R13,RBP
MOV R12,RBP
MOV dword ptr [RSP + 0x50],0xffffffff
JMP 0x00109830
MOV EAX,R14D
MOV R14,qword ptr [RSP + 0x48]
MOV R15D,dword ptr [RSP + 0x54]
MOV dword ptr [RSP + 0x50],EAX
TEST R13,R13
JZ 0x00109849
MOV RDI,R13
MOV RBP,qword ptr [RDI + 0x8]
CALL 0x00103040
MOV RDI,RBP
TEST RBP,RBP
JNZ 0x00109838
TEST R12,R12
JZ 0x00109206
MOV EDX,dword ptr [RBX]
LEA EAX,[RDX + 0x1]
MOV dword ptr [RBX],EAX
CMP byte ptr [R14],0x0
JZ 0x0010915d
CMP dword ptr [R12 + 0x8],0x0
JZ 0x001090bb
ADD R14,0x1
MOV qword ptr [RBX + 0x10],R14
MOV RDX,qword ptr [RBX + 0x20]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RDX
SCASB.REPNE RDI
NOT RCX
LEA RAX,[RDX + RCX*0x1 + -0x1]
MOV qword ptr [RBX + 0x20],RAX
MOV RAX,qword ptr [RSP + 0x38]
TEST RAX,RAX
JZ 0x001098a8
MOV ESI,dword ptr [RSP + 0x50]
MOV dword ptr [RAX],ESI
MOV RAX,qword ptr [R12 + 0x10]
TEST RAX,RAX
JZ 0x001091fc
MOV EDX,dword ptr [R12 + 0x18]
MOV dword ptr [RAX],EDX
MOV EAX,0x0
JMP 0x001098ef
MOV EAX,0xffffffff
JMP 0x001098ef
CMP byte ptr [RDX],0x2d
JZ 0x00108d0c
CMP dword ptr [RBX + 0x28],0x0
JZ 0x001097c2
ADD EAX,0x1
MOV dword ptr [RBX],EAX
MOV RAX,qword ptr [R8]
MOV qword ptr [RBX + 0x10],RAX
MOV EAX,0x1
MOV RCX,qword ptr [RSP + 0x78]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x00109911
ADD RSP,0x88
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CALL 0x00103110
(translation_unit "int FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)\n\n{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar7;\n}\n\n" (function_definition "int FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)\n\n{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar7;\n}" primitive_type (function_declarator "FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)" identifier (parameter_list "(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar7;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "long **pplVar15;" (sized_type_specifier "long" long) (pointer_declarator "**pplVar15" * (pointer_declarator "*pplVar15" * identifier)) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "long *plVar18;" (sized_type_specifier "long" long) (pointer_declarator "*plVar18" * identifier) ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "undefined8 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = param_7[1];" (assignment_expression "uVar6 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (if_statement "if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }" if (parenthesized_expression "((int)param_1 < 1)" ( (binary_expression "(int)param_1 < 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" if (parenthesized_expression "(*param_7 == 0)" ( (binary_expression "*param_7 == 0" (pointer_expression "*param_7" * identifier) == number_literal) )) (compound_statement "{\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }" { (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (labeled_statement "LAB_00108b56:\n    param_7[0xd] = *param_7;" statement_identifier : (expression_statement "param_7[0xd] = *param_7;" (assignment_expression "param_7[0xd] = *param_7" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = (pointer_expression "*param_7" * identifier)) ;)) (expression_statement "param_7[0xc] = *param_7;" (assignment_expression "param_7[0xc] = *param_7" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }" { (expression_statement "pcVar9 = getenv("POSIXLY_CORRECT");" (assignment_expression "pcVar9 = getenv("POSIXLY_CORRECT")" identifier = (call_expression "getenv("POSIXLY_CORRECT")" identifier (argument_list "("POSIXLY_CORRECT")" ( (string_literal ""POSIXLY_CORRECT"" " string_content ") )))) ;) (expression_statement "uVar5 = (uint)(pcVar9 != (char *)0x0);" (assignment_expression "uVar5 = (uint)(pcVar9 != (char *)0x0)" identifier = (call_expression "(uint)(pcVar9 != (char *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) })) (expression_statement "param_7[0xb] = uVar5;" (assignment_expression "param_7[0xb] = uVar5" (subscript_expression "param_7[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" if (parenthesized_expression "(*param_3 == '-')" ( (binary_expression "*param_3 == '-'" (pointer_expression "*param_3" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }" { (expression_statement "param_7[10] = 2;" (assignment_expression "param_7[10] = 2" (subscript_expression "param_7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b0 = param_3 + 1;" (assignment_expression "local_b0 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }) (else_clause "else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" else (if_statement "if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" if (parenthesized_expression "(*param_3 == '+')" ( (binary_expression "*param_3 == '+'" (pointer_expression "*param_3" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }" { (expression_statement "param_7[10] = 0;" (assignment_expression "param_7[10] = 0" (subscript_expression "param_7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b0 = param_3 + 1;" (assignment_expression "local_b0 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" else (compound_statement "{\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" { (expression_statement "param_7[10] = uVar5 ^ 1;" (assignment_expression "param_7[10] = uVar5 ^ 1" (subscript_expression "param_7[10]" identifier [ number_literal ]) = (binary_expression "uVar5 ^ 1" identifier ^ number_literal)) ;) (expression_statement "local_b0 = param_3;" (assignment_expression "local_b0 = param_3" identifier = identifier) ;) }))))) (expression_statement "param_7[6] = 1;" (assignment_expression "param_7[6] = 1" (subscript_expression "param_7[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" else (compound_statement "{\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" { (if_statement "if (param_7[6] == 0) goto LAB_00108b56;" if (parenthesized_expression "(param_7[6] == 0)" ( (binary_expression "param_7[6] == 0" (subscript_expression "param_7[6]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00108b56;" goto statement_identifier ;)) (expression_statement "local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);" (assignment_expression "local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0)" identifier = (binary_expression "param_3 + ((*param_3 - 0x2bU & 0xfd) == 0)" identifier + (parenthesized_expression "((*param_3 - 0x2bU & 0xfd) == 0)" ( (binary_expression "(*param_3 - 0x2bU & 0xfd) == 0" (parenthesized_expression "(*param_3 - 0x2bU & 0xfd)" ( (binary_expression "*param_3 - 0x2bU & 0xfd" (binary_expression "*param_3 - 0x2bU" (pointer_expression "*param_3" * identifier) - number_literal) & number_literal) )) == number_literal) )))) ;) }))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }" if (parenthesized_expression "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) )) (compound_statement "{\n    uVar5 = uVar6;\n  }" { (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) })) (if_statement "if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }" if (parenthesized_expression "((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0'))" ( (binary_expression "(*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')" (parenthesized_expression "(*(char **)(param_7 + 8) == (char *)0x0)" ( (binary_expression "*(char **)(param_7 + 8) == (char *)0x0" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(**(char **)(param_7 + 8) == '\0')" ( (binary_expression "**(char **)(param_7 + 8) == '\0'" (pointer_expression "**(char **)(param_7 + 8)" * (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }" { (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }" if (parenthesized_expression "((int)uVar6 < (int)param_7[0xd])" ( (binary_expression "(int)uVar6 < (int)param_7[0xd]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_7[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_7[0xd]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_7[0xd] = uVar6;\n    }" { (expression_statement "param_7[0xd] = uVar6;" (assignment_expression "param_7[0xd] = uVar6" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }" if (parenthesized_expression "((int)uVar6 < (int)param_7[0xc])" ( (binary_expression "(int)uVar6 < (int)param_7[0xc]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_7[0xc]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_7[0xc]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_7[0xc] = uVar6;\n    }" { (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }" if (parenthesized_expression "(param_7[10] == 1)" ( (binary_expression "param_7[10] == 1" (subscript_expression "param_7[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }" { (expression_statement "uVar2 = param_7[0xd];" (assignment_expression "uVar2 = param_7[0xd]" identifier = (subscript_expression "param_7[0xd]" identifier [ number_literal ])) ;) (if_statement "if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }" if (parenthesized_expression "((param_7[0xc] == uVar2) || (uVar6 == uVar2))" ( (binary_expression "(param_7[0xc] == uVar2) || (uVar6 == uVar2)" (parenthesized_expression "(param_7[0xc] == uVar2)" ( (binary_expression "param_7[0xc] == uVar2" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == identifier) )) || (parenthesized_expression "(uVar6 == uVar2)" ( (binary_expression "uVar6 == uVar2" identifier == identifier) ))) )) (compound_statement "{\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }" { (if_statement "if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }" if (parenthesized_expression "(uVar6 != uVar2)" ( (binary_expression "uVar6 != uVar2" identifier != identifier) )) (compound_statement "{\n          param_7[0xc] = uVar6;\n        }" { (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else {\n        FUN_00108a11(param_2,param_7);\n      }" else (compound_statement "{\n        FUN_00108a11(param_2,param_7);\n      }" { (expression_statement "FUN_00108a11(param_2,param_7);" (call_expression "FUN_00108a11(param_2,param_7)" identifier (argument_list "(param_2,param_7)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }" if (parenthesized_expression "((int)uVar6 < (int)param_1)" ( (binary_expression "(int)uVar6 < (int)param_1" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }" { (expression_statement "lVar12 = (long)(int)uVar6;" (assignment_expression "lVar12 = (long)(int)uVar6" identifier = (cast_expression "(long)(int)uVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);" do (compound_statement "{\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        }" { (expression_statement "uVar6 = (uint)lVar12;" (assignment_expression "uVar6 = (uint)lVar12" identifier = (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;" if (parenthesized_expression "((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0'))" ( (binary_expression "(*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')" (parenthesized_expression "(*(char *)param_2[lVar12] == '-')" ( (binary_expression "*(char *)param_2[lVar12] == '-'" (pointer_expression "*(char *)param_2[lVar12]" * (cast_expression "(char *)param_2[lVar12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[lVar12]" identifier [ identifier ]))) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(((char *)param_2[lVar12])[1] != '\0')" ( (binary_expression "((char *)param_2[lVar12])[1] != '\0'" (subscript_expression "((char *)param_2[lVar12])[1]" (parenthesized_expression "((char *)param_2[lVar12])" ( (cast_expression "(char *)param_2[lVar12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[lVar12]" identifier [ identifier ])) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" * identifier) = identifier) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)lVar12 < (int)param_1)" ( (binary_expression "(int)lVar12 < (int)param_1" (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "param_7[0xd] = uVar6;" (assignment_expression "param_7[0xd] = uVar6" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "bVar22 = uVar6 < param_1;" (assignment_expression "bVar22 = uVar6 < param_1" identifier = (binary_expression "uVar6 < param_1" identifier < identifier)) ;) (expression_statement "bVar23 = uVar6 == param_1;" (assignment_expression "bVar23 = uVar6 == param_1" identifier = (binary_expression "uVar6 == param_1" identifier == identifier)) ;) (if_statement "if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }" { (expression_statement "pbVar3 = (byte *)param_2[(int)uVar6];" (assignment_expression "pbVar3 = (byte *)param_2[(int)uVar6]" identifier = (cast_expression "(byte *)param_2[(int)uVar6]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "lVar12 = 3;" (assignment_expression "lVar12 = 3" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar3;" (assignment_expression "pbVar16 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar17 = &DAT_0010b4bb;" (assignment_expression "pbVar17 = &DAT_0010b4bb" identifier = (pointer_expression "&DAT_0010b4bb" & identifier)) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar16 < *pbVar17;" (assignment_expression "bVar22 = *pbVar16 < *pbVar17" identifier = (binary_expression "*pbVar16 < *pbVar17" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar23 = *pbVar16 == *pbVar17;" (assignment_expression "bVar23 = *pbVar16 == *pbVar17" identifier = (binary_expression "*pbVar16 == *pbVar17" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }" { (if_statement "if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "((*pbVar3 != 0x2d) || (pbVar3[1] == 0))" ( (binary_expression "(*pbVar3 != 0x2d) || (pbVar3[1] == 0)" (parenthesized_expression "(*pbVar3 != 0x2d)" ( (binary_expression "*pbVar3 != 0x2d" (pointer_expression "*pbVar3" * identifier) != number_literal) )) || (parenthesized_expression "(pbVar3[1] == 0)" ( (binary_expression "pbVar3[1] == 0" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }" { (if_statement "if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" if (parenthesized_expression "(param_7[10] == 0)" ( (binary_expression "param_7[10] == 0" (subscript_expression "param_7[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar7 = -1;\n          }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" else (compound_statement "{\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" { (expression_statement "*param_7 = uVar6 + 1;" (assignment_expression "*param_7 = uVar6 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;" (assignment_expression "*(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1" (pointer_expression "*(byte **)(param_7 + 8)" * (cast_expression "(byte **)(param_7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1" (binary_expression "pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" identifier + (call_expression "(ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" ( (binary_expression "param_4 != (long *)0x0 && pbVar3[1] == 0x2d" (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "pbVar3[1] == 0x2d" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) == number_literal)) )))) + number_literal)) ;) (goto_statement "goto LAB_00108d36;" goto statement_identifier ;) })) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" * identifier) = identifier) ;) (expression_statement "uVar5 = param_7[0xd];" (assignment_expression "uVar5 = param_7[0xd]" identifier = (subscript_expression "param_7[0xd]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }" if (parenthesized_expression "((uVar6 == uVar5) || (param_7[0xc] == uVar5))" ( (binary_expression "(uVar6 == uVar5) || (param_7[0xc] == uVar5)" (parenthesized_expression "(uVar6 == uVar5)" ( (binary_expression "uVar6 == uVar5" identifier == identifier) )) || (parenthesized_expression "(param_7[0xc] == uVar5)" ( (binary_expression "param_7[0xc] == uVar5" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }" { (if_statement "if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }" if (parenthesized_expression "(param_7[0xc] == uVar5)" ( (binary_expression "param_7[0xc] == uVar5" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          param_7[0xc] = uVar6;\n        }" { (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else {\n        FUN_00108a11(param_2,param_7);\n      }" else (compound_statement "{\n        FUN_00108a11(param_2,param_7);\n      }" { (expression_statement "FUN_00108a11(param_2,param_7);" (call_expression "FUN_00108a11(param_2,param_7)" identifier (argument_list "(param_2,param_7)" ( identifier , identifier ))) ;) }))) (expression_statement "param_7[0xd] = param_1;" (assignment_expression "param_7[0xd] = param_1" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_7 = param_1;" (assignment_expression "*param_7 = param_1" (pointer_expression "*param_7" * identifier) = identifier) ;) })) (if_statement "if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" if (parenthesized_expression "(param_7[0xc] == param_7[0xd])" ( (binary_expression "param_7[0xc] == param_7[0xd]" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == (subscript_expression "param_7[0xd]" identifier [ number_literal ])) )) (compound_statement "{\n      iVar7 = -1;\n    }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" else (compound_statement "{\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" { (expression_statement "*param_7 = param_7[0xc];" (assignment_expression "*param_7 = param_7[0xc]" (pointer_expression "*param_7" * identifier) = (subscript_expression "param_7[0xc]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (labeled_statement "LAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" statement_identifier : (if_statement "if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" if (parenthesized_expression "(param_4 != (long *)0x0)" ( (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" { (expression_statement "cVar14 = *(char *)(param_2[(int)*param_7] + 1);" (assignment_expression "cVar14 = *(char *)(param_2[(int)*param_7] + 1)" identifier = (pointer_expression "*(char *)(param_2[(int)*param_7] + 1)" * (cast_expression "(char *)(param_2[(int)*param_7] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[(int)*param_7] + 1)" ( (binary_expression "param_2[(int)*param_7] + 1" (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) + number_literal) ))))) ;) (if_statement "if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }" if (parenthesized_expression "((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))))" ( (binary_expression "(cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" (parenthesized_expression "(cVar14 == '-')" ( (binary_expression "cVar14 == '-'" identifier == (char_literal "'-'" ' character ')) )) || (parenthesized_expression "((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" ( (parenthesized_expression "(param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))" ( (binary_expression "param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" (binary_expression "param_6 != 0" identifier != number_literal) && (parenthesized_expression "((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" ( (parenthesized_expression "(*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))" ( (binary_expression "*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" (binary_expression "*(char *)(param_2[(int)*param_7] + 2) != '\0'" (pointer_expression "*(char *)(param_2[(int)*param_7] + 2)" * (cast_expression "(char *)(param_2[(int)*param_7] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[(int)*param_7] + 2)" ( (binary_expression "param_2[(int)*param_7] + 2" (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" ( (comma_expression "pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0" (assignment_expression "pcVar9 = strchr(local_b0,(int)cVar14)" identifier = (call_expression "strchr(local_b0,(int)cVar14)" identifier (argument_list "(local_b0,(int)cVar14)" ( identifier , (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) ))) )) (compound_statement "{\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }" { (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" identifier = identifier) ;) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" while (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" ( (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" ( (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(cVar14 != '=')" ( (binary_expression "cVar14 != '='" identifier != (char_literal "'='" ' character ')) ))) )) )) (compound_statement "{\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" { (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) })) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }" { (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" identifier = number_literal) ;) (expression_statement "__ptr = (undefined8 *)0x0;" (assignment_expression "__ptr = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = local_68;" (assignment_expression "iVar7 = local_68" identifier = identifier) ;) (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" statement_identifier : (while_statement "while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" while (parenthesized_expression "(local_68 = iVar7, __ptr != (undefined8 *)0x0)" ( (comma_expression "local_68 = iVar7, __ptr != (undefined8 *)0x0" (assignment_expression "local_68 = iVar7" identifier = identifier) , (binary_expression "__ptr != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" { (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" identifier = (cast_expression "(undefined8 *)__ptr[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[1]" identifier [ number_literal ]))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) (expression_statement "iVar7 = local_68;" (assignment_expression "iVar7 = local_68" identifier = identifier) ;) }))) }) (else_clause "else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" else (compound_statement "{\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" { (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" identifier = number_literal) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "__ptr = (undefined8 *)0x0;" (assignment_expression "__ptr = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "plVar18 = param_4;" (assignment_expression "plVar18 = param_4" identifier = identifier) ;) (expression_statement "plVar21 = (long *)0x0;" (assignment_expression "plVar21 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);" do (compound_statement "{\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        }" { (expression_statement "iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;" (assignment_expression "iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" identifier = (call_expression "strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" identifier (argument_list "(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" ( identifier , (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) , (binary_expression "(long)pcVar20 - (long)pcVar9 & 0xffffffff" (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & number_literal) )))) ;) (expression_statement "plVar19 = plVar21;" (assignment_expression "plVar19 = plVar21" identifier = identifier) ;) (expression_statement "iVar4 = local_68;" (assignment_expression "iVar4 = local_68" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }" { (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" identifier = number_literal) ;) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');" do (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar10;" (assignment_expression "cVar14 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "plVar19 = plVar18;" (assignment_expression "plVar19 = plVar18" identifier = identifier) ;) (if_statement "if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;" if (parenthesized_expression "((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1)" ( (binary_expression "(int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1" (cast_expression "(int)((long)pcVar20 - (long)pcVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)pcVar20 - (long)pcVar9)" ( (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) == (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" ~ (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) )) (goto_statement "goto joined_r0x00109833;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }" if (parenthesized_expression "((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22))" ( (binary_expression "(plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)" (parenthesized_expression "(plVar21 != (long *)0x0)" ( (binary_expression "plVar21 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar19 = plVar21, iVar4 = local_68, !bVar22)" ( (comma_expression "plVar19 = plVar21, iVar4 = local_68, !bVar22" (assignment_expression "plVar19 = plVar21" identifier = identifier) , (comma_expression "iVar4 = local_68, !bVar22" (assignment_expression "iVar4 = local_68" identifier = identifier) , (unary_expression "!bVar22" ! identifier))) ))) )) (compound_statement "{\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }" { (if_statement "if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" if (parenthesized_expression "((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3]))))" ( (binary_expression "(param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))" (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) && (parenthesized_expression "((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))" ( (parenthesized_expression "(((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3]))" ( (binary_expression "((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])" (parenthesized_expression "((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2]))" ( (binary_expression "(int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])" (binary_expression "(int)plVar21[1] == (int)plVar18[1]" (cast_expression "(int)plVar21[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar21[1]" identifier [ number_literal ])) == (cast_expression "(int)plVar18[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar18[1]" identifier [ number_literal ]))) && (parenthesized_expression "(plVar21[2] == plVar18[2])" ( (binary_expression "plVar21[2] == plVar18[2]" (subscript_expression "plVar21[2]" identifier [ number_literal ]) == (subscript_expression "plVar18[2]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "((int)plVar21[3] == (int)plVar18[3])" ( (binary_expression "(int)plVar21[3] == (int)plVar18[3]" (cast_expression "(int)plVar21[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar21[3]" identifier [ number_literal ])) == (cast_expression "(int)plVar18[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar18[3]" identifier [ number_literal ]))) ))) )) ))) )) (compound_statement "{\n                bVar22 = false;\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) }) (else_clause "else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" else (compound_statement "{\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" { (expression_statement "puVar11 = (undefined8 *)malloc(0x10);" (assignment_expression "puVar11 = (undefined8 *)malloc(0x10)" identifier = (cast_expression "(undefined8 *)malloc(0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }" { (if_statement "if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" if (parenthesized_expression "(__ptr == (undefined8 *)0x0)" ( (binary_expression "__ptr == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar22 = true;\n                  }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }) (else_clause "else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" else (compound_statement "{\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" { (do_statement "do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);" do (compound_statement "{\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    }" { (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" identifier = (cast_expression "(undefined8 *)__ptr[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[1]" identifier [ number_literal ]))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" ( (binary_expression "puVar11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }))) }) (else_clause "else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" else (compound_statement "{\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" { (expression_statement "*puVar11 = plVar18;" (assignment_expression "*puVar11 = plVar18" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "puVar11[1] = __ptr;" (assignment_expression "puVar11[1] = __ptr" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) }))) }))) })) })) (expression_statement "local_68 = iVar4;" (assignment_expression "local_68 = iVar4" identifier = identifier) ;) (expression_statement "plVar18 = plVar18 + 4;" (assignment_expression "plVar18 = plVar18 + 4" identifier = (binary_expression "plVar18 + 4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar10 = (char *)*plVar18;" (assignment_expression "pcVar10 = (char *)*plVar18" identifier = (cast_expression "(char *)*plVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (expression_statement "plVar21 = plVar19;" (assignment_expression "plVar21 = plVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "((bVar22) || (__ptr != (undefined8 *)0x0))" ( (binary_expression "(bVar22) || (__ptr != (undefined8 *)0x0)" (parenthesized_expression "(bVar22)" ( identifier )) || (parenthesized_expression "(__ptr != (undefined8 *)0x0)" ( (binary_expression "__ptr != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" { (if_statement "if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" if (parenthesized_expression "((__ptr == (undefined8 *)0x0) || (uVar5 == 0))" ( (binary_expression "(__ptr == (undefined8 *)0x0) || (uVar5 == 0)" (parenthesized_expression "(__ptr == (undefined8 *)0x0)" ( (binary_expression "__ptr == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }" { (if_statement "if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((!bVar22) || (uVar5 == 0))" ( (binary_expression "(!bVar22) || (uVar5 == 0)" (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) || (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" if (parenthesized_expression "(__ptr == (undefined8 *)0x0)" ( (binary_expression "__ptr == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar7 = 0x3f;\n              }" { (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" else (compound_statement "{\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" { (do_statement "do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);" do (compound_statement "{\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                }" { (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" identifier = (cast_expression "(undefined8 *)__ptr[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[1]" identifier [ number_literal ]))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" ( (binary_expression "puVar11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7])" identifier (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7])" ( identifier , number_literal , (string_literal ""%s: option \'%s\' is ambiguous\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) ))) ;) }) (else_clause "else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" else (compound_statement "{\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" { (expression_statement "local_58 = plVar19;" (assignment_expression "local_58 = plVar19" identifier = identifier) ;) (expression_statement "local_50 = __ptr;" (assignment_expression "local_50 = __ptr" identifier = identifier) ;) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7])" identifier (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7])" ( identifier , number_literal , (string_literal ""%s: option \'%s\' is ambiguous; possibilities:"" " string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) ))) ;) (expression_statement "pplVar15 = &local_58;" (assignment_expression "pplVar15 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (do_statement "do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);" do (compound_statement "{\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            }" { (expression_statement "__fprintf_chk(stderr,1," \'--%s\'",**pplVar15);" (call_expression "__fprintf_chk(stderr,1," \'--%s\'",**pplVar15)" identifier (argument_list "(stderr,1," \'--%s\'",**pplVar15)" ( identifier , number_literal , (string_literal "" \'--%s\'"" " string_content escape_sequence string_content escape_sequence ") , (pointer_expression "**pplVar15" * (pointer_expression "*pplVar15" * identifier)) ))) ;) (expression_statement "pplVar15 = (long **)pplVar15[1];" (assignment_expression "pplVar15 = (long **)pplVar15[1]" identifier = (cast_expression "(long **)pplVar15[1]" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pplVar15[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(pplVar15 != (long **)0x0)" ( (binary_expression "pplVar15 != (long **)0x0" identifier != (cast_expression "(long **)0x0" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "fputc(10,stderr);" (call_expression "fputc(10,stderr)" identifier (argument_list "(10,stderr)" ( number_literal , identifier ))) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) }))) (if_statement "if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }" if (parenthesized_expression "(plVar19 != (long *)0x0)" ( (binary_expression "plVar19 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }" { (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "uVar6 = uVar2 + 1;" (assignment_expression "uVar6 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" * identifier) = identifier) ;) (if_statement "if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" if (parenthesized_expression "(*pcVar20 == '\0')" ( (binary_expression "*pcVar20 == '\0'" (pointer_expression "*pcVar20" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }" { (if_statement "if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }" if (parenthesized_expression "((int)plVar19[1] == 1)" ( (binary_expression "(int)plVar19[1] == 1" (cast_expression "(int)plVar19[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }" { (if_statement "if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((int)param_1 <= (int)uVar6)" ( (binary_expression "(int)param_1 <= (int)uVar6" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" { (if_statement "if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19)" identifier (argument_list "(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19)" ( identifier , number_literal , (string_literal ""%s: option \'--%s\' requires an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*plVar19" * identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "param_7[2] = *(uint *)(plVar19 + 3);" (assignment_expression "param_7[2] = *(uint *)(plVar19 + 3)" (subscript_expression "param_7[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(plVar19 + 3)" * (cast_expression "(uint *)(plVar19 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar19 + 3)" ( (binary_expression "plVar19 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a" identifier = (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) ))) * number_literal) + number_literal)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*param_7 = uVar2 + 2;" (assignment_expression "*param_7 = uVar2 + 2" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) })) }) (else_clause "else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" else (compound_statement "{\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" { (if_statement "if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }" if (parenthesized_expression "((int)plVar19[1] == 0)" ( (binary_expression "(int)plVar19[1] == 0" (cast_expression "(int)plVar19[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }" { (if_statement "if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }" { (if_statement "if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" if (parenthesized_expression "(((char *)param_2[(long)(int)uVar6 + -1])[1] == '-')" ( (binary_expression "((char *)param_2[(long)(int)uVar6 + -1])[1] == '-'" (subscript_expression "((char *)param_2[(long)(int)uVar6 + -1])[1]" (parenthesized_expression "((char *)param_2[(long)(int)uVar6 + -1])" ( (cast_expression "(char *)param_2[(long)(int)uVar6 + -1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(long)(int)uVar6 + -1]" identifier [ (binary_expression "(long)(int)uVar6 + -1" (cast_expression "(long)(int)uVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ])) )) [ number_literal ]) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19)" identifier (argument_list "(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19)" ( identifier , number_literal , (string_literal ""%s: option \'--%s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*plVar19" * identifier) ))) ;) }) (else_clause "else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" else (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19)" identifier (argument_list "(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19)" ( identifier , number_literal , (string_literal ""%s: option \'%c%s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (cast_expression "(int)*(char *)param_2[(long)(int)uVar6 + -1]" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)param_2[(long)(int)uVar6 + -1]" * (cast_expression "(char *)param_2[(long)(int)uVar6 + -1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(long)(int)uVar6 + -1]" identifier [ (binary_expression "(long)(int)uVar6 + -1" (cast_expression "(long)(int)uVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ])))) , (pointer_expression "*plVar19" * identifier) ))) ;) }))) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "param_7[2] = *(uint *)(plVar19 + 3);" (assignment_expression "param_7[2] = *(uint *)(plVar19 + 3)" (subscript_expression "param_7[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(plVar19 + 3)" * (cast_expression "(uint *)(plVar19 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar19 + 3)" ( (binary_expression "plVar19 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*(char **)(param_7 + 4) = pcVar20 + 1;" (assignment_expression "*(char **)(param_7 + 4) = pcVar20 + 1" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');" do (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (if_statement "if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *param_5 = local_68;\n        }" { (expression_statement "*param_5 = local_68;" (assignment_expression "*param_5 = local_68" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (if_statement "if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" if (parenthesized_expression "((undefined4 *)plVar19[2] == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)plVar19[2] == (undefined4 *)0x0" (cast_expression "(undefined4 *)plVar19[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar19[2]" identifier [ number_literal ])) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar7 = (int)plVar19[3];\n        }" { (expression_statement "iVar7 = (int)plVar19[3];" (assignment_expression "iVar7 = (int)plVar19[3]" identifier = (cast_expression "(int)plVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" { (expression_statement "*(undefined4 *)plVar19[2] = (int)plVar19[3];" (assignment_expression "*(undefined4 *)plVar19[2] = (int)plVar19[3]" (pointer_expression "*(undefined4 *)plVar19[2]" * (cast_expression "(undefined4 *)plVar19[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar19[2]" identifier [ number_literal ]))) = (cast_expression "(int)plVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (if_statement "if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }" { (if_statement "if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }" { (expression_statement "pcVar9 = (char *)param_2[(int)*param_7];" (assignment_expression "pcVar9 = (char *)param_2[(int)*param_7]" identifier = (cast_expression "(char *)param_2[(int)*param_7]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]))) ;) (if_statement "if (pcVar9[1] == '-') goto LAB_001097e1;" if (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001097e1;" goto statement_identifier ;)) (labeled_statement "LAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));" statement_identifier : (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8))" identifier (argument_list "(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8))" ( identifier , number_literal , (string_literal ""%s: unrecognized option \'%c%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier)) , (pointer_expression "*(undefined8 *)(param_7 + 8)" * (cast_expression "(undefined8 *)(param_7 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) ))) ;)) })) }) (else_clause "else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" else (compound_statement "{\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" { (expression_statement "pcVar9 = (char *)param_2[(int)*param_7];" (assignment_expression "pcVar9 = (char *)param_2[(int)*param_7]" identifier = (cast_expression "(char *)param_2[(int)*param_7]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]))) ;) (if_statement "if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" if (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }" { (if_statement "if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }" { (labeled_statement "LAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));" statement_identifier : (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8))" identifier (argument_list "(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8))" ( identifier , number_literal , (string_literal ""%s: unrecognized option \'--%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*(undefined8 *)(param_7 + 8)" * (cast_expression "(undefined8 *)(param_7 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) ))) ;)) })) }) (else_clause "else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" else (compound_statement "{\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" { (expression_statement "pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));" (assignment_expression "pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8))" identifier = (call_expression "strchr(local_b0,(int)**(char **)(param_7 + 8))" identifier (argument_list "(local_b0,(int)**(char **)(param_7 + 8))" ( identifier , (cast_expression "(int)**(char **)(param_7 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "**(char **)(param_7 + 8)" * (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))))) )))) ;) (if_statement "if (pcVar20 != (char *)0x0) goto LAB_00108d74;" if (parenthesized_expression "(pcVar20 != (char *)0x0)" ( (binary_expression "pcVar20 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00108d74;" goto statement_identifier ;)) (if_statement "if (uVar5 != 0) goto LAB_00109263;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109263;" goto statement_identifier ;)) }))) }))) (expression_statement "*(char **)(param_7 + 8) = "";" (assignment_expression "*(char **)(param_7 + 8) = """ (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);" statement_identifier : (expression_statement "pcVar20 = *(char **)(param_7 + 8);" (assignment_expression "pcVar20 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;)) (expression_statement "pcVar9 = pcVar20 + 1;" (assignment_expression "pcVar9 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)(param_7 + 8) = pcVar9;" (assignment_expression "*(char **)(param_7 + 8) = pcVar9" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) (expression_statement "uVar6 = (uint)cVar14;" (assignment_expression "uVar6 = (uint)cVar14" identifier = (cast_expression "(uint)cVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar10 = strchr(local_b0,uVar6);" (assignment_expression "pcVar10 = strchr(local_b0,uVar6)" identifier = (call_expression "strchr(local_b0,uVar6)" identifier (argument_list "(local_b0,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_7 = *param_7 + 1;\n  }" { (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) })) (if_statement "if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" if (parenthesized_expression "(((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0))" ( (binary_expression "((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)" (parenthesized_expression "((byte)(cVar14 - 0x3aU) < 2)" ( (binary_expression "(byte)(cVar14 - 0x3aU) < 2" (call_expression "(byte)(cVar14 - 0x3aU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar14 - 0x3aU)" ( (binary_expression "cVar14 - 0x3aU" identifier - number_literal) ))) < number_literal) )) || (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }" { (if_statement "if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }" { (expression_statement "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6)" identifier (argument_list "(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6)" ( identifier , number_literal , (string_literal ""%s: invalid option -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) }) (else_clause "else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" else (if_statement "if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" if (parenthesized_expression "((*pcVar10 == 'W') && (pcVar10[1] == ';'))" ( (binary_expression "(*pcVar10 == 'W') && (pcVar10[1] == ';')" (parenthesized_expression "(*pcVar10 == 'W')" ( (binary_expression "*pcVar10 == 'W'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'W'" ' character ')) )) && (parenthesized_expression "(pcVar10[1] == ';')" ( (binary_expression "pcVar10[1] == ';'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "';'" ' character ')) ))) )) (compound_statement "{\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }" { (if_statement "if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" if (parenthesized_expression "(param_4 != (long *)0x0)" ( (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" { (if_statement "if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }" { (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(uVar2 == param_1)" ( (binary_expression "uVar2 == param_1" identifier == identifier) )) (compound_statement "{\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }" { (if_statement "if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" identifier (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" ( identifier , number_literal , (string_literal ""%s: option requires an argument -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (*local_b0 != ':') {\n            cVar14 = '?';\n          }" if (parenthesized_expression "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) )) (compound_statement "{\n            cVar14 = '?';\n          }" { (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" identifier = (char_literal "'?'" ' character ')) ;) })) (expression_statement "iVar7 = (int)cVar14;" (assignment_expression "iVar7 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*param_7 = uVar2 + 1;" (assignment_expression "*param_7 = uVar2 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar2]" identifier [ (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) (else_clause "else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" else (compound_statement "{\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" { (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) }))) (expression_statement "pcVar9 = *(char **)(param_7 + 4);" (assignment_expression "pcVar9 = *(char **)(param_7 + 4)" identifier = (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(param_7 + 8) = pcVar9;" (assignment_expression "*(char **)(param_7 + 8) = pcVar9" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" identifier = identifier) ;) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" while (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" ( (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" ( (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(cVar14 != '=')" ( (binary_expression "cVar14 != '='" identifier != (char_literal "'='" ' character ')) ))) )) )) (compound_statement "{\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" { (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) })) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (do_statement "do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);" do (compound_statement "{\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        }" { (expression_statement "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);" (assignment_expression "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" identifier = (call_expression "strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" identifier (argument_list "(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" ( identifier , identifier , (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = bVar22;" (assignment_expression "bVar23 = bVar22" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar10;" (assignment_expression "cVar1 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;" if (parenthesized_expression "(((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1)" ( (binary_expression "((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1" (parenthesized_expression "((long)pcVar20 - (long)pcVar9 & 0xffffffffU)" ( (binary_expression "(long)pcVar20 - (long)pcVar9 & 0xffffffffU" (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & number_literal) )) == (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal)) )) (goto_statement "goto LAB_001094ec;" goto statement_identifier ;)) (expression_statement "plVar18 = param_4;" (assignment_expression "plVar18 = param_4" identifier = identifier) ;) (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }" if (parenthesized_expression "(plVar19 != (long *)0x0)" ( (binary_expression "plVar19 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }" { (if_statement "if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }" { (if_statement "if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" if (parenthesized_expression "((int)plVar19[1] == (int)param_4[1])" ( (binary_expression "(int)plVar19[1] == (int)param_4[1]" (cast_expression "(int)plVar19[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[1]" identifier [ number_literal ])) == (cast_expression "(int)param_4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }" { (if_statement "if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" if (parenthesized_expression "(plVar19[2] == param_4[2])" ( (binary_expression "plVar19[2] == param_4[2]" (subscript_expression "plVar19[2]" identifier [ number_literal ]) == (subscript_expression "param_4[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (if_statement "if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }" if (parenthesized_expression "((int)plVar19[3] == (int)param_4[3])" ( (binary_expression "(int)plVar19[3] == (int)param_4[3]" (cast_expression "(int)plVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[3]" identifier [ number_literal ])) == (cast_expression "(int)param_4[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                      bVar23 = bVar22;\n                    }" { (expression_statement "bVar23 = bVar22;" (assignment_expression "bVar23 = bVar22" identifier = identifier) ;) })) }) (else_clause "else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" else (compound_statement "{\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) }) (else_clause "else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" else (compound_statement "{\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) }) (else_clause "else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" else (compound_statement "{\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) })) })) (expression_statement "local_74 = iVar4;" (assignment_expression "local_74 = iVar4" identifier = identifier) ;) (expression_statement "param_4 = param_4 + 4;" (assignment_expression "param_4 = param_4 + 4" identifier = (binary_expression "param_4 + 4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "plVar19 = plVar18;" (assignment_expression "plVar19 = plVar18" identifier = identifier) ;) (expression_statement "bVar22 = bVar23;" (assignment_expression "bVar22 = bVar23" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "param_4 = plVar18;" (assignment_expression "param_4 = plVar18" identifier = identifier) ;) (expression_statement "iVar7 = local_74;" (assignment_expression "iVar7 = local_74" identifier = identifier) ;) (if_statement "if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" { (if_statement "if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' is ambiguous\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (labeled_statement "LAB_001094ec:\n        local_74 = iVar7;" statement_identifier : (expression_statement "local_74 = iVar7;" (assignment_expression "local_74 = iVar7" identifier = identifier) ;)) (if_statement "if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(param_4 != (long *)0x0)" ( (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }" { (if_statement "if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" if (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }" { (if_statement "if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" if (parenthesized_expression "((int)param_4[1] == 1)" ( (binary_expression "(int)param_4[1] == 1" (cast_expression "(int)param_4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }" { (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" if (parenthesized_expression "((int)param_1 <= (int)uVar6)" ( (binary_expression "(int)param_1 <= (int)uVar6" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" { (if_statement "if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' requires an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*param_4" * identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');" do (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a" identifier = (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) ))) * number_literal) + number_literal)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*param_7 = uVar6 + 1;" (assignment_expression "*param_7 = uVar6 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) (else_clause "else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" else (compound_statement "{\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" { (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" else (compound_statement "{\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" { (if_statement "if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((int)param_4[1] == 0)" ( (binary_expression "(int)param_4[1] == 0" (cast_expression "(int)param_4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }" { (if_statement "if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*param_4" * identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*(char **)(param_7 + 4) = pcVar20 + 1;" (assignment_expression "*(char **)(param_7 + 4) = pcVar20 + 1" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" identifier = identifier) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) (expression_statement "pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar20 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar20 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "pcVar9 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (if_statement "if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *param_5 = local_74;\n          }" { (expression_statement "*param_5 = local_74;" (assignment_expression "*param_5 = local_74" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (if_statement "if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" if (parenthesized_expression "((undefined4 *)param_4[2] == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)param_4[2] == (undefined4 *)0x0" (cast_expression "(undefined4 *)param_4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ])) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = (int)param_4[3];\n          }" { (expression_statement "iVar7 = (int)param_4[3];" (assignment_expression "iVar7 = (int)param_4[3]" identifier = (cast_expression "(int)param_4[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" { (expression_statement "*(undefined4 *)param_4[2] = (int)param_4[3];" (assignment_expression "*(undefined4 *)param_4[2] = (int)param_4[3]" (pointer_expression "*(undefined4 *)param_4[2]" * (cast_expression "(undefined4 *)param_4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) = (cast_expression "(int)param_4[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) })) })) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = 0x57;" (assignment_expression "iVar7 = 0x57" identifier = number_literal) ;) }) (else_clause "else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" else (compound_statement "{\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" { (if_statement "if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }" if (parenthesized_expression "(pcVar10[1] == ':')" ( (binary_expression "pcVar10[1] == ':'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }" { (if_statement "if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" if (parenthesized_expression "(pcVar10[2] == ':')" ( (binary_expression "pcVar10[2] == ':'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" { (if_statement "if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }" { (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" else (compound_statement "{\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" { (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) }))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" else (compound_statement "{\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" { (if_statement "if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }" { (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" if (parenthesized_expression "(uVar2 == param_1)" ( (binary_expression "uVar2 == param_1" identifier == identifier) )) (compound_statement "{\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }" { (if_statement "if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" identifier (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" ( identifier , number_literal , (string_literal ""%s: option requires an argument -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (cVar14 != ':') {\n              cVar14 = '?';\n            }" if (parenthesized_expression "(cVar14 != ':')" ( (binary_expression "cVar14 != ':'" identifier != (char_literal "':'" ' character ')) )) (compound_statement "{\n              cVar14 = '?';\n            }" { (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" identifier = (char_literal "'?'" ' character ')) ;) })) }) (else_clause "else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" else (compound_statement "{\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" { (expression_statement "*param_7 = uVar2 + 1;" (assignment_expression "*param_7 = uVar2 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar2]" identifier [ (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }))) }) (else_clause "else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" else (compound_statement "{\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" { (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) }))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) }))) })) (expression_statement "iVar7 = (int)cVar14;" (assignment_expression "iVar7 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))))) (labeled_statement "LAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar7;" return identifier ;) })))
(translation_unit "int _getopt_internal_r(int argc,char **argv,char *optstring,rpl_option *longopts,int *longind,\n                      int long_only,_getopt_data *d,int posixly_correct)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  long lVar4;\n  byte *pbVar5;\n  __ord _Var6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  option_list *poVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  rpl_option *prVar17;\n  rpl_option *prVar18;\n  int iVar19;\n  option_list *poVar20;\n  char *pcVar21;\n  rpl_option *prVar22;\n  long in_FS_OFFSET;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  option_list first;\n  \n  bVar25 = 0;\n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar19 = d->rpl_opterr;\n  if (argc < 1) {\n    iVar19 = -1;\n    goto LAB_001098ef;\n  }\n  d->rpl_optarg = (char *)0x0;\n  if (d->rpl_optind == 0) {\n    d->rpl_optind = 1;\nLAB_00108b56:\n    d->__last_nonopt = d->rpl_optind;\n    d->__first_nonopt = d->rpl_optind;\n    d->__nextchar = (char *)0x0;\n    _Var6 = PERMUTE;\n    if (posixly_correct == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }\n    d->__posixly_correct = _Var6;\n    if (*optstring == '-') {\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }\n    d->__initialized = 1;\n  }\n  else {\n    if (d->__initialized == 0) goto LAB_00108b56;\n    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);\n  }\n  iVar7 = 0;\n  if (*local_b0 != ':') {\n    iVar7 = iVar19;\n  }\n  if ((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')) {\n    iVar19 = d->rpl_optind;\n    if (iVar19 < d->__last_nonopt) {\n      d->__last_nonopt = iVar19;\n    }\n    if (iVar19 < d->__first_nonopt) {\n      d->__first_nonopt = iVar19;\n    }\n    if (d->__ordering == PERMUTE) {\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }\n    uVar2 = d->rpl_optind;\n    bVar23 = uVar2 < (uint)argc;\n    bVar24 = uVar2 == argc;\n    if (!bVar24) {\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }\n    if (d->__first_nonopt == d->__last_nonopt) {\n      iVar19 = -1;\n    }\n    else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (longopts != (rpl_option *)0x0) {\n    cVar14 = argv[d->rpl_optind][1];\n    if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar21 = d->__nextchar;\n  pcVar9 = pcVar21 + 1;\n  d->__nextchar = pcVar9;\n  cVar14 = *pcVar21;\n  iVar19 = (int)cVar14;\n  pcVar10 = strchr(local_b0,iVar19);\n  if (pcVar21[1] == '\0') {\n    d->rpl_optind = d->rpl_optind + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (iVar7 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }\n    d->rpl_optopt = iVar19;\n    iVar19 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar19;\n}\n\n" (function_definition "int _getopt_internal_r(int argc,char **argv,char *optstring,rpl_option *longopts,int *longind,\n                      int long_only,_getopt_data *d,int posixly_correct)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  long lVar4;\n  byte *pbVar5;\n  __ord _Var6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  option_list *poVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  rpl_option *prVar17;\n  rpl_option *prVar18;\n  int iVar19;\n  option_list *poVar20;\n  char *pcVar21;\n  rpl_option *prVar22;\n  long in_FS_OFFSET;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  option_list first;\n  \n  bVar25 = 0;\n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar19 = d->rpl_opterr;\n  if (argc < 1) {\n    iVar19 = -1;\n    goto LAB_001098ef;\n  }\n  d->rpl_optarg = (char *)0x0;\n  if (d->rpl_optind == 0) {\n    d->rpl_optind = 1;\nLAB_00108b56:\n    d->__last_nonopt = d->rpl_optind;\n    d->__first_nonopt = d->rpl_optind;\n    d->__nextchar = (char *)0x0;\n    _Var6 = PERMUTE;\n    if (posixly_correct == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }\n    d->__posixly_correct = _Var6;\n    if (*optstring == '-') {\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }\n    d->__initialized = 1;\n  }\n  else {\n    if (d->__initialized == 0) goto LAB_00108b56;\n    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);\n  }\n  iVar7 = 0;\n  if (*local_b0 != ':') {\n    iVar7 = iVar19;\n  }\n  if ((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')) {\n    iVar19 = d->rpl_optind;\n    if (iVar19 < d->__last_nonopt) {\n      d->__last_nonopt = iVar19;\n    }\n    if (iVar19 < d->__first_nonopt) {\n      d->__first_nonopt = iVar19;\n    }\n    if (d->__ordering == PERMUTE) {\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }\n    uVar2 = d->rpl_optind;\n    bVar23 = uVar2 < (uint)argc;\n    bVar24 = uVar2 == argc;\n    if (!bVar24) {\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }\n    if (d->__first_nonopt == d->__last_nonopt) {\n      iVar19 = -1;\n    }\n    else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (longopts != (rpl_option *)0x0) {\n    cVar14 = argv[d->rpl_optind][1];\n    if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar21 = d->__nextchar;\n  pcVar9 = pcVar21 + 1;\n  d->__nextchar = pcVar9;\n  cVar14 = *pcVar21;\n  iVar19 = (int)cVar14;\n  pcVar10 = strchr(local_b0,iVar19);\n  if (pcVar21[1] == '\0') {\n    d->rpl_optind = d->rpl_optind + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (iVar7 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }\n    d->rpl_optopt = iVar19;\n    iVar19 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar19;\n}" primitive_type (function_declarator "_getopt_internal_r(int argc,char **argv,char *optstring,rpl_option *longopts,int *longind,\n                      int long_only,_getopt_data *d,int posixly_correct)" identifier (parameter_list "(int argc,char **argv,char *optstring,rpl_option *longopts,int *longind,\n                      int long_only,_getopt_data *d,int posixly_correct)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) , (parameter_declaration "char *optstring" primitive_type (pointer_declarator "*optstring" * identifier)) , (parameter_declaration "rpl_option *longopts" type_identifier (pointer_declarator "*longopts" * identifier)) , (parameter_declaration "int *longind" primitive_type (pointer_declarator "*longind" * identifier)) , (parameter_declaration "int long_only" primitive_type identifier) , (parameter_declaration "_getopt_data *d" type_identifier (pointer_declarator "*d" * identifier)) , (parameter_declaration "int posixly_correct" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  long lVar4;\n  byte *pbVar5;\n  __ord _Var6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  option_list *poVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  rpl_option *prVar17;\n  rpl_option *prVar18;\n  int iVar19;\n  option_list *poVar20;\n  char *pcVar21;\n  rpl_option *prVar22;\n  long in_FS_OFFSET;\n  bool bVar23;\n  bool bVar24;\n  byte bVar25;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  option_list first;\n  \n  bVar25 = 0;\n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar19 = d->rpl_opterr;\n  if (argc < 1) {\n    iVar19 = -1;\n    goto LAB_001098ef;\n  }\n  d->rpl_optarg = (char *)0x0;\n  if (d->rpl_optind == 0) {\n    d->rpl_optind = 1;\nLAB_00108b56:\n    d->__last_nonopt = d->rpl_optind;\n    d->__first_nonopt = d->rpl_optind;\n    d->__nextchar = (char *)0x0;\n    _Var6 = PERMUTE;\n    if (posixly_correct == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }\n    d->__posixly_correct = _Var6;\n    if (*optstring == '-') {\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }\n    d->__initialized = 1;\n  }\n  else {\n    if (d->__initialized == 0) goto LAB_00108b56;\n    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);\n  }\n  iVar7 = 0;\n  if (*local_b0 != ':') {\n    iVar7 = iVar19;\n  }\n  if ((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')) {\n    iVar19 = d->rpl_optind;\n    if (iVar19 < d->__last_nonopt) {\n      d->__last_nonopt = iVar19;\n    }\n    if (iVar19 < d->__first_nonopt) {\n      d->__first_nonopt = iVar19;\n    }\n    if (d->__ordering == PERMUTE) {\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }\n    uVar2 = d->rpl_optind;\n    bVar23 = uVar2 < (uint)argc;\n    bVar24 = uVar2 == argc;\n    if (!bVar24) {\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }\n    if (d->__first_nonopt == d->__last_nonopt) {\n      iVar19 = -1;\n    }\n    else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (longopts != (rpl_option *)0x0) {\n    cVar14 = argv[d->rpl_optind][1];\n    if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar21 = d->__nextchar;\n  pcVar9 = pcVar21 + 1;\n  d->__nextchar = pcVar9;\n  cVar14 = *pcVar21;\n  iVar19 = (int)cVar14;\n  pcVar10 = strchr(local_b0,iVar19);\n  if (pcVar21[1] == '\0') {\n    d->rpl_optind = d->rpl_optind + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (iVar7 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }\n    d->rpl_optopt = iVar19;\n    iVar19 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar19;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "__ord _Var6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "option_list *poVar11;" type_identifier (pointer_declarator "*poVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "rpl_option *prVar17;" type_identifier (pointer_declarator "*prVar17" * identifier) ;) (declaration "rpl_option *prVar18;" type_identifier (pointer_declarator "*prVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "option_list *poVar20;" type_identifier (pointer_declarator "*poVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "rpl_option *prVar22;" type_identifier (pointer_declarator "*prVar22" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "option_list first;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "lVar4 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar4 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = d->rpl_opterr;" (assignment_expression "iVar19 = d->rpl_opterr" identifier = (field_expression "d->rpl_opterr" identifier -> field_identifier)) ;) (if_statement "if (argc < 1) {\n    iVar19 = -1;\n    goto LAB_001098ef;\n  }" if (parenthesized_expression "(argc < 1)" ( (binary_expression "argc < 1" identifier < number_literal) )) (compound_statement "{\n    iVar19 = -1;\n    goto LAB_001098ef;\n  }" { (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->rpl_optarg = (char *)0x0;" (assignment_expression "d->rpl_optarg = (char *)0x0" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (d->rpl_optind == 0) {\n    d->rpl_optind = 1;\nLAB_00108b56:\n    d->__last_nonopt = d->rpl_optind;\n    d->__first_nonopt = d->rpl_optind;\n    d->__nextchar = (char *)0x0;\n    _Var6 = PERMUTE;\n    if (posixly_correct == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }\n    d->__posixly_correct = _Var6;\n    if (*optstring == '-') {\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }\n    d->__initialized = 1;\n  }\n  else {\n    if (d->__initialized == 0) goto LAB_00108b56;\n    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);\n  }" if (parenthesized_expression "(d->rpl_optind == 0)" ( (binary_expression "d->rpl_optind == 0" (field_expression "d->rpl_optind" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    d->rpl_optind = 1;\nLAB_00108b56:\n    d->__last_nonopt = d->rpl_optind;\n    d->__first_nonopt = d->rpl_optind;\n    d->__nextchar = (char *)0x0;\n    _Var6 = PERMUTE;\n    if (posixly_correct == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }\n    d->__posixly_correct = _Var6;\n    if (*optstring == '-') {\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }\n    d->__initialized = 1;\n  }" { (expression_statement "d->rpl_optind = 1;" (assignment_expression "d->rpl_optind = 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_00108b56:\n    d->__last_nonopt = d->rpl_optind;" statement_identifier : (expression_statement "d->__last_nonopt = d->rpl_optind;" (assignment_expression "d->__last_nonopt = d->rpl_optind" (field_expression "d->__last_nonopt" identifier -> field_identifier) = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;)) (expression_statement "d->__first_nonopt = d->rpl_optind;" (assignment_expression "d->__first_nonopt = d->rpl_optind" (field_expression "d->__first_nonopt" identifier -> field_identifier) = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (expression_statement "d->__nextchar = (char *)0x0;" (assignment_expression "d->__nextchar = (char *)0x0" (field_expression "d->__nextchar" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "_Var6 = PERMUTE;" (assignment_expression "_Var6 = PERMUTE" identifier = identifier) ;) (if_statement "if (posixly_correct == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }" if (parenthesized_expression "(posixly_correct == 0)" ( (binary_expression "posixly_correct == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      _Var6 = (__ord)(pcVar9 != (char *)0x0);\n    }" { (expression_statement "pcVar9 = getenv("POSIXLY_CORRECT");" (assignment_expression "pcVar9 = getenv("POSIXLY_CORRECT")" identifier = (call_expression "getenv("POSIXLY_CORRECT")" identifier (argument_list "("POSIXLY_CORRECT")" ( (string_literal ""POSIXLY_CORRECT"" " string_content ") )))) ;) (expression_statement "_Var6 = (__ord)(pcVar9 != (char *)0x0);" (assignment_expression "_Var6 = (__ord)(pcVar9 != (char *)0x0)" identifier = (call_expression "(__ord)(pcVar9 != (char *)0x0)" (parenthesized_expression "(__ord)" ( identifier )) (argument_list "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) })) (expression_statement "d->__posixly_correct = _Var6;" (assignment_expression "d->__posixly_correct = _Var6" (field_expression "d->__posixly_correct" identifier -> field_identifier) = identifier) ;) (if_statement "if (*optstring == '-') {\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }" if (parenthesized_expression "(*optstring == '-')" ( (binary_expression "*optstring == '-'" (pointer_expression "*optstring" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      d->__ordering = RETURN_IN_ORDER;\n      local_b0 = optstring + 1;\n    }" { (expression_statement "d->__ordering = RETURN_IN_ORDER;" (assignment_expression "d->__ordering = RETURN_IN_ORDER" (field_expression "d->__ordering" identifier -> field_identifier) = identifier) ;) (expression_statement "local_b0 = optstring + 1;" (assignment_expression "local_b0 = optstring + 1" identifier = (binary_expression "optstring + 1" identifier + number_literal)) ;) }) (else_clause "else if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }" else (if_statement "if (*optstring == '+') {\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }\n    else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }" if (parenthesized_expression "(*optstring == '+')" ( (binary_expression "*optstring == '+'" (pointer_expression "*optstring" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n      d->__ordering = REQUIRE_ORDER;\n      local_b0 = optstring + 1;\n    }" { (expression_statement "d->__ordering = REQUIRE_ORDER;" (assignment_expression "d->__ordering = REQUIRE_ORDER" (field_expression "d->__ordering" identifier -> field_identifier) = identifier) ;) (expression_statement "local_b0 = optstring + 1;" (assignment_expression "local_b0 = optstring + 1" identifier = (binary_expression "optstring + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }" else (compound_statement "{\n      d->__ordering = _Var6 ^ PERMUTE;\n      local_b0 = optstring;\n    }" { (expression_statement "d->__ordering = _Var6 ^ PERMUTE;" (assignment_expression "d->__ordering = _Var6 ^ PERMUTE" (field_expression "d->__ordering" identifier -> field_identifier) = (binary_expression "_Var6 ^ PERMUTE" identifier ^ identifier)) ;) (expression_statement "local_b0 = optstring;" (assignment_expression "local_b0 = optstring" identifier = identifier) ;) }))))) (expression_statement "d->__initialized = 1;" (assignment_expression "d->__initialized = 1" (field_expression "d->__initialized" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n    if (d->__initialized == 0) goto LAB_00108b56;\n    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);\n  }" else (compound_statement "{\n    if (d->__initialized == 0) goto LAB_00108b56;\n    local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);\n  }" { (if_statement "if (d->__initialized == 0) goto LAB_00108b56;" if (parenthesized_expression "(d->__initialized == 0)" ( (binary_expression "d->__initialized == 0" (field_expression "d->__initialized" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00108b56;" goto statement_identifier ;)) (expression_statement "local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0);" (assignment_expression "local_b0 = optstring + ((*optstring - 0x2bU & 0xfd) == 0)" identifier = (binary_expression "optstring + ((*optstring - 0x2bU & 0xfd) == 0)" identifier + (parenthesized_expression "((*optstring - 0x2bU & 0xfd) == 0)" ( (binary_expression "(*optstring - 0x2bU & 0xfd) == 0" (parenthesized_expression "(*optstring - 0x2bU & 0xfd)" ( (binary_expression "*optstring - 0x2bU & 0xfd" (binary_expression "*optstring - 0x2bU" (pointer_expression "*optstring" * identifier) - number_literal) & number_literal) )) == number_literal) )))) ;) }))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (*local_b0 != ':') {\n    iVar7 = iVar19;\n  }" if (parenthesized_expression "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) )) (compound_statement "{\n    iVar7 = iVar19;\n  }" { (expression_statement "iVar7 = iVar19;" (assignment_expression "iVar7 = iVar19" identifier = identifier) ;) })) (if_statement "if ((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')) {\n    iVar19 = d->rpl_optind;\n    if (iVar19 < d->__last_nonopt) {\n      d->__last_nonopt = iVar19;\n    }\n    if (iVar19 < d->__first_nonopt) {\n      d->__first_nonopt = iVar19;\n    }\n    if (d->__ordering == PERMUTE) {\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }\n    uVar2 = d->rpl_optind;\n    bVar23 = uVar2 < (uint)argc;\n    bVar24 = uVar2 == argc;\n    if (!bVar24) {\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }\n    if (d->__first_nonopt == d->__last_nonopt) {\n      iVar19 = -1;\n    }\n    else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }\n    goto LAB_001098ef;\n  }" if (parenthesized_expression "((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0'))" ( (binary_expression "(d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')" (parenthesized_expression "(d->__nextchar == (char *)0x0)" ( (binary_expression "d->__nextchar == (char *)0x0" (field_expression "d->__nextchar" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*d->__nextchar == '\0')" ( (binary_expression "*d->__nextchar == '\0'" (pointer_expression "*d->__nextchar" * (field_expression "d->__nextchar" identifier -> field_identifier)) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar19 = d->rpl_optind;\n    if (iVar19 < d->__last_nonopt) {\n      d->__last_nonopt = iVar19;\n    }\n    if (iVar19 < d->__first_nonopt) {\n      d->__first_nonopt = iVar19;\n    }\n    if (d->__ordering == PERMUTE) {\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }\n    uVar2 = d->rpl_optind;\n    bVar23 = uVar2 < (uint)argc;\n    bVar24 = uVar2 == argc;\n    if (!bVar24) {\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }\n    if (d->__first_nonopt == d->__last_nonopt) {\n      iVar19 = -1;\n    }\n    else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }\n    goto LAB_001098ef;\n  }" { (expression_statement "iVar19 = d->rpl_optind;" (assignment_expression "iVar19 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (if_statement "if (iVar19 < d->__last_nonopt) {\n      d->__last_nonopt = iVar19;\n    }" if (parenthesized_expression "(iVar19 < d->__last_nonopt)" ( (binary_expression "iVar19 < d->__last_nonopt" identifier < (field_expression "d->__last_nonopt" identifier -> field_identifier)) )) (compound_statement "{\n      d->__last_nonopt = iVar19;\n    }" { (expression_statement "d->__last_nonopt = iVar19;" (assignment_expression "d->__last_nonopt = iVar19" (field_expression "d->__last_nonopt" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (iVar19 < d->__first_nonopt) {\n      d->__first_nonopt = iVar19;\n    }" if (parenthesized_expression "(iVar19 < d->__first_nonopt)" ( (binary_expression "iVar19 < d->__first_nonopt" identifier < (field_expression "d->__first_nonopt" identifier -> field_identifier)) )) (compound_statement "{\n      d->__first_nonopt = iVar19;\n    }" { (expression_statement "d->__first_nonopt = iVar19;" (assignment_expression "d->__first_nonopt = iVar19" (field_expression "d->__first_nonopt" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (d->__ordering == PERMUTE) {\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }" if (parenthesized_expression "(d->__ordering == PERMUTE)" ( (binary_expression "d->__ordering == PERMUTE" (field_expression "d->__ordering" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      iVar3 = d->__last_nonopt;\n      if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      iVar19 = d->rpl_optind;\n      if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }\n      d->__last_nonopt = iVar19;\n    }" { (expression_statement "iVar3 = d->__last_nonopt;" (assignment_expression "iVar3 = d->__last_nonopt" identifier = (field_expression "d->__last_nonopt" identifier -> field_identifier)) ;) (if_statement "if ((d->__first_nonopt == iVar3) || (iVar19 == iVar3)) {\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }" if (parenthesized_expression "((d->__first_nonopt == iVar3) || (iVar19 == iVar3))" ( (binary_expression "(d->__first_nonopt == iVar3) || (iVar19 == iVar3)" (parenthesized_expression "(d->__first_nonopt == iVar3)" ( (binary_expression "d->__first_nonopt == iVar3" (field_expression "d->__first_nonopt" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(iVar19 == iVar3)" ( (binary_expression "iVar19 == iVar3" identifier == identifier) ))) )) (compound_statement "{\n        if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }\n      }" { (if_statement "if (iVar19 != iVar3) {\n          d->__first_nonopt = iVar19;\n        }" if (parenthesized_expression "(iVar19 != iVar3)" ( (binary_expression "iVar19 != iVar3" identifier != identifier) )) (compound_statement "{\n          d->__first_nonopt = iVar19;\n        }" { (expression_statement "d->__first_nonopt = iVar19;" (assignment_expression "d->__first_nonopt = iVar19" (field_expression "d->__first_nonopt" identifier -> field_identifier) = identifier) ;) })) }) (else_clause "else {\n        exchange(argv,d);\n      }" else (compound_statement "{\n        exchange(argv,d);\n      }" { (expression_statement "exchange(argv,d);" (call_expression "exchange(argv,d)" identifier (argument_list "(argv,d)" ( identifier , identifier ))) ;) }))) (expression_statement "iVar19 = d->rpl_optind;" (assignment_expression "iVar19 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (if_statement "if (iVar19 < argc) {\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }" if (parenthesized_expression "(iVar19 < argc)" ( (binary_expression "iVar19 < argc" identifier < identifier) )) (compound_statement "{\n        lVar12 = (long)iVar19;\n        do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);\n      }" { (expression_statement "lVar12 = (long)iVar19;" (assignment_expression "lVar12 = (long)iVar19" identifier = (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (do_statement "do {\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < argc);" do (compound_statement "{\n          iVar19 = (int)lVar12;\n          if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;\n          iVar19 = iVar19 + 1;\n          d->rpl_optind = iVar19;\n          lVar12 = lVar12 + 1;\n        }" { (expression_statement "iVar19 = (int)lVar12;" (assignment_expression "iVar19 = (int)lVar12" identifier = (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')) break;" if (parenthesized_expression "((*argv[lVar12] == '-') && (argv[lVar12][1] != '\0'))" ( (binary_expression "(*argv[lVar12] == '-') && (argv[lVar12][1] != '\0')" (parenthesized_expression "(*argv[lVar12] == '-')" ( (binary_expression "*argv[lVar12] == '-'" (pointer_expression "*argv[lVar12]" * (subscript_expression "argv[lVar12]" identifier [ identifier ])) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(argv[lVar12][1] != '\0')" ( (binary_expression "argv[lVar12][1] != '\0'" (subscript_expression "argv[lVar12][1]" (subscript_expression "argv[lVar12]" identifier [ identifier ]) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optind = iVar19;" (assignment_expression "d->rpl_optind = iVar19" (field_expression "d->rpl_optind" identifier -> field_identifier) = identifier) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)lVar12 < argc)" ( (binary_expression "(int)lVar12 < argc" (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (expression_statement "d->__last_nonopt = iVar19;" (assignment_expression "d->__last_nonopt = iVar19" (field_expression "d->__last_nonopt" identifier -> field_identifier) = identifier) ;) })) (expression_statement "uVar2 = d->rpl_optind;" (assignment_expression "uVar2 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (expression_statement "bVar23 = uVar2 < (uint)argc;" (assignment_expression "bVar23 = uVar2 < (uint)argc" identifier = (binary_expression "uVar2 < (uint)argc" identifier < (cast_expression "(uint)argc" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "bVar24 = uVar2 == argc;" (assignment_expression "bVar24 = uVar2 == argc" identifier = (binary_expression "uVar2 == argc" identifier == identifier)) ;) (if_statement "if (!bVar24) {\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (compound_statement "{\n      pbVar5 = (byte *)argv[(int)uVar2];\n      lVar12 = 3;\n      pbVar15 = pbVar5;\n      pbVar16 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);\n      if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }\n      iVar7 = uVar2 + 1;\n      d->rpl_optind = iVar7;\n      iVar19 = d->__last_nonopt;\n      if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }\n      d->__last_nonopt = argc;\n      d->rpl_optind = argc;\n    }" { (expression_statement "pbVar5 = (byte *)argv[(int)uVar2];" (assignment_expression "pbVar5 = (byte *)argv[(int)uVar2]" identifier = (cast_expression "(byte *)argv[(int)uVar2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "argv[(int)uVar2]" identifier [ (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "lVar12 = 3;" (assignment_expression "lVar12 = 3" identifier = number_literal) ;) (expression_statement "pbVar15 = pbVar5;" (assignment_expression "pbVar15 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar16 = &DAT_0010b4bb;" (assignment_expression "pbVar16 = &DAT_0010b4bb" identifier = (pointer_expression "&DAT_0010b4bb" & identifier)) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      } while (bVar24);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar23 = *pbVar15 < *pbVar16;\n        bVar24 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar16;" (assignment_expression "bVar23 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar24 = *pbVar15 == *pbVar16;" (assignment_expression "bVar24 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar25 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar24) != bVar23) {\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }" if (parenthesized_expression "((!bVar23 && !bVar24) != bVar23)" ( (binary_expression "(!bVar23 && !bVar24) != bVar23" (parenthesized_expression "(!bVar23 && !bVar24)" ( (binary_expression "!bVar23 && !bVar24" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) != identifier) )) (compound_statement "{\n        if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);\n        goto LAB_00108d36;\n      }" { (if_statement "if ((*pbVar5 != 0x2d) || (pbVar5[1] == 0)) {\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "((*pbVar5 != 0x2d) || (pbVar5[1] == 0))" ( (binary_expression "(*pbVar5 != 0x2d) || (pbVar5[1] == 0)" (parenthesized_expression "(*pbVar5 != 0x2d)" ( (binary_expression "*pbVar5 != 0x2d" (pointer_expression "*pbVar5" * identifier) != number_literal) )) || (parenthesized_expression "(pbVar5[1] == 0)" ( (binary_expression "pbVar5[1] == 0" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n          if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }\n          goto LAB_001098ef;\n        }" { (if_statement "if (d->__ordering == REQUIRE_ORDER) {\n            iVar19 = -1;\n          }\n          else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }" if (parenthesized_expression "(d->__ordering == REQUIRE_ORDER)" ( (binary_expression "d->__ordering == REQUIRE_ORDER" (field_expression "d->__ordering" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            iVar19 = -1;\n          }" { (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }" else (compound_statement "{\n            d->rpl_optind = uVar2 + 1;\n            d->rpl_optarg = argv[(int)uVar2];\n            iVar19 = 1;\n          }" { (expression_statement "d->rpl_optind = uVar2 + 1;" (assignment_expression "d->rpl_optind = uVar2 + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optarg = argv[(int)uVar2];" (assignment_expression "d->rpl_optarg = argv[(int)uVar2]" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (subscript_expression "argv[(int)uVar2]" identifier [ (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1);" (assignment_expression "d->__nextchar =\n             (char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (cast_expression "(char *)(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1)" ( (binary_expression "pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d) + 1" (binary_expression "pbVar5 + (ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d)" identifier + (call_expression "(ulong)(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d)" ( (binary_expression "longopts != (rpl_option *)0x0 && pbVar5[1] == 0x2d" (binary_expression "longopts != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "pbVar5[1] == 0x2d" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal)) )))) + number_literal) )))) ;) (goto_statement "goto LAB_00108d36;" goto statement_identifier ;) })) (expression_statement "iVar7 = uVar2 + 1;" (assignment_expression "iVar7 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optind = iVar7;" (assignment_expression "d->rpl_optind = iVar7" (field_expression "d->rpl_optind" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar19 = d->__last_nonopt;" (assignment_expression "iVar19 = d->__last_nonopt" identifier = (field_expression "d->__last_nonopt" identifier -> field_identifier)) ;) (if_statement "if ((iVar7 == iVar19) || (d->__first_nonopt == iVar19)) {\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }\n      else {\n        exchange(argv,d);\n      }" if (parenthesized_expression "((iVar7 == iVar19) || (d->__first_nonopt == iVar19))" ( (binary_expression "(iVar7 == iVar19) || (d->__first_nonopt == iVar19)" (parenthesized_expression "(iVar7 == iVar19)" ( (binary_expression "iVar7 == iVar19" identifier == identifier) )) || (parenthesized_expression "(d->__first_nonopt == iVar19)" ( (binary_expression "d->__first_nonopt == iVar19" (field_expression "d->__first_nonopt" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n        if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }\n      }" { (if_statement "if (d->__first_nonopt == iVar19) {\n          d->__first_nonopt = iVar7;\n        }" if (parenthesized_expression "(d->__first_nonopt == iVar19)" ( (binary_expression "d->__first_nonopt == iVar19" (field_expression "d->__first_nonopt" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          d->__first_nonopt = iVar7;\n        }" { (expression_statement "d->__first_nonopt = iVar7;" (assignment_expression "d->__first_nonopt = iVar7" (field_expression "d->__first_nonopt" identifier -> field_identifier) = identifier) ;) })) }) (else_clause "else {\n        exchange(argv,d);\n      }" else (compound_statement "{\n        exchange(argv,d);\n      }" { (expression_statement "exchange(argv,d);" (call_expression "exchange(argv,d)" identifier (argument_list "(argv,d)" ( identifier , identifier ))) ;) }))) (expression_statement "d->__last_nonopt = argc;" (assignment_expression "d->__last_nonopt = argc" (field_expression "d->__last_nonopt" identifier -> field_identifier) = identifier) ;) (expression_statement "d->rpl_optind = argc;" (assignment_expression "d->rpl_optind = argc" (field_expression "d->rpl_optind" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (d->__first_nonopt == d->__last_nonopt) {\n      iVar19 = -1;\n    }\n    else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }" if (parenthesized_expression "(d->__first_nonopt == d->__last_nonopt)" ( (binary_expression "d->__first_nonopt == d->__last_nonopt" (field_expression "d->__first_nonopt" identifier -> field_identifier) == (field_expression "d->__last_nonopt" identifier -> field_identifier)) )) (compound_statement "{\n      iVar19 = -1;\n    }" { (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }" else (compound_statement "{\n      d->rpl_optind = d->__first_nonopt;\n      iVar19 = -1;\n    }" { (expression_statement "d->rpl_optind = d->__first_nonopt;" (assignment_expression "d->rpl_optind = d->__first_nonopt" (field_expression "d->rpl_optind" identifier -> field_identifier) = (field_expression "d->__first_nonopt" identifier -> field_identifier)) ;) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (labeled_statement "LAB_00108d36:\n  if (longopts != (rpl_option *)0x0) {\n    cVar14 = argv[d->rpl_optind][1];\n    if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" statement_identifier : (if_statement "if (longopts != (rpl_option *)0x0) {\n    cVar14 = argv[d->rpl_optind][1];\n    if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" if (parenthesized_expression "(longopts != (rpl_option *)0x0)" ( (binary_expression "longopts != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar14 = argv[d->rpl_optind][1];\n    if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" { (expression_statement "cVar14 = argv[d->rpl_optind][1];" (assignment_expression "cVar14 = argv[d->rpl_optind][1]" identifier = (subscript_expression "argv[d->rpl_optind][1]" (subscript_expression "argv[d->rpl_optind]" identifier [ (field_expression "d->rpl_optind" identifier -> field_identifier) ]) [ number_literal ])) ;) (if_statement "if ((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }" if (parenthesized_expression "((cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))))" ( (binary_expression "(cVar14 == '-') ||\n       ((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" (parenthesized_expression "(cVar14 == '-')" ( (binary_expression "cVar14 == '-'" identifier == (char_literal "'-'" ' character ')) )) || (parenthesized_expression "((long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" ( (parenthesized_expression "(long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))" ( (binary_expression "long_only != 0 &&\n        ((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" (binary_expression "long_only != 0" identifier != number_literal) && (parenthesized_expression "((argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" ( (parenthesized_expression "(argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))" ( (binary_expression "argv[d->rpl_optind][2] != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" (binary_expression "argv[d->rpl_optind][2] != '\0'" (subscript_expression "argv[d->rpl_optind][2]" (subscript_expression "argv[d->rpl_optind]" identifier [ (field_expression "d->rpl_optind" identifier -> field_identifier) ]) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" ( (comma_expression "pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0" (assignment_expression "pcVar9 = strchr(local_b0,(int)cVar14)" identifier = (call_expression "strchr(local_b0,(int)cVar14)" identifier (argument_list "(local_b0,(int)cVar14)" ( identifier , (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) ))) )) (compound_statement "{\n      pcVar9 = d->__nextchar;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }\n      d->__nextchar = "";\n      d->rpl_optind = d->rpl_optind + 1;\n      d->rpl_optopt = 0;\n      iVar19 = 0x3f;\n      goto LAB_001098ef;\n    }" { (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar21 = pcVar9;" (assignment_expression "pcVar21 = pcVar9" identifier = identifier) ;) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }" while (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" ( (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" ( (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(cVar14 != '=')" ( (binary_expression "cVar14 != '='" identifier != (char_literal "'='" ' character ')) ))) )) )) (compound_statement "{\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }" { (expression_statement "pcVar21 = pcVar21 + 1;" (assignment_expression "pcVar21 = pcVar21 + 1" identifier = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar21;" (assignment_expression "cVar14 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) })) (expression_statement "pcVar10 = longopts->name;" (assignment_expression "pcVar10 = longopts->name" identifier = (field_expression "longopts->name" identifier -> field_identifier)) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_68 = -1;\n        poVar20 = (option_list *)0x0;\n        iVar19 = local_68;\n        prVar18 = (rpl_option *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }\n      }" { (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" identifier = number_literal) ;) (expression_statement "poVar20 = (option_list *)0x0;" (assignment_expression "poVar20 = (option_list *)0x0" identifier = (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = local_68;" (assignment_expression "iVar19 = local_68" identifier = identifier) ;) (expression_statement "prVar18 = (rpl_option *)0x0;" (assignment_expression "prVar18 = (rpl_option *)0x0" identifier = (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00109833:\n        while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }" statement_identifier : (while_statement "while (local_68 = iVar19, poVar20 != (option_list *)0x0) {\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }" while (parenthesized_expression "(local_68 = iVar19, poVar20 != (option_list *)0x0)" ( (comma_expression "local_68 = iVar19, poVar20 != (option_list *)0x0" (assignment_expression "local_68 = iVar19" identifier = identifier) , (binary_expression "poVar20 != (option_list *)0x0" identifier != (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          poVar11 = poVar20->next;\n          free(poVar20);\n          poVar20 = poVar11;\n          iVar19 = local_68;\n        }" { (expression_statement "poVar11 = poVar20->next;" (assignment_expression "poVar11 = poVar20->next" identifier = (field_expression "poVar20->next" identifier -> field_identifier)) ;) (expression_statement "free(poVar20);" (call_expression "free(poVar20)" identifier (argument_list "(poVar20)" ( identifier ))) ;) (expression_statement "poVar20 = poVar11;" (assignment_expression "poVar20 = poVar11" identifier = identifier) ;) (expression_statement "iVar19 = local_68;" (assignment_expression "iVar19 = local_68" identifier = identifier) ;) }))) }) (else_clause "else {\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" else (compound_statement "{\n        local_68 = -1;\n        bVar23 = false;\n        poVar20 = (option_list *)0x0;\n        iVar19 = 0;\n        prVar17 = longopts;\n        prVar22 = (rpl_option *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" { (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" identifier = number_literal) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "poVar20 = (option_list *)0x0;" (assignment_expression "poVar20 = (option_list *)0x0" identifier = (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "prVar17 = longopts;" (assignment_expression "prVar17 = longopts" identifier = identifier) ;) (expression_statement "prVar22 = (rpl_option *)0x0;" (assignment_expression "prVar22 = (rpl_option *)0x0" identifier = (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        } while (pcVar10 != (char *)0x0);" do (compound_statement "{\n          iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);\n          prVar18 = prVar22;\n          iVar3 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar3;\n          prVar17 = prVar17 + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = prVar17->name;\n          prVar22 = prVar18;\n        }" { (expression_statement "iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff);" (assignment_expression "iVar8 = strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff)" identifier = (call_expression "strncmp(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff)" identifier (argument_list "(pcVar10,d->__nextchar,(long)pcVar21 - (long)pcVar9 & 0xffffffff)" ( identifier , (field_expression "d->__nextchar" identifier -> field_identifier) , (binary_expression "(long)pcVar21 - (long)pcVar9 & 0xffffffff" (binary_expression "(long)pcVar21 - (long)pcVar9" (cast_expression "(long)pcVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & number_literal) )))) ;) (expression_statement "prVar18 = prVar22;" (assignment_expression "prVar18 = prVar22" identifier = identifier) ;) (expression_statement "iVar3 = local_68;" (assignment_expression "iVar3 = local_68" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            prVar18 = prVar17;\n            if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar3 = iVar19;\n            if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }\n          }" { (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" identifier = number_literal) ;) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');" do (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar10;" (assignment_expression "cVar14 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "prVar18 = prVar17;" (assignment_expression "prVar18 = prVar17" identifier = identifier) ;) (if_statement "if ((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;" if (parenthesized_expression "((int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1)" ( (binary_expression "(int)((long)pcVar21 - (long)pcVar9) == ~(uint)lVar12 - 1" (cast_expression "(int)((long)pcVar21 - (long)pcVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)pcVar21 - (long)pcVar9)" ( (binary_expression "(long)pcVar21 - (long)pcVar9" (cast_expression "(long)pcVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) == (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" ~ (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) )) (goto_statement "goto joined_r0x00109833;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar19;" (assignment_expression "iVar3 = iVar19" identifier = identifier) ;) (if_statement "if ((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)) {\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }" if (parenthesized_expression "((prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23))" ( (binary_expression "(prVar22 != (rpl_option *)0x0) && (prVar18 = prVar22, iVar3 = local_68, !bVar23)" (parenthesized_expression "(prVar22 != (rpl_option *)0x0)" ( (binary_expression "prVar22 != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(prVar18 = prVar22, iVar3 = local_68, !bVar23)" ( (comma_expression "prVar18 = prVar22, iVar3 = local_68, !bVar23" (assignment_expression "prVar18 = prVar22" identifier = identifier) , (comma_expression "iVar3 = local_68, !bVar23" (assignment_expression "iVar3 = local_68" identifier = identifier) , (unary_expression "!bVar23" ! identifier))) ))) )) (compound_statement "{\n              if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }\n            }" { (if_statement "if ((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))) {\n                bVar23 = false;\n              }\n              else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }" if (parenthesized_expression "((long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val))))" ( (binary_expression "(long_only == 0) &&\n                 (((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))" (parenthesized_expression "(long_only == 0)" ( (binary_expression "long_only == 0" identifier == number_literal) )) && (parenthesized_expression "(((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)))" ( (parenthesized_expression "((prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val))" ( (binary_expression "(prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)) &&\n                  (prVar22->val == prVar17->val)" (parenthesized_expression "(prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag))" ( (binary_expression "prVar22->has_arg == prVar17->has_arg && (prVar22->flag == prVar17->flag)" (binary_expression "prVar22->has_arg == prVar17->has_arg" (field_expression "prVar22->has_arg" identifier -> field_identifier) == (field_expression "prVar17->has_arg" identifier -> field_identifier)) && (parenthesized_expression "(prVar22->flag == prVar17->flag)" ( (binary_expression "prVar22->flag == prVar17->flag" (field_expression "prVar22->flag" identifier -> field_identifier) == (field_expression "prVar17->flag" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(prVar22->val == prVar17->val)" ( (binary_expression "prVar22->val == prVar17->val" (field_expression "prVar22->val" identifier -> field_identifier) == (field_expression "prVar17->val" identifier -> field_identifier)) ))) )) ))) )) (compound_statement "{\n                bVar23 = false;\n              }" { (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) }) (else_clause "else {\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }" else (compound_statement "{\n                poVar11 = (option_list *)malloc(0x10);\n                if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }\n              }" { (expression_statement "poVar11 = (option_list *)malloc(0x10);" (assignment_expression "poVar11 = (option_list *)malloc(0x10)" identifier = (cast_expression "(option_list *)malloc(0x10)" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (if_statement "if (poVar11 == (option_list *)0x0) {\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }" if (parenthesized_expression "(poVar11 == (option_list *)0x0)" ( (binary_expression "poVar11 == (option_list *)0x0" identifier == (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }\n                }" { (if_statement "if (poVar20 == (option_list *)0x0) {\n                    bVar23 = true;\n                  }\n                  else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }" if (parenthesized_expression "(poVar20 == (option_list *)0x0)" ( (binary_expression "poVar20 == (option_list *)0x0" identifier == (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar23 = true;\n                  }" { (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }) (else_clause "else {\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }" else (compound_statement "{\n                    do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);\n                    bVar23 = true;\n                  }" { (do_statement "do {\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    } while (poVar11 != (option_list *)0x0);" do (compound_statement "{\n                      poVar11 = poVar20->next;\n                      free(poVar20);\n                      poVar20 = poVar11;\n                    }" { (expression_statement "poVar11 = poVar20->next;" (assignment_expression "poVar11 = poVar20->next" identifier = (field_expression "poVar20->next" identifier -> field_identifier)) ;) (expression_statement "free(poVar20);" (call_expression "free(poVar20)" identifier (argument_list "(poVar20)" ( identifier ))) ;) (expression_statement "poVar20 = poVar11;" (assignment_expression "poVar20 = poVar11" identifier = identifier) ;) }) while (parenthesized_expression "(poVar11 != (option_list *)0x0)" ( (binary_expression "poVar11 != (option_list *)0x0" identifier != (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) }) (else_clause "else {\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }" else (compound_statement "{\n                  poVar11->p = prVar17;\n                  poVar11->next = poVar20;\n                  poVar20 = poVar11;\n                }" { (expression_statement "poVar11->p = prVar17;" (assignment_expression "poVar11->p = prVar17" (field_expression "poVar11->p" identifier -> field_identifier) = identifier) ;) (expression_statement "poVar11->next = poVar20;" (assignment_expression "poVar11->next = poVar20" (field_expression "poVar11->next" identifier -> field_identifier) = identifier) ;) (expression_statement "poVar20 = poVar11;" (assignment_expression "poVar20 = poVar11" identifier = identifier) ;) }))) }))) })) })) (expression_statement "local_68 = iVar3;" (assignment_expression "local_68 = iVar3" identifier = identifier) ;) (expression_statement "prVar17 = prVar17 + 1;" (assignment_expression "prVar17 = prVar17 + 1" identifier = (binary_expression "prVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "pcVar10 = prVar17->name;" (assignment_expression "pcVar10 = prVar17->name" identifier = (field_expression "prVar17->name" identifier -> field_identifier)) ;) (expression_statement "prVar22 = prVar18;" (assignment_expression "prVar22 = prVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((bVar23) || (poVar20 != (option_list *)0x0)) {\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "((bVar23) || (poVar20 != (option_list *)0x0))" ( (binary_expression "(bVar23) || (poVar20 != (option_list *)0x0)" (parenthesized_expression "(bVar23)" ( identifier )) || (parenthesized_expression "(poVar20 != (option_list *)0x0)" ( (binary_expression "poVar20 != (option_list *)0x0" identifier != (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          d->rpl_optopt = 0;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }" { (if_statement "if ((poVar20 == (option_list *)0x0) || (iVar7 == 0)) {\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }\n          else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }" if (parenthesized_expression "((poVar20 == (option_list *)0x0) || (iVar7 == 0))" ( (binary_expression "(poVar20 == (option_list *)0x0) || (iVar7 == 0)" (parenthesized_expression "(poVar20 == (option_list *)0x0)" ( (binary_expression "poVar20 == (option_list *)0x0" identifier == (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);\n          }" { (if_statement "if ((!bVar23) || (iVar7 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((!bVar23) || (iVar7 == 0))" ( (binary_expression "(!bVar23) || (iVar7 == 0)" (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) || (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) ))) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optind = d->rpl_optind + 1;\n              d->rpl_optopt = 0;\n              if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) (expression_statement "d->rpl_optopt = 0;" (assignment_expression "d->rpl_optopt = 0" (field_expression "d->rpl_optopt" identifier -> field_identifier) = number_literal) ;) (if_statement "if (poVar20 == (option_list *)0x0) {\n                iVar19 = 0x3f;\n              }\n              else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }" if (parenthesized_expression "(poVar20 == (option_list *)0x0)" ( (binary_expression "poVar20 == (option_list *)0x0" identifier == (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar19 = 0x3f;\n              }" { (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }" else (compound_statement "{\n                do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);\n                iVar19 = 0x3f;\n              }" { (do_statement "do {\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                } while (poVar11 != (option_list *)0x0);" do (compound_statement "{\n                  poVar11 = poVar20->next;\n                  free(poVar20);\n                  poVar20 = poVar11;\n                }" { (expression_statement "poVar11 = poVar20->next;" (assignment_expression "poVar11 = poVar20->next" identifier = (field_expression "poVar20->next" identifier -> field_identifier)) ;) (expression_statement "free(poVar20);" (call_expression "free(poVar20)" identifier (argument_list "(poVar20)" ( identifier ))) ;) (expression_statement "poVar20 = poVar11;" (assignment_expression "poVar20 = poVar11" identifier = identifier) ;) }) while (parenthesized_expression "(poVar11 != (option_list *)0x0)" ( (binary_expression "poVar11 != (option_list *)0x0" identifier != (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind])" identifier (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind])" ( identifier , number_literal , (string_literal ""%s: option \'%s\' is ambiguous\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , (subscript_expression "argv[d->rpl_optind]" identifier [ (field_expression "d->rpl_optind" identifier -> field_identifier) ]) ))) ;) }) (else_clause "else {\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }" else (compound_statement "{\n            first.p = prVar18;\n            first.next = poVar20;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);\n            poVar20 = &first;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);\n            fputc(10,stderr);\n          }" { (expression_statement "first.p = prVar18;" (assignment_expression "first.p = prVar18" (field_expression "first.p" identifier . field_identifier) = identifier) ;) (expression_statement "first.next = poVar20;" (assignment_expression "first.next = poVar20" (field_expression "first.next" identifier . field_identifier) = identifier) ;) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind])" identifier (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,\n                          argv[d->rpl_optind])" ( identifier , number_literal , (string_literal ""%s: option \'%s\' is ambiguous; possibilities:"" " string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*argv" * identifier) , (subscript_expression "argv[d->rpl_optind]" identifier [ (field_expression "d->rpl_optind" identifier -> field_identifier) ]) ))) ;) (expression_statement "poVar20 = &first;" (assignment_expression "poVar20 = &first" identifier = (pointer_expression "&first" & identifier)) ;) (do_statement "do {\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            } while (poVar20 != (option_list *)0x0);" do (compound_statement "{\n              __fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);\n              poVar20 = poVar20->next;\n            }" { (expression_statement "__fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name);" (call_expression "__fprintf_chk(stderr,1," \'--%s\'",poVar20->p->name)" identifier (argument_list "(stderr,1," \'--%s\'",poVar20->p->name)" ( identifier , number_literal , (string_literal "" \'--%s\'"" " string_content escape_sequence string_content escape_sequence ") , (field_expression "poVar20->p->name" (field_expression "poVar20->p" identifier -> field_identifier) -> field_identifier) ))) ;) (expression_statement "poVar20 = poVar20->next;" (assignment_expression "poVar20 = poVar20->next" identifier = (field_expression "poVar20->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(poVar20 != (option_list *)0x0)" ( (binary_expression "poVar20 != (option_list *)0x0" identifier != (cast_expression "(option_list *)0x0" ( (type_descriptor "option_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "fputc(10,stderr);" (call_expression "fputc(10,stderr)" identifier (argument_list "(10,stderr)" ( number_literal , identifier ))) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) (expression_statement "d->rpl_optopt = 0;" (assignment_expression "d->rpl_optopt = 0" (field_expression "d->rpl_optopt" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) }))) (if_statement "if (prVar18 != (rpl_option *)0x0) {\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }" if (parenthesized_expression "(prVar18 != (rpl_option *)0x0)" ( (binary_expression "prVar18 != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = d->rpl_optind;\n        iVar19 = iVar3 + 1;\n        d->rpl_optind = iVar19;\n        if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = d->__nextchar;\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');\n        d->__nextchar = d->__nextchar + (~uVar13 - 1);\n        if (longind != (int *)0x0) {\n          *longind = local_68;\n        }\n        if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }\n        goto LAB_001098ef;\n      }" { (expression_statement "iVar3 = d->rpl_optind;" (assignment_expression "iVar3 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (expression_statement "iVar19 = iVar3 + 1;" (assignment_expression "iVar19 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optind = iVar19;" (assignment_expression "d->rpl_optind = iVar19" (field_expression "d->rpl_optind" identifier -> field_identifier) = identifier) ;) (if_statement "if (*pcVar21 == '\0') {\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }\n        else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }" if (parenthesized_expression "(*pcVar21 == '\0')" ( (binary_expression "*pcVar21 == '\0'" (pointer_expression "*pcVar21" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }\n        }" { (if_statement "if (prVar18->has_arg == 1) {\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }" if (parenthesized_expression "(prVar18->has_arg == 1)" ( (binary_expression "prVar18->has_arg == 1" (field_expression "prVar18->has_arg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            d->rpl_optind = iVar3 + 2;\n            d->rpl_optarg = argv[iVar19];\n          }" { (if_statement "if (argc <= iVar19) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "(argc <= iVar19)" ( (binary_expression "argc <= iVar19" identifier <= identifier) )) (compound_statement "{\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              d->rpl_optopt = prVar18->val;\n              iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" { (if_statement "if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name)" identifier (argument_list "(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,\n                              prVar18->name)" ( identifier , number_literal , (string_literal ""%s: option \'--%s\' requires an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , (field_expression "prVar18->name" identifier -> field_identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "d->rpl_optopt = prVar18->val;" (assignment_expression "d->rpl_optopt = prVar18->val" (field_expression "d->rpl_optopt" identifier -> field_identifier) = (field_expression "prVar18->val" identifier -> field_identifier)) ;) (expression_statement "iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a" identifier = (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) ))) * number_literal) + number_literal)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->rpl_optind = iVar3 + 2;" (assignment_expression "d->rpl_optind = iVar3 + 2" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) (expression_statement "d->rpl_optarg = argv[iVar19];" (assignment_expression "d->rpl_optarg = argv[iVar19]" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (subscript_expression "argv[iVar19]" identifier [ identifier ])) ;) })) }) (else_clause "else {\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }" else (compound_statement "{\n          if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }\n          d->rpl_optarg = pcVar21 + 1;\n        }" { (if_statement "if (prVar18->has_arg == 0) {\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }" if (parenthesized_expression "(prVar18->has_arg == 0)" ( (binary_expression "prVar18->has_arg == 0" (field_expression "prVar18->has_arg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = d->__nextchar;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');\n            d->__nextchar = d->__nextchar + (~uVar13 - 1);\n            d->rpl_optopt = prVar18->val;\n            iVar19 = 0x3f;\n            goto LAB_001098ef;\n          }" { (if_statement "if (iVar7 != 0) {\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }\n            }" { (if_statement "if (argv[(long)iVar19 + -1][1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }" if (parenthesized_expression "(argv[(long)iVar19 + -1][1] == '-')" ( (binary_expression "argv[(long)iVar19 + -1][1] == '-'" (subscript_expression "argv[(long)iVar19 + -1][1]" (subscript_expression "argv[(long)iVar19 + -1]" identifier [ (binary_expression "(long)iVar19 + -1" (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) [ number_literal ]) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name)" identifier (argument_list "(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,\n                              prVar18->name)" ( identifier , number_literal , (string_literal ""%s: option \'--%s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , (field_expression "prVar18->name" identifier -> field_identifier) ))) ;) }) (else_clause "else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }" else (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name)" identifier (argument_list "(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,\n                              (int)*argv[(long)iVar19 + -1],prVar18->name)" ( identifier , number_literal , (string_literal ""%s: option \'%c%s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , (cast_expression "(int)*argv[(long)iVar19 + -1]" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*argv[(long)iVar19 + -1]" * (subscript_expression "argv[(long)iVar19 + -1]" identifier [ (binary_expression "(long)iVar19 + -1" (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]))) , (field_expression "prVar18->name" identifier -> field_identifier) ))) ;) }))) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            } while (cVar14 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "d->rpl_optopt = prVar18->val;" (assignment_expression "d->rpl_optopt = prVar18->val" (field_expression "d->rpl_optopt" identifier -> field_identifier) = (field_expression "prVar18->val" identifier -> field_identifier)) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->rpl_optarg = pcVar21 + 1;" (assignment_expression "d->rpl_optarg = pcVar21 + 1" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        } while (cVar14 != '\0');" do (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n        }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (if_statement "if (longind != (int *)0x0) {\n          *longind = local_68;\n        }" if (parenthesized_expression "(longind != (int *)0x0)" ( (binary_expression "longind != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *longind = local_68;\n        }" { (expression_statement "*longind = local_68;" (assignment_expression "*longind = local_68" (pointer_expression "*longind" * identifier) = identifier) ;) })) (if_statement "if (prVar18->flag == (int *)0x0) {\n          iVar19 = prVar18->val;\n        }\n        else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }" if (parenthesized_expression "(prVar18->flag == (int *)0x0)" ( (binary_expression "prVar18->flag == (int *)0x0" (field_expression "prVar18->flag" identifier -> field_identifier) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar19 = prVar18->val;\n        }" { (expression_statement "iVar19 = prVar18->val;" (assignment_expression "iVar19 = prVar18->val" identifier = (field_expression "prVar18->val" identifier -> field_identifier)) ;) }) (else_clause "else {\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }" else (compound_statement "{\n          *prVar18->flag = prVar18->val;\n          iVar19 = 0;\n        }" { (expression_statement "*prVar18->flag = prVar18->val;" (assignment_expression "*prVar18->flag = prVar18->val" (pointer_expression "*prVar18->flag" * (field_expression "prVar18->flag" identifier -> field_identifier)) = (field_expression "prVar18->val" identifier -> field_identifier)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (if_statement "if (long_only == 0) {\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }\n      else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }" if (parenthesized_expression "(long_only == 0)" ( (binary_expression "long_only == 0" identifier == number_literal) )) (compound_statement "{\n        if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }\n      }" { (if_statement "if (iVar7 != 0) {\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar9 = argv[d->rpl_optind];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);\n        }" { (expression_statement "pcVar9 = argv[d->rpl_optind];" (assignment_expression "pcVar9 = argv[d->rpl_optind]" identifier = (subscript_expression "argv[d->rpl_optind]" identifier [ (field_expression "d->rpl_optind" identifier -> field_identifier) ])) ;) (if_statement "if (pcVar9[1] == '-') goto LAB_001097e1;" if (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001097e1;" goto statement_identifier ;)) (labeled_statement "LAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);" statement_identifier : (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar);" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar)" identifier (argument_list "(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*pcVar9,\n                        d->__nextchar)" ( identifier , number_literal , (string_literal ""%s: unrecognized option \'%c%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*argv" * identifier) , (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier)) , (field_expression "d->__nextchar" identifier -> field_identifier) ))) ;)) })) }) (else_clause "else {\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }" else (compound_statement "{\n        pcVar9 = argv[d->rpl_optind];\n        if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }\n      }" { (expression_statement "pcVar9 = argv[d->rpl_optind];" (assignment_expression "pcVar9 = argv[d->rpl_optind]" identifier = (subscript_expression "argv[d->rpl_optind]" identifier [ (field_expression "d->rpl_optind" identifier -> field_identifier) ])) ;) (if_statement "if (pcVar9[1] == '-') {\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }\n        else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }" if (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n          if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }\n        }" { (if_statement "if (iVar7 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);\n          }" { (labeled_statement "LAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);" statement_identifier : (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar)" identifier (argument_list "(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar)" ( identifier , number_literal , (string_literal ""%s: unrecognized option \'--%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*argv" * identifier) , (field_expression "d->__nextchar" identifier -> field_identifier) ))) ;)) })) }) (else_clause "else {\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }" else (compound_statement "{\n          pcVar21 = strchr(local_b0,(int)*d->__nextchar);\n          if (pcVar21 != (char *)0x0) goto LAB_00108d74;\n          if (iVar7 != 0) goto LAB_00109263;\n        }" { (expression_statement "pcVar21 = strchr(local_b0,(int)*d->__nextchar);" (assignment_expression "pcVar21 = strchr(local_b0,(int)*d->__nextchar)" identifier = (call_expression "strchr(local_b0,(int)*d->__nextchar)" identifier (argument_list "(local_b0,(int)*d->__nextchar)" ( identifier , (cast_expression "(int)*d->__nextchar" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*d->__nextchar" * (field_expression "d->__nextchar" identifier -> field_identifier))) )))) ;) (if_statement "if (pcVar21 != (char *)0x0) goto LAB_00108d74;" if (parenthesized_expression "(pcVar21 != (char *)0x0)" ( (binary_expression "pcVar21 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00108d74;" goto statement_identifier ;)) (if_statement "if (iVar7 != 0) goto LAB_00109263;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109263;" goto statement_identifier ;)) }))) }))) (expression_statement "d->__nextchar = "";" (assignment_expression "d->__nextchar = """ (field_expression "d->__nextchar" identifier -> field_identifier) = (string_literal """" " ")) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) (expression_statement "d->rpl_optopt = 0;" (assignment_expression "d->rpl_optopt = 0" (field_expression "d->rpl_optopt" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00108d74:\n  pcVar21 = d->__nextchar;" statement_identifier : (expression_statement "pcVar21 = d->__nextchar;" (assignment_expression "pcVar21 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;)) (expression_statement "pcVar9 = pcVar21 + 1;" (assignment_expression "pcVar9 = pcVar21 + 1" identifier = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) (expression_statement "d->__nextchar = pcVar9;" (assignment_expression "d->__nextchar = pcVar9" (field_expression "d->__nextchar" identifier -> field_identifier) = identifier) ;) (expression_statement "cVar14 = *pcVar21;" (assignment_expression "cVar14 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) (expression_statement "iVar19 = (int)cVar14;" (assignment_expression "iVar19 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar10 = strchr(local_b0,iVar19);" (assignment_expression "pcVar10 = strchr(local_b0,iVar19)" identifier = (call_expression "strchr(local_b0,iVar19)" identifier (argument_list "(local_b0,iVar19)" ( identifier , identifier )))) ;) (if_statement "if (pcVar21[1] == '\0') {\n    d->rpl_optind = d->rpl_optind + 1;\n  }" if (parenthesized_expression "(pcVar21[1] == '\0')" ( (binary_expression "pcVar21[1] == '\0'" (subscript_expression "pcVar21[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    d->rpl_optind = d->rpl_optind + 1;\n  }" { (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) })) (if_statement "if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (iVar7 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }\n    d->rpl_optopt = iVar19;\n    iVar19 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }" if (parenthesized_expression "(((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0))" ( (binary_expression "((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)" (parenthesized_expression "((byte)(cVar14 - 0x3aU) < 2)" ( (binary_expression "(byte)(cVar14 - 0x3aU) < 2" (call_expression "(byte)(cVar14 - 0x3aU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar14 - 0x3aU)" ( (binary_expression "cVar14 - 0x3aU" identifier - number_literal) ))) < number_literal) )) || (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (iVar7 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }\n    d->rpl_optopt = iVar19;\n    iVar19 = 0x3f;\n  }" { (if_statement "if (iVar7 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);\n    }" { (expression_statement "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19)" identifier (argument_list "(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,iVar19)" ( identifier , number_literal , (string_literal ""%s: invalid option -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*argv" * identifier) , identifier ))) ;) })) (expression_statement "d->rpl_optopt = iVar19;" (assignment_expression "d->rpl_optopt = iVar19" (field_expression "d->rpl_optopt" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) }) (else_clause "else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }" else (if_statement "if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }" if (parenthesized_expression "((*pcVar10 == 'W') && (pcVar10[1] == ';'))" ( (binary_expression "(*pcVar10 == 'W') && (pcVar10[1] == ';')" (parenthesized_expression "(*pcVar10 == 'W')" ( (binary_expression "*pcVar10 == 'W'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'W'" ' character ')) )) && (parenthesized_expression "(pcVar10[1] == ';')" ( (binary_expression "pcVar10[1] == ';'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "';'" ' character ')) ))) )) (compound_statement "{\n    if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    d->__nextchar = (char *)0x0;\n    iVar19 = 0x57;\n  }" { (if_statement "if (longopts != (rpl_option *)0x0) {\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" if (parenthesized_expression "(longopts != (rpl_option *)0x0)" ( (binary_expression "longopts != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }\n      pcVar9 = d->rpl_optarg;\n      d->__nextchar = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar21 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }\n      pcVar10 = longopts->name;\n      if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" { (if_statement "if (pcVar21[1] == '\0') {\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }\n      else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }" if (parenthesized_expression "(pcVar21[1] == '\0')" ( (binary_expression "pcVar21[1] == '\0'" (subscript_expression "pcVar21[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar3 = d->rpl_optind;\n        if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        d->rpl_optind = iVar3 + 1;\n        d->rpl_optarg = argv[iVar3];\n      }" { (expression_statement "iVar3 = d->rpl_optind;" (assignment_expression "iVar3 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (if_statement "if (iVar3 == argc) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(iVar3 == argc)" ( (binary_expression "iVar3 == argc" identifier == identifier) )) (compound_statement "{\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }\n          d->rpl_optopt = iVar19;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar19 = (int)cVar14;\n          goto LAB_001098ef;\n        }" { (if_statement "if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n          }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19)" identifier (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19)" ( identifier , number_literal , (string_literal ""%s: option requires an argument -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*argv" * identifier) , identifier ))) ;) })) (expression_statement "d->rpl_optopt = iVar19;" (assignment_expression "d->rpl_optopt = iVar19" (field_expression "d->rpl_optopt" identifier -> field_identifier) = identifier) ;) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (*local_b0 != ':') {\n            cVar14 = '?';\n          }" if (parenthesized_expression "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) )) (compound_statement "{\n            cVar14 = '?';\n          }" { (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" identifier = (char_literal "'?'" ' character ')) ;) })) (expression_statement "iVar19 = (int)cVar14;" (assignment_expression "iVar19 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->rpl_optind = iVar3 + 1;" (assignment_expression "d->rpl_optind = iVar3 + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optarg = argv[iVar3];" (assignment_expression "d->rpl_optarg = argv[iVar3]" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (subscript_expression "argv[iVar3]" identifier [ identifier ])) ;) }) (else_clause "else {\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }" else (compound_statement "{\n        d->rpl_optarg = pcVar9;\n        d->rpl_optind = d->rpl_optind + 1;\n      }" { (expression_statement "d->rpl_optarg = pcVar9;" (assignment_expression "d->rpl_optarg = pcVar9" (field_expression "d->rpl_optarg" identifier -> field_identifier) = identifier) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) }))) (expression_statement "pcVar9 = d->rpl_optarg;" (assignment_expression "pcVar9 = d->rpl_optarg" identifier = (field_expression "d->rpl_optarg" identifier -> field_identifier)) ;) (expression_statement "d->__nextchar = pcVar9;" (assignment_expression "d->__nextchar = pcVar9" (field_expression "d->__nextchar" identifier -> field_identifier) = identifier) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar21 = pcVar9;" (assignment_expression "pcVar21 = pcVar9" identifier = identifier) ;) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }" while (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" ( (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" ( (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(cVar14 != '=')" ( (binary_expression "cVar14 != '='" identifier != (char_literal "'='" ' character ')) ))) )) )) (compound_statement "{\n        pcVar21 = pcVar21 + 1;\n        cVar14 = *pcVar21;\n      }" { (expression_statement "pcVar21 = pcVar21 + 1;" (assignment_expression "pcVar21 = pcVar21 + 1" identifier = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar21;" (assignment_expression "cVar14 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) })) (expression_statement "pcVar10 = longopts->name;" (assignment_expression "pcVar10 = longopts->name" identifier = (field_expression "longopts->name" identifier -> field_identifier)) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar19 = 0;\n        local_74 = 0;\n        prVar18 = (rpl_option *)0x0;\n        bVar23 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);\n        longopts = prVar17;\n        iVar19 = local_74;\n        if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar19;\n        if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "prVar18 = (rpl_option *)0x0;" (assignment_expression "prVar18 = (rpl_option *)0x0" identifier = (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (do_statement "do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        } while (pcVar10 != (char *)0x0);" do (compound_statement "{\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);\n          prVar17 = prVar18;\n          iVar3 = local_74;\n          bVar24 = bVar23;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }\n          local_74 = iVar3;\n          longopts = longopts + 1;\n          iVar19 = iVar19 + 1;\n          pcVar10 = longopts->name;\n          prVar18 = prVar17;\n          bVar23 = bVar24;\n        }" { (expression_statement "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9);" (assignment_expression "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9)" identifier = (call_expression "strncmp(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9)" identifier (argument_list "(pcVar10,pcVar9,(long)pcVar21 - (long)pcVar9)" ( identifier , identifier , (binary_expression "(long)pcVar21 - (long)pcVar9" (cast_expression "(long)pcVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "prVar17 = prVar18;" (assignment_expression "prVar17 = prVar18" identifier = identifier) ;) (expression_statement "iVar3 = local_74;" (assignment_expression "iVar3 = local_74" identifier = identifier) ;) (expression_statement "bVar24 = bVar23;" (assignment_expression "bVar24 = bVar23" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            prVar17 = longopts;\n            iVar3 = iVar19;\n            if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar10;" (assignment_expression "cVar1 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;" if (parenthesized_expression "(((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1)" ( (binary_expression "((long)pcVar21 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1" (parenthesized_expression "((long)pcVar21 - (long)pcVar9 & 0xffffffffU)" ( (binary_expression "(long)pcVar21 - (long)pcVar9 & 0xffffffffU" (binary_expression "(long)pcVar21 - (long)pcVar9" (cast_expression "(long)pcVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & number_literal) )) == (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal)) )) (goto_statement "goto LAB_001094ec;" goto statement_identifier ;)) (expression_statement "prVar17 = longopts;" (assignment_expression "prVar17 = longopts" identifier = identifier) ;) (expression_statement "iVar3 = iVar19;" (assignment_expression "iVar3 = iVar19" identifier = identifier) ;) (if_statement "if (prVar18 != (rpl_option *)0x0) {\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }" if (parenthesized_expression "(prVar18 != (rpl_option *)0x0)" ( (binary_expression "prVar18 != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }\n            }" { (if_statement "if (long_only == 0) {\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }\n              else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }" if (parenthesized_expression "(long_only == 0)" ( (binary_expression "long_only == 0" identifier == number_literal) )) (compound_statement "{\n                if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }\n              }" { (if_statement "if (prVar18->has_arg == longopts->has_arg) {\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }\n                else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }" if (parenthesized_expression "(prVar18->has_arg == longopts->has_arg)" ( (binary_expression "prVar18->has_arg == longopts->has_arg" (field_expression "prVar18->has_arg" identifier -> field_identifier) == (field_expression "longopts->has_arg" identifier -> field_identifier)) )) (compound_statement "{\n                  if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }\n                }" { (if_statement "if (prVar18->flag == longopts->flag) {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }\n                  else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }" if (parenthesized_expression "(prVar18->flag == longopts->flag)" ( (binary_expression "prVar18->flag == longopts->flag" (field_expression "prVar18->flag" identifier -> field_identifier) == (field_expression "longopts->flag" identifier -> field_identifier)) )) (compound_statement "{\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                    if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }\n                  }" { (expression_statement "prVar17 = prVar18;" (assignment_expression "prVar17 = prVar18" identifier = identifier) ;) (expression_statement "iVar3 = local_74;" (assignment_expression "iVar3 = local_74" identifier = identifier) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (if_statement "if (prVar18->val == longopts->val) {\n                      bVar24 = bVar23;\n                    }" if (parenthesized_expression "(prVar18->val == longopts->val)" ( (binary_expression "prVar18->val == longopts->val" (field_expression "prVar18->val" identifier -> field_identifier) == (field_expression "longopts->val" identifier -> field_identifier)) )) (compound_statement "{\n                      bVar24 = bVar23;\n                    }" { (expression_statement "bVar24 = bVar23;" (assignment_expression "bVar24 = bVar23" identifier = identifier) ;) })) }) (else_clause "else {\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }" else (compound_statement "{\n                    prVar17 = prVar18;\n                    iVar3 = local_74;\n                    bVar24 = true;\n                  }" { (expression_statement "prVar17 = prVar18;" (assignment_expression "prVar17 = prVar18" identifier = identifier) ;) (expression_statement "iVar3 = local_74;" (assignment_expression "iVar3 = local_74" identifier = identifier) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) }))) }) (else_clause "else {\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }" else (compound_statement "{\n                  prVar17 = prVar18;\n                  iVar3 = local_74;\n                  bVar24 = true;\n                }" { (expression_statement "prVar17 = prVar18;" (assignment_expression "prVar17 = prVar18" identifier = identifier) ;) (expression_statement "iVar3 = local_74;" (assignment_expression "iVar3 = local_74" identifier = identifier) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) }))) }) (else_clause "else {\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }" else (compound_statement "{\n                prVar17 = prVar18;\n                iVar3 = local_74;\n                bVar24 = true;\n              }" { (expression_statement "prVar17 = prVar18;" (assignment_expression "prVar17 = prVar18" identifier = identifier) ;) (expression_statement "iVar3 = local_74;" (assignment_expression "iVar3 = local_74" identifier = identifier) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) }))) })) })) (expression_statement "local_74 = iVar3;" (assignment_expression "local_74 = iVar3" identifier = identifier) ;) (expression_statement "longopts = longopts + 1;" (assignment_expression "longopts = longopts + 1" identifier = (binary_expression "longopts + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "pcVar10 = longopts->name;" (assignment_expression "pcVar10 = longopts->name" identifier = (field_expression "longopts->name" identifier -> field_identifier)) ;) (expression_statement "prVar18 = prVar17;" (assignment_expression "prVar18 = prVar17" identifier = identifier) ;) (expression_statement "bVar23 = bVar24;" (assignment_expression "bVar23 = bVar24" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "longopts = prVar17;" (assignment_expression "longopts = prVar17" identifier = identifier) ;) (expression_statement "iVar19 = local_74;" (assignment_expression "iVar19 = local_74" identifier = identifier) ;) (if_statement "if (bVar24) {\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = d->__nextchar;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = d->__nextchar + (~uVar13 - 1);\n          d->rpl_optind = d->rpl_optind + 1;\n          iVar19 = 0x3f;\n          goto LAB_001098ef;\n        }" { (if_statement "if (iVar7 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);\n          }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,pcVar9)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' is ambiguous\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , identifier ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (labeled_statement "LAB_001094ec:\n        local_74 = iVar19;" statement_identifier : (expression_statement "local_74 = iVar19;" (assignment_expression "local_74 = iVar19" identifier = identifier) ;)) (if_statement "if (longopts != (rpl_option *)0x0) {\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(longopts != (rpl_option *)0x0)" ( (binary_expression "longopts != (rpl_option *)0x0" identifier != (cast_expression "(rpl_option *)0x0" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar21 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');\n          d->__nextchar = pcVar9 + (~uVar13 - 1);\n          if (longind != (int *)0x0) {\n            *longind = local_74;\n          }\n          if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }\n          goto LAB_001098ef;\n        }" { (if_statement "if (cVar14 == '\0') {\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }\n          else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }" if (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }\n          }" { (if_statement "if (longopts->has_arg == 1) {\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }\n            else {\n              d->rpl_optarg = (char *)0x0;\n            }" if (parenthesized_expression "(longopts->has_arg == 1)" ( (binary_expression "longopts->has_arg == 1" (field_expression "longopts->has_arg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              iVar19 = d->rpl_optind;\n              if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              d->rpl_optind = iVar19 + 1;\n              d->rpl_optarg = argv[iVar19];\n            }" { (expression_statement "iVar19 = d->rpl_optind;" (assignment_expression "iVar19 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (if_statement "if (argc <= iVar19) {\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" if (parenthesized_expression "(argc <= iVar19)" ( (binary_expression "argc <= iVar19" identifier <= identifier) )) (compound_statement "{\n                if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = d->__nextchar;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');\n                d->__nextchar = d->__nextchar + (~uVar13 - 1);\n                iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" { (if_statement "if (iVar7 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);\n                }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,\n                                longopts->name)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' requires an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , (field_expression "longopts->name" identifier -> field_identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                } while (cVar14 != '\0');" do (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n                }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar19 = (uint)(*local_b0 != ':') * 5 + 0x3a" identifier = (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) ))) * number_literal) + number_literal)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->rpl_optind = iVar19 + 1;" (assignment_expression "d->rpl_optind = iVar19 + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optarg = argv[iVar19];" (assignment_expression "d->rpl_optarg = argv[iVar19]" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (subscript_expression "argv[iVar19]" identifier [ identifier ])) ;) }) (else_clause "else {\n              d->rpl_optarg = (char *)0x0;\n            }" else (compound_statement "{\n              d->rpl_optarg = (char *)0x0;\n            }" { (expression_statement "d->rpl_optarg = (char *)0x0;" (assignment_expression "d->rpl_optarg = (char *)0x0" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }" else (compound_statement "{\n            if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }\n            d->rpl_optarg = pcVar21 + 1;\n          }" { (if_statement "if (longopts->has_arg == 0) {\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "(longopts->has_arg == 0)" ( (binary_expression "longopts->has_arg == 0" (field_expression "longopts->has_arg" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = d->__nextchar;\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');\n              d->__nextchar = d->__nextchar + (~uVar13 - 1);\n              iVar19 = 0x3f;\n              goto LAB_001098ef;\n            }" { (if_statement "if (iVar7 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,\n                              longopts->name)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*argv" * identifier) , (field_expression "longopts->name" identifier -> field_identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = d->__nextchar;" (assignment_expression "pcVar9 = d->__nextchar" identifier = (field_expression "d->__nextchar" identifier -> field_identifier)) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = d->__nextchar + (~uVar13 - 1);" (assignment_expression "d->__nextchar = d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "d->__nextchar + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar19 = 0x3f;" (assignment_expression "iVar19 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "d->rpl_optarg = pcVar21 + 1;" (assignment_expression "d->rpl_optarg = pcVar21 + 1" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar21 = pcVar9;" (assignment_expression "pcVar21 = pcVar9" identifier = identifier) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar21;\n            pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar21;" (assignment_expression "cVar14 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) (expression_statement "pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1;" (assignment_expression "pcVar21 = pcVar21 + (ulong)bVar25 * -2 + 1" identifier = (binary_expression "pcVar21 + (ulong)bVar25 * -2 + 1" (binary_expression "pcVar21 + (ulong)bVar25 * -2" identifier + (binary_expression "(ulong)bVar25 * -2" (cast_expression "(ulong)bVar25" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "d->__nextchar = pcVar9 + (~uVar13 - 1);" (assignment_expression "d->__nextchar = pcVar9 + (~uVar13 - 1)" (field_expression "d->__nextchar" identifier -> field_identifier) = (binary_expression "pcVar9 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (if_statement "if (longind != (int *)0x0) {\n            *longind = local_74;\n          }" if (parenthesized_expression "(longind != (int *)0x0)" ( (binary_expression "longind != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *longind = local_74;\n          }" { (expression_statement "*longind = local_74;" (assignment_expression "*longind = local_74" (pointer_expression "*longind" * identifier) = identifier) ;) })) (if_statement "if (longopts->flag == (int *)0x0) {\n            iVar19 = longopts->val;\n          }\n          else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }" if (parenthesized_expression "(longopts->flag == (int *)0x0)" ( (binary_expression "longopts->flag == (int *)0x0" (field_expression "longopts->flag" identifier -> field_identifier) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar19 = longopts->val;\n          }" { (expression_statement "iVar19 = longopts->val;" (assignment_expression "iVar19 = longopts->val" identifier = (field_expression "longopts->val" identifier -> field_identifier)) ;) }) (else_clause "else {\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }" else (compound_statement "{\n            *longopts->flag = longopts->val;\n            iVar19 = 0;\n          }" { (expression_statement "*longopts->flag = longopts->val;" (assignment_expression "*longopts->flag = longopts->val" (pointer_expression "*longopts->flag" * (field_expression "longopts->flag" identifier -> field_identifier)) = (field_expression "longopts->val" identifier -> field_identifier)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) })) })) (expression_statement "d->__nextchar = (char *)0x0;" (assignment_expression "d->__nextchar = (char *)0x0" (field_expression "d->__nextchar" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = 0x57;" (assignment_expression "iVar19 = 0x57" identifier = number_literal) ;) }) (else_clause "else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }" else (compound_statement "{\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }\n    iVar19 = (int)cVar14;\n  }" { (if_statement "if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }" if (parenthesized_expression "(pcVar10[1] == ':')" ( (binary_expression "pcVar10[1] == ':'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n      if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n    }" { (if_statement "if (pcVar10[2] == ':') {\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }\n      else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }" if (parenthesized_expression "(pcVar10[2] == ':')" ( (binary_expression "pcVar10[2] == ':'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n        if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }" { (if_statement "if (pcVar21[1] == '\0') {\n          d->rpl_optarg = (char *)0x0;\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }" if (parenthesized_expression "(pcVar21[1] == '\0')" ( (binary_expression "pcVar21[1] == '\0'" (subscript_expression "pcVar21[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          d->rpl_optarg = (char *)0x0;\n        }" { (expression_statement "d->rpl_optarg = (char *)0x0;" (assignment_expression "d->rpl_optarg = (char *)0x0" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }" else (compound_statement "{\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }" { (expression_statement "d->rpl_optarg = pcVar9;" (assignment_expression "d->rpl_optarg = pcVar9" (field_expression "d->rpl_optarg" identifier -> field_identifier) = identifier) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) }))) (expression_statement "d->__nextchar = (char *)0x0;" (assignment_expression "d->__nextchar = (char *)0x0" (field_expression "d->__nextchar" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }" else (compound_statement "{\n        if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }\n        d->__nextchar = (char *)0x0;\n      }" { (if_statement "if (pcVar21[1] == '\0') {\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }\n        else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }" if (parenthesized_expression "(pcVar21[1] == '\0')" ( (binary_expression "pcVar21[1] == '\0'" (subscript_expression "pcVar21[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar3 = d->rpl_optind;\n          if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }\n        }" { (expression_statement "iVar3 = d->rpl_optind;" (assignment_expression "iVar3 = d->rpl_optind" identifier = (field_expression "d->rpl_optind" identifier -> field_identifier)) ;) (if_statement "if (iVar3 == argc) {\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }" if (parenthesized_expression "(iVar3 == argc)" ( (binary_expression "iVar3 == argc" identifier == identifier) )) (compound_statement "{\n            if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }\n            d->rpl_optopt = iVar19;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }" { (if_statement "if (iVar7 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);\n            }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19)" identifier (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,iVar19)" ( identifier , number_literal , (string_literal ""%s: option requires an argument -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*argv" * identifier) , identifier ))) ;) })) (expression_statement "d->rpl_optopt = iVar19;" (assignment_expression "d->rpl_optopt = iVar19" (field_expression "d->rpl_optopt" identifier -> field_identifier) = identifier) ;) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (cVar14 != ':') {\n              cVar14 = '?';\n            }" if (parenthesized_expression "(cVar14 != ':')" ( (binary_expression "cVar14 != ':'" identifier != (char_literal "':'" ' character ')) )) (compound_statement "{\n              cVar14 = '?';\n            }" { (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" identifier = (char_literal "'?'" ' character ')) ;) })) }) (else_clause "else {\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }" else (compound_statement "{\n            d->rpl_optind = iVar3 + 1;\n            d->rpl_optarg = argv[iVar3];\n          }" { (expression_statement "d->rpl_optind = iVar3 + 1;" (assignment_expression "d->rpl_optind = iVar3 + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "d->rpl_optarg = argv[iVar3];" (assignment_expression "d->rpl_optarg = argv[iVar3]" (field_expression "d->rpl_optarg" identifier -> field_identifier) = (subscript_expression "argv[iVar3]" identifier [ identifier ])) ;) }))) }) (else_clause "else {\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }" else (compound_statement "{\n          d->rpl_optarg = pcVar9;\n          d->rpl_optind = d->rpl_optind + 1;\n        }" { (expression_statement "d->rpl_optarg = pcVar9;" (assignment_expression "d->rpl_optarg = pcVar9" (field_expression "d->rpl_optarg" identifier -> field_identifier) = identifier) ;) (expression_statement "d->rpl_optind = d->rpl_optind + 1;" (assignment_expression "d->rpl_optind = d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) = (binary_expression "d->rpl_optind + 1" (field_expression "d->rpl_optind" identifier -> field_identifier) + number_literal)) ;) }))) (expression_statement "d->__nextchar = (char *)0x0;" (assignment_expression "d->__nextchar = (char *)0x0" (field_expression "d->__nextchar" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "iVar19 = (int)cVar14;" (assignment_expression "iVar19 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))))) (labeled_statement "LAB_001098ef:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar4 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar4 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar19;" return identifier ;) })))
(translation_unit "int FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)\n\n{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\n}\n\n" (function_definition "int FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)\n\n{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\n}" primitive_type (function_declarator "FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)" identifier (parameter_list "(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "undefined8 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "uint *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "long **pplVar15;" (sized_type_specifier "long" long) (pointer_declarator "**pplVar15" * (pointer_declarator "*pplVar15" * identifier)) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "long *plVar18;" (sized_type_specifier "long" long) (pointer_declarator "*plVar18" * identifier) ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "undefined8 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "long *local_58;" (sized_type_specifier "long" long) (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined8 *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = param_7[1];" (assignment_expression "uVar6 = param_7[1]" identifier = (subscript_expression "param_7[1]" identifier [ number_literal ])) ;) (if_statement "if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }" if (parenthesized_expression "((int)param_1 < 1)" ( (binary_expression "(int)param_1 < 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" if (parenthesized_expression "(*param_7 == 0)" ( (binary_expression "*param_7 == 0" (pointer_expression "*param_7" * identifier) == number_literal) )) (compound_statement "{\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }" { (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" * identifier) = number_literal) ;) (labeled_statement "LAB_00108b56:\n    param_7[0xd] = *param_7;" statement_identifier : (expression_statement "param_7[0xd] = *param_7;" (assignment_expression "param_7[0xd] = *param_7" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = (pointer_expression "*param_7" * identifier)) ;)) (expression_statement "param_7[0xc] = *param_7;" (assignment_expression "param_7[0xc] = *param_7" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }" { (expression_statement "pcVar9 = getenv("POSIXLY_CORRECT");" (assignment_expression "pcVar9 = getenv("POSIXLY_CORRECT")" identifier = (call_expression "getenv("POSIXLY_CORRECT")" identifier (argument_list "("POSIXLY_CORRECT")" ( (string_literal ""POSIXLY_CORRECT"" " string_content ") )))) ;) (expression_statement "uVar5 = (uint)(pcVar9 != (char *)0x0);" (assignment_expression "uVar5 = (uint)(pcVar9 != (char *)0x0)" identifier = (call_expression "(uint)(pcVar9 != (char *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ;) })) (expression_statement "param_7[0xb] = uVar5;" (assignment_expression "param_7[0xb] = uVar5" (subscript_expression "param_7[0xb]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" if (parenthesized_expression "(*param_3 == '-')" ( (binary_expression "*param_3 == '-'" (pointer_expression "*param_3" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }" { (expression_statement "param_7[10] = 2;" (assignment_expression "param_7[10] = 2" (subscript_expression "param_7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b0 = param_3 + 1;" (assignment_expression "local_b0 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }) (else_clause "else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" else (if_statement "if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" if (parenthesized_expression "(*param_3 == '+')" ( (binary_expression "*param_3 == '+'" (pointer_expression "*param_3" * identifier) == (char_literal "'+'" ' character ')) )) (compound_statement "{\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }" { (expression_statement "param_7[10] = 0;" (assignment_expression "param_7[10] = 0" (subscript_expression "param_7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_b0 = param_3 + 1;" (assignment_expression "local_b0 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" else (compound_statement "{\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" { (expression_statement "param_7[10] = uVar5 ^ 1;" (assignment_expression "param_7[10] = uVar5 ^ 1" (subscript_expression "param_7[10]" identifier [ number_literal ]) = (binary_expression "uVar5 ^ 1" identifier ^ number_literal)) ;) (expression_statement "local_b0 = param_3;" (assignment_expression "local_b0 = param_3" identifier = identifier) ;) }))))) (expression_statement "param_7[6] = 1;" (assignment_expression "param_7[6] = 1" (subscript_expression "param_7[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" else (compound_statement "{\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" { (if_statement "if (param_7[6] == 0) goto LAB_00108b56;" if (parenthesized_expression "(param_7[6] == 0)" ( (binary_expression "param_7[6] == 0" (subscript_expression "param_7[6]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00108b56;" goto statement_identifier ;)) (expression_statement "local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);" (assignment_expression "local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0)" identifier = (binary_expression "param_3 + ((*param_3 - 0x2bU & 0xfd) == 0)" identifier + (parenthesized_expression "((*param_3 - 0x2bU & 0xfd) == 0)" ( (binary_expression "(*param_3 - 0x2bU & 0xfd) == 0" (parenthesized_expression "(*param_3 - 0x2bU & 0xfd)" ( (binary_expression "*param_3 - 0x2bU & 0xfd" (binary_expression "*param_3 - 0x2bU" (pointer_expression "*param_3" * identifier) - number_literal) & number_literal) )) == number_literal) )))) ;) }))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }" if (parenthesized_expression "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) )) (compound_statement "{\n    uVar5 = uVar6;\n  }" { (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" identifier = identifier) ;) })) (if_statement "if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }" if (parenthesized_expression "((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0'))" ( (binary_expression "(*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')" (parenthesized_expression "(*(char **)(param_7 + 8) == (char *)0x0)" ( (binary_expression "*(char **)(param_7 + 8) == (char *)0x0" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(**(char **)(param_7 + 8) == '\0')" ( (binary_expression "**(char **)(param_7 + 8) == '\0'" (pointer_expression "**(char **)(param_7 + 8)" * (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }" { (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }" if (parenthesized_expression "((int)uVar6 < (int)param_7[0xd])" ( (binary_expression "(int)uVar6 < (int)param_7[0xd]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_7[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_7[0xd]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_7[0xd] = uVar6;\n    }" { (expression_statement "param_7[0xd] = uVar6;" (assignment_expression "param_7[0xd] = uVar6" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }" if (parenthesized_expression "((int)uVar6 < (int)param_7[0xc])" ( (binary_expression "(int)uVar6 < (int)param_7[0xc]" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_7[0xc]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_7[0xc]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_7[0xc] = uVar6;\n    }" { (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = identifier) ;) })) (if_statement "if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }" if (parenthesized_expression "(param_7[10] == 1)" ( (binary_expression "param_7[10] == 1" (subscript_expression "param_7[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }" { (expression_statement "uVar2 = param_7[0xd];" (assignment_expression "uVar2 = param_7[0xd]" identifier = (subscript_expression "param_7[0xd]" identifier [ number_literal ])) ;) (if_statement "if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }" if (parenthesized_expression "((param_7[0xc] == uVar2) || (uVar6 == uVar2))" ( (binary_expression "(param_7[0xc] == uVar2) || (uVar6 == uVar2)" (parenthesized_expression "(param_7[0xc] == uVar2)" ( (binary_expression "param_7[0xc] == uVar2" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == identifier) )) || (parenthesized_expression "(uVar6 == uVar2)" ( (binary_expression "uVar6 == uVar2" identifier == identifier) ))) )) (compound_statement "{\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }" { (if_statement "if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }" if (parenthesized_expression "(uVar6 != uVar2)" ( (binary_expression "uVar6 != uVar2" identifier != identifier) )) (compound_statement "{\n          param_7[0xc] = uVar6;\n        }" { (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else {\n        FUN_00108a11(param_2,param_7);\n      }" else (compound_statement "{\n        FUN_00108a11(param_2,param_7);\n      }" { (expression_statement "FUN_00108a11(param_2,param_7);" (call_expression "FUN_00108a11(param_2,param_7)" identifier (argument_list "(param_2,param_7)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }" if (parenthesized_expression "((int)uVar6 < (int)param_1)" ( (binary_expression "(int)uVar6 < (int)param_1" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }" { (expression_statement "lVar12 = (long)(int)uVar6;" (assignment_expression "lVar12 = (long)(int)uVar6" identifier = (cast_expression "(long)(int)uVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);" do (compound_statement "{\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        }" { (expression_statement "uVar6 = (uint)lVar12;" (assignment_expression "uVar6 = (uint)lVar12" identifier = (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;" if (parenthesized_expression "((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0'))" ( (binary_expression "(*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')" (parenthesized_expression "(*(char *)param_2[lVar12] == '-')" ( (binary_expression "*(char *)param_2[lVar12] == '-'" (pointer_expression "*(char *)param_2[lVar12]" * (cast_expression "(char *)param_2[lVar12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[lVar12]" identifier [ identifier ]))) == (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(((char *)param_2[lVar12])[1] != '\0')" ( (binary_expression "((char *)param_2[lVar12])[1] != '\0'" (subscript_expression "((char *)param_2[lVar12])[1]" (parenthesized_expression "((char *)param_2[lVar12])" ( (cast_expression "(char *)param_2[lVar12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[lVar12]" identifier [ identifier ])) )) [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" * identifier) = identifier) ;) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" identifier = (binary_expression "lVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)lVar12 < (int)param_1)" ( (binary_expression "(int)lVar12 < (int)param_1" (cast_expression "(int)lVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "param_7[0xd] = uVar6;" (assignment_expression "param_7[0xd] = uVar6" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "bVar22 = uVar6 < param_1;" (assignment_expression "bVar22 = uVar6 < param_1" identifier = (binary_expression "uVar6 < param_1" identifier < identifier)) ;) (expression_statement "bVar23 = uVar6 == param_1;" (assignment_expression "bVar23 = uVar6 == param_1" identifier = (binary_expression "uVar6 == param_1" identifier == identifier)) ;) (if_statement "if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }" { (expression_statement "pbVar3 = (byte *)param_2[(int)uVar6];" (assignment_expression "pbVar3 = (byte *)param_2[(int)uVar6]" identifier = (cast_expression "(byte *)param_2[(int)uVar6]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "lVar12 = 3;" (assignment_expression "lVar12 = 3" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar3;" (assignment_expression "pbVar16 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar17 = &DAT_0010b4bb;" (assignment_expression "pbVar17 = &DAT_0010b4bb" identifier = (pointer_expression "&DAT_0010b4bb" & identifier)) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar16 < *pbVar17;" (assignment_expression "bVar22 = *pbVar16 < *pbVar17" identifier = (binary_expression "*pbVar16 < *pbVar17" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar23 = *pbVar16 == *pbVar17;" (assignment_expression "bVar23 = *pbVar16 == *pbVar17" identifier = (binary_expression "*pbVar16 == *pbVar17" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }" if (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" ( (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" ( (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) != identifier) )) (compound_statement "{\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }" { (if_statement "if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "((*pbVar3 != 0x2d) || (pbVar3[1] == 0))" ( (binary_expression "(*pbVar3 != 0x2d) || (pbVar3[1] == 0)" (parenthesized_expression "(*pbVar3 != 0x2d)" ( (binary_expression "*pbVar3 != 0x2d" (pointer_expression "*pbVar3" * identifier) != number_literal) )) || (parenthesized_expression "(pbVar3[1] == 0)" ( (binary_expression "pbVar3[1] == 0" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }" { (if_statement "if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" if (parenthesized_expression "(param_7[10] == 0)" ( (binary_expression "param_7[10] == 0" (subscript_expression "param_7[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar7 = -1;\n          }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" else (compound_statement "{\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" { (expression_statement "*param_7 = uVar6 + 1;" (assignment_expression "*param_7 = uVar6 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;" (assignment_expression "*(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1" (pointer_expression "*(byte **)(param_7 + 8)" * (cast_expression "(byte **)(param_7 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1" (binary_expression "pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" identifier + (call_expression "(ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" ( (binary_expression "param_4 != (long *)0x0 && pbVar3[1] == 0x2d" (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "pbVar3[1] == 0x2d" (subscript_expression "pbVar3[1]" identifier [ number_literal ]) == number_literal)) )))) + number_literal)) ;) (goto_statement "goto LAB_00108d36;" goto statement_identifier ;) })) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" * identifier) = identifier) ;) (expression_statement "uVar5 = param_7[0xd];" (assignment_expression "uVar5 = param_7[0xd]" identifier = (subscript_expression "param_7[0xd]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }" if (parenthesized_expression "((uVar6 == uVar5) || (param_7[0xc] == uVar5))" ( (binary_expression "(uVar6 == uVar5) || (param_7[0xc] == uVar5)" (parenthesized_expression "(uVar6 == uVar5)" ( (binary_expression "uVar6 == uVar5" identifier == identifier) )) || (parenthesized_expression "(param_7[0xc] == uVar5)" ( (binary_expression "param_7[0xc] == uVar5" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }" { (if_statement "if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }" if (parenthesized_expression "(param_7[0xc] == uVar5)" ( (binary_expression "param_7[0xc] == uVar5" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          param_7[0xc] = uVar6;\n        }" { (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else {\n        FUN_00108a11(param_2,param_7);\n      }" else (compound_statement "{\n        FUN_00108a11(param_2,param_7);\n      }" { (expression_statement "FUN_00108a11(param_2,param_7);" (call_expression "FUN_00108a11(param_2,param_7)" identifier (argument_list "(param_2,param_7)" ( identifier , identifier ))) ;) }))) (expression_statement "param_7[0xd] = param_1;" (assignment_expression "param_7[0xd] = param_1" (subscript_expression "param_7[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_7 = param_1;" (assignment_expression "*param_7 = param_1" (pointer_expression "*param_7" * identifier) = identifier) ;) })) (if_statement "if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" if (parenthesized_expression "(param_7[0xc] == param_7[0xd])" ( (binary_expression "param_7[0xc] == param_7[0xd]" (subscript_expression "param_7[0xc]" identifier [ number_literal ]) == (subscript_expression "param_7[0xd]" identifier [ number_literal ])) )) (compound_statement "{\n      iVar7 = -1;\n    }" { (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" else (compound_statement "{\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" { (expression_statement "*param_7 = param_7[0xc];" (assignment_expression "*param_7 = param_7[0xc]" (pointer_expression "*param_7" * identifier) = (subscript_expression "param_7[0xc]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (labeled_statement "LAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" statement_identifier : (if_statement "if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" if (parenthesized_expression "(param_4 != (long *)0x0)" ( (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" { (expression_statement "cVar14 = *(char *)(param_2[(int)*param_7] + 1);" (assignment_expression "cVar14 = *(char *)(param_2[(int)*param_7] + 1)" identifier = (pointer_expression "*(char *)(param_2[(int)*param_7] + 1)" * (cast_expression "(char *)(param_2[(int)*param_7] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[(int)*param_7] + 1)" ( (binary_expression "param_2[(int)*param_7] + 1" (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) + number_literal) ))))) ;) (if_statement "if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }" if (parenthesized_expression "((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))))" ( (binary_expression "(cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" (parenthesized_expression "(cVar14 == '-')" ( (binary_expression "cVar14 == '-'" identifier == (char_literal "'-'" ' character ')) )) || (parenthesized_expression "((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" ( (parenthesized_expression "(param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))" ( (binary_expression "param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" (binary_expression "param_6 != 0" identifier != number_literal) && (parenthesized_expression "((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" ( (parenthesized_expression "(*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))" ( (binary_expression "*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" (binary_expression "*(char *)(param_2[(int)*param_7] + 2) != '\0'" (pointer_expression "*(char *)(param_2[(int)*param_7] + 2)" * (cast_expression "(char *)(param_2[(int)*param_7] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[(int)*param_7] + 2)" ( (binary_expression "param_2[(int)*param_7] + 2" (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" ( (comma_expression "pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0" (assignment_expression "pcVar9 = strchr(local_b0,(int)cVar14)" identifier = (call_expression "strchr(local_b0,(int)cVar14)" identifier (argument_list "(local_b0,(int)cVar14)" ( identifier , (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) ))) )) (compound_statement "{\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }" { (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" identifier = identifier) ;) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" while (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" ( (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" ( (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(cVar14 != '=')" ( (binary_expression "cVar14 != '='" identifier != (char_literal "'='" ' character ')) ))) )) )) (compound_statement "{\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" { (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) })) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }" { (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" identifier = number_literal) ;) (expression_statement "__ptr = (undefined8 *)0x0;" (assignment_expression "__ptr = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = local_68;" (assignment_expression "iVar7 = local_68" identifier = identifier) ;) (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" statement_identifier : (while_statement "while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" while (parenthesized_expression "(local_68 = iVar7, __ptr != (undefined8 *)0x0)" ( (comma_expression "local_68 = iVar7, __ptr != (undefined8 *)0x0" (assignment_expression "local_68 = iVar7" identifier = identifier) , (binary_expression "__ptr != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" { (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" identifier = (cast_expression "(undefined8 *)__ptr[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[1]" identifier [ number_literal ]))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) (expression_statement "iVar7 = local_68;" (assignment_expression "iVar7 = local_68" identifier = identifier) ;) }))) }) (else_clause "else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" else (compound_statement "{\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" { (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" identifier = number_literal) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "__ptr = (undefined8 *)0x0;" (assignment_expression "__ptr = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "plVar18 = param_4;" (assignment_expression "plVar18 = param_4" identifier = identifier) ;) (expression_statement "plVar21 = (long *)0x0;" (assignment_expression "plVar21 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);" do (compound_statement "{\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        }" { (expression_statement "iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;" (assignment_expression "iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" identifier = (call_expression "strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" identifier (argument_list "(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" ( identifier , (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) , (binary_expression "(long)pcVar20 - (long)pcVar9 & 0xffffffff" (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & number_literal) )))) ;) (expression_statement "plVar19 = plVar21;" (assignment_expression "plVar19 = plVar21" identifier = identifier) ;) (expression_statement "iVar4 = local_68;" (assignment_expression "iVar4 = local_68" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }" { (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" identifier = number_literal) ;) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');" do (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar10;" (assignment_expression "cVar14 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "plVar19 = plVar18;" (assignment_expression "plVar19 = plVar18" identifier = identifier) ;) (if_statement "if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;" if (parenthesized_expression "((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1)" ( (binary_expression "(int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1" (cast_expression "(int)((long)pcVar20 - (long)pcVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)pcVar20 - (long)pcVar9)" ( (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) == (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" ~ (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) - number_literal)) )) (goto_statement "goto joined_r0x00109833;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }" if (parenthesized_expression "((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22))" ( (binary_expression "(plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)" (parenthesized_expression "(plVar21 != (long *)0x0)" ( (binary_expression "plVar21 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar19 = plVar21, iVar4 = local_68, !bVar22)" ( (comma_expression "plVar19 = plVar21, iVar4 = local_68, !bVar22" (assignment_expression "plVar19 = plVar21" identifier = identifier) , (comma_expression "iVar4 = local_68, !bVar22" (assignment_expression "iVar4 = local_68" identifier = identifier) , (unary_expression "!bVar22" ! identifier))) ))) )) (compound_statement "{\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }" { (if_statement "if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" if (parenthesized_expression "((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3]))))" ( (binary_expression "(param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))" (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) && (parenthesized_expression "((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))" ( (parenthesized_expression "(((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3]))" ( (binary_expression "((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])" (parenthesized_expression "((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2]))" ( (binary_expression "(int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])" (binary_expression "(int)plVar21[1] == (int)plVar18[1]" (cast_expression "(int)plVar21[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar21[1]" identifier [ number_literal ])) == (cast_expression "(int)plVar18[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar18[1]" identifier [ number_literal ]))) && (parenthesized_expression "(plVar21[2] == plVar18[2])" ( (binary_expression "plVar21[2] == plVar18[2]" (subscript_expression "plVar21[2]" identifier [ number_literal ]) == (subscript_expression "plVar18[2]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "((int)plVar21[3] == (int)plVar18[3])" ( (binary_expression "(int)plVar21[3] == (int)plVar18[3]" (cast_expression "(int)plVar21[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar21[3]" identifier [ number_literal ])) == (cast_expression "(int)plVar18[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar18[3]" identifier [ number_literal ]))) ))) )) ))) )) (compound_statement "{\n                bVar22 = false;\n              }" { (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) }) (else_clause "else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" else (compound_statement "{\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" { (expression_statement "puVar11 = (undefined8 *)malloc(0x10);" (assignment_expression "puVar11 = (undefined8 *)malloc(0x10)" identifier = (cast_expression "(undefined8 *)malloc(0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }" { (if_statement "if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" if (parenthesized_expression "(__ptr == (undefined8 *)0x0)" ( (binary_expression "__ptr == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar22 = true;\n                  }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }) (else_clause "else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" else (compound_statement "{\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" { (do_statement "do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);" do (compound_statement "{\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    }" { (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" identifier = (cast_expression "(undefined8 *)__ptr[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[1]" identifier [ number_literal ]))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" ( (binary_expression "puVar11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) }))) }) (else_clause "else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" else (compound_statement "{\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" { (expression_statement "*puVar11 = plVar18;" (assignment_expression "*puVar11 = plVar18" (pointer_expression "*puVar11" * identifier) = identifier) ;) (expression_statement "puVar11[1] = __ptr;" (assignment_expression "puVar11[1] = __ptr" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) }))) }))) })) })) (expression_statement "local_68 = iVar4;" (assignment_expression "local_68 = iVar4" identifier = identifier) ;) (expression_statement "plVar18 = plVar18 + 4;" (assignment_expression "plVar18 = plVar18 + 4" identifier = (binary_expression "plVar18 + 4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar10 = (char *)*plVar18;" (assignment_expression "pcVar10 = (char *)*plVar18" identifier = (cast_expression "(char *)*plVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar18" * identifier))) ;) (expression_statement "plVar21 = plVar19;" (assignment_expression "plVar21 = plVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "((bVar22) || (__ptr != (undefined8 *)0x0))" ( (binary_expression "(bVar22) || (__ptr != (undefined8 *)0x0)" (parenthesized_expression "(bVar22)" ( identifier )) || (parenthesized_expression "(__ptr != (undefined8 *)0x0)" ( (binary_expression "__ptr != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" { (if_statement "if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" if (parenthesized_expression "((__ptr == (undefined8 *)0x0) || (uVar5 == 0))" ( (binary_expression "(__ptr == (undefined8 *)0x0) || (uVar5 == 0)" (parenthesized_expression "(__ptr == (undefined8 *)0x0)" ( (binary_expression "__ptr == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }" { (if_statement "if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((!bVar22) || (uVar5 == 0))" ( (binary_expression "(!bVar22) || (uVar5 == 0)" (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) || (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" if (parenthesized_expression "(__ptr == (undefined8 *)0x0)" ( (binary_expression "__ptr == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar7 = 0x3f;\n              }" { (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) }) (else_clause "else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" else (compound_statement "{\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" { (do_statement "do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);" do (compound_statement "{\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                }" { (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" identifier = (cast_expression "(undefined8 *)__ptr[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[1]" identifier [ number_literal ]))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" identifier = identifier) ;) }) while (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" ( (binary_expression "puVar11 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7])" identifier (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7])" ( identifier , number_literal , (string_literal ""%s: option \'%s\' is ambiguous\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) ))) ;) }) (else_clause "else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" else (compound_statement "{\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" { (expression_statement "local_58 = plVar19;" (assignment_expression "local_58 = plVar19" identifier = identifier) ;) (expression_statement "local_50 = __ptr;" (assignment_expression "local_50 = __ptr" identifier = identifier) ;) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7])" identifier (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7])" ( identifier , number_literal , (string_literal ""%s: option \'%s\' is ambiguous; possibilities:"" " string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]) ))) ;) (expression_statement "pplVar15 = &local_58;" (assignment_expression "pplVar15 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) (do_statement "do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);" do (compound_statement "{\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            }" { (expression_statement "__fprintf_chk(stderr,1," \'--%s\'",**pplVar15);" (call_expression "__fprintf_chk(stderr,1," \'--%s\'",**pplVar15)" identifier (argument_list "(stderr,1," \'--%s\'",**pplVar15)" ( identifier , number_literal , (string_literal "" \'--%s\'"" " string_content escape_sequence string_content escape_sequence ") , (pointer_expression "**pplVar15" * (pointer_expression "*pplVar15" * identifier)) ))) ;) (expression_statement "pplVar15 = (long **)pplVar15[1];" (assignment_expression "pplVar15 = (long **)pplVar15[1]" identifier = (cast_expression "(long **)pplVar15[1]" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pplVar15[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(pplVar15 != (long **)0x0)" ( (binary_expression "pplVar15 != (long **)0x0" identifier != (cast_expression "(long **)0x0" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) ;) (expression_statement "fputc(10,stderr);" (call_expression "fputc(10,stderr)" identifier (argument_list "(10,stderr)" ( number_literal , identifier ))) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) }))) (if_statement "if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }" if (parenthesized_expression "(plVar19 != (long *)0x0)" ( (binary_expression "plVar19 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }" { (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (expression_statement "uVar6 = uVar2 + 1;" (assignment_expression "uVar6 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" * identifier) = identifier) ;) (if_statement "if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" if (parenthesized_expression "(*pcVar20 == '\0')" ( (binary_expression "*pcVar20 == '\0'" (pointer_expression "*pcVar20" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }" { (if_statement "if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }" if (parenthesized_expression "((int)plVar19[1] == 1)" ( (binary_expression "(int)plVar19[1] == 1" (cast_expression "(int)plVar19[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }" { (if_statement "if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((int)param_1 <= (int)uVar6)" ( (binary_expression "(int)param_1 <= (int)uVar6" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" { (if_statement "if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19)" identifier (argument_list "(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19)" ( identifier , number_literal , (string_literal ""%s: option \'--%s\' requires an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*plVar19" * identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "param_7[2] = *(uint *)(plVar19 + 3);" (assignment_expression "param_7[2] = *(uint *)(plVar19 + 3)" (subscript_expression "param_7[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(plVar19 + 3)" * (cast_expression "(uint *)(plVar19 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar19 + 3)" ( (binary_expression "plVar19 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a" identifier = (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) ))) * number_literal) + number_literal)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*param_7 = uVar2 + 2;" (assignment_expression "*param_7 = uVar2 + 2" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) })) }) (else_clause "else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" else (compound_statement "{\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" { (if_statement "if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }" if (parenthesized_expression "((int)plVar19[1] == 0)" ( (binary_expression "(int)plVar19[1] == 0" (cast_expression "(int)plVar19[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }" { (if_statement "if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }" { (if_statement "if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" if (parenthesized_expression "(((char *)param_2[(long)(int)uVar6 + -1])[1] == '-')" ( (binary_expression "((char *)param_2[(long)(int)uVar6 + -1])[1] == '-'" (subscript_expression "((char *)param_2[(long)(int)uVar6 + -1])[1]" (parenthesized_expression "((char *)param_2[(long)(int)uVar6 + -1])" ( (cast_expression "(char *)param_2[(long)(int)uVar6 + -1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(long)(int)uVar6 + -1]" identifier [ (binary_expression "(long)(int)uVar6 + -1" (cast_expression "(long)(int)uVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ])) )) [ number_literal ]) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19)" identifier (argument_list "(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19)" ( identifier , number_literal , (string_literal ""%s: option \'--%s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*plVar19" * identifier) ))) ;) }) (else_clause "else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" else (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19)" identifier (argument_list "(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19)" ( identifier , number_literal , (string_literal ""%s: option \'%c%s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (cast_expression "(int)*(char *)param_2[(long)(int)uVar6 + -1]" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)param_2[(long)(int)uVar6 + -1]" * (cast_expression "(char *)param_2[(long)(int)uVar6 + -1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(long)(int)uVar6 + -1]" identifier [ (binary_expression "(long)(int)uVar6 + -1" (cast_expression "(long)(int)uVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ])))) , (pointer_expression "*plVar19" * identifier) ))) ;) }))) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "param_7[2] = *(uint *)(plVar19 + 3);" (assignment_expression "param_7[2] = *(uint *)(plVar19 + 3)" (subscript_expression "param_7[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(plVar19 + 3)" * (cast_expression "(uint *)(plVar19 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar19 + 3)" ( (binary_expression "plVar19 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*(char **)(param_7 + 4) = pcVar20 + 1;" (assignment_expression "*(char **)(param_7 + 4) = pcVar20 + 1" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');" do (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (if_statement "if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *param_5 = local_68;\n        }" { (expression_statement "*param_5 = local_68;" (assignment_expression "*param_5 = local_68" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (if_statement "if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" if (parenthesized_expression "((undefined4 *)plVar19[2] == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)plVar19[2] == (undefined4 *)0x0" (cast_expression "(undefined4 *)plVar19[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar19[2]" identifier [ number_literal ])) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar7 = (int)plVar19[3];\n        }" { (expression_statement "iVar7 = (int)plVar19[3];" (assignment_expression "iVar7 = (int)plVar19[3]" identifier = (cast_expression "(int)plVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" { (expression_statement "*(undefined4 *)plVar19[2] = (int)plVar19[3];" (assignment_expression "*(undefined4 *)plVar19[2] = (int)plVar19[3]" (pointer_expression "*(undefined4 *)plVar19[2]" * (cast_expression "(undefined4 *)plVar19[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar19[2]" identifier [ number_literal ]))) = (cast_expression "(int)plVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (if_statement "if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }" { (if_statement "if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }" { (expression_statement "pcVar9 = (char *)param_2[(int)*param_7];" (assignment_expression "pcVar9 = (char *)param_2[(int)*param_7]" identifier = (cast_expression "(char *)param_2[(int)*param_7]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]))) ;) (if_statement "if (pcVar9[1] == '-') goto LAB_001097e1;" if (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) (goto_statement "goto LAB_001097e1;" goto statement_identifier ;)) (labeled_statement "LAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));" statement_identifier : (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8))" identifier (argument_list "(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8))" ( identifier , number_literal , (string_literal ""%s: unrecognized option \'%c%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , (cast_expression "(int)*pcVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pcVar9" * identifier)) , (pointer_expression "*(undefined8 *)(param_7 + 8)" * (cast_expression "(undefined8 *)(param_7 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) ))) ;)) })) }) (else_clause "else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" else (compound_statement "{\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" { (expression_statement "pcVar9 = (char *)param_2[(int)*param_7];" (assignment_expression "pcVar9 = (char *)param_2[(int)*param_7]" identifier = (cast_expression "(char *)param_2[(int)*param_7]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[(int)*param_7]" identifier [ (cast_expression "(int)*param_7" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_7" * identifier)) ]))) ;) (if_statement "if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" if (parenthesized_expression "(pcVar9[1] == '-')" ( (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }" { (if_statement "if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }" { (labeled_statement "LAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));" statement_identifier : (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8))" identifier (argument_list "(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8))" ( identifier , number_literal , (string_literal ""%s: unrecognized option \'--%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*(undefined8 *)(param_7 + 8)" * (cast_expression "(undefined8 *)(param_7 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) ))) ;)) })) }) (else_clause "else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" else (compound_statement "{\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" { (expression_statement "pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));" (assignment_expression "pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8))" identifier = (call_expression "strchr(local_b0,(int)**(char **)(param_7 + 8))" identifier (argument_list "(local_b0,(int)**(char **)(param_7 + 8))" ( identifier , (cast_expression "(int)**(char **)(param_7 + 8)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "**(char **)(param_7 + 8)" * (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))))) )))) ;) (if_statement "if (pcVar20 != (char *)0x0) goto LAB_00108d74;" if (parenthesized_expression "(pcVar20 != (char *)0x0)" ( (binary_expression "pcVar20 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00108d74;" goto statement_identifier ;)) (if_statement "if (uVar5 != 0) goto LAB_00109263;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00109263;" goto statement_identifier ;)) }))) }))) (expression_statement "*(char **)(param_7 + 8) = "";" (assignment_expression "*(char **)(param_7 + 8) = """ (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);" statement_identifier : (expression_statement "pcVar20 = *(char **)(param_7 + 8);" (assignment_expression "pcVar20 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;)) (expression_statement "pcVar9 = pcVar20 + 1;" (assignment_expression "pcVar9 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)(param_7 + 8) = pcVar9;" (assignment_expression "*(char **)(param_7 + 8) = pcVar9" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) (expression_statement "uVar6 = (uint)cVar14;" (assignment_expression "uVar6 = (uint)cVar14" identifier = (cast_expression "(uint)cVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar10 = strchr(local_b0,uVar6);" (assignment_expression "pcVar10 = strchr(local_b0,uVar6)" identifier = (call_expression "strchr(local_b0,uVar6)" identifier (argument_list "(local_b0,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_7 = *param_7 + 1;\n  }" { (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) })) (if_statement "if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" if (parenthesized_expression "(((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0))" ( (binary_expression "((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)" (parenthesized_expression "((byte)(cVar14 - 0x3aU) < 2)" ( (binary_expression "(byte)(cVar14 - 0x3aU) < 2" (call_expression "(byte)(cVar14 - 0x3aU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar14 - 0x3aU)" ( (binary_expression "cVar14 - 0x3aU" identifier - number_literal) ))) < number_literal) )) || (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }" { (if_statement "if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }" { (expression_statement "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6)" identifier (argument_list "(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6)" ( identifier , number_literal , (string_literal ""%s: invalid option -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) }) (else_clause "else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" else (if_statement "if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" if (parenthesized_expression "((*pcVar10 == 'W') && (pcVar10[1] == ';'))" ( (binary_expression "(*pcVar10 == 'W') && (pcVar10[1] == ';')" (parenthesized_expression "(*pcVar10 == 'W')" ( (binary_expression "*pcVar10 == 'W'" (pointer_expression "*pcVar10" * identifier) == (char_literal "'W'" ' character ')) )) && (parenthesized_expression "(pcVar10[1] == ';')" ( (binary_expression "pcVar10[1] == ';'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "';'" ' character ')) ))) )) (compound_statement "{\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }" { (if_statement "if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" if (parenthesized_expression "(param_4 != (long *)0x0)" ( (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" { (if_statement "if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }" { (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(uVar2 == param_1)" ( (binary_expression "uVar2 == param_1" identifier == identifier) )) (compound_statement "{\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }" { (if_statement "if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" identifier (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" ( identifier , number_literal , (string_literal ""%s: option requires an argument -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (*local_b0 != ':') {\n            cVar14 = '?';\n          }" if (parenthesized_expression "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) )) (compound_statement "{\n            cVar14 = '?';\n          }" { (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" identifier = (char_literal "'?'" ' character ')) ;) })) (expression_statement "iVar7 = (int)cVar14;" (assignment_expression "iVar7 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*param_7 = uVar2 + 1;" (assignment_expression "*param_7 = uVar2 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar2]" identifier [ (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) (else_clause "else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" else (compound_statement "{\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" { (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) }))) (expression_statement "pcVar9 = *(char **)(param_7 + 4);" (assignment_expression "pcVar9 = *(char **)(param_7 + 4)" identifier = (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(param_7 + 8) = pcVar9;" (assignment_expression "*(char **)(param_7 + 8) = pcVar9" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" identifier = identifier) ;) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" while (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" ( (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" ( (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(cVar14 != '=')" ( (binary_expression "cVar14 != '='" identifier != (char_literal "'='" ' character ')) ))) )) )) (compound_statement "{\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" { (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) })) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (do_statement "do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);" do (compound_statement "{\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        }" { (expression_statement "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);" (assignment_expression "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" identifier = (call_expression "strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" identifier (argument_list "(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" ( identifier , identifier , (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = bVar22;" (assignment_expression "bVar23 = bVar22" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }" { (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');" do (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar10;" (assignment_expression "cVar1 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar10 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;" if (parenthesized_expression "(((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1)" ( (binary_expression "((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1" (parenthesized_expression "((long)pcVar20 - (long)pcVar9 & 0xffffffffU)" ( (binary_expression "(long)pcVar20 - (long)pcVar9 & 0xffffffffU" (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & number_literal) )) == (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal)) )) (goto_statement "goto LAB_001094ec;" goto statement_identifier ;)) (expression_statement "plVar18 = param_4;" (assignment_expression "plVar18 = param_4" identifier = identifier) ;) (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" identifier = identifier) ;) (if_statement "if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }" if (parenthesized_expression "(plVar19 != (long *)0x0)" ( (binary_expression "plVar19 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }" { (if_statement "if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }" { (if_statement "if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" if (parenthesized_expression "((int)plVar19[1] == (int)param_4[1])" ( (binary_expression "(int)plVar19[1] == (int)param_4[1]" (cast_expression "(int)plVar19[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[1]" identifier [ number_literal ])) == (cast_expression "(int)param_4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }" { (if_statement "if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" if (parenthesized_expression "(plVar19[2] == param_4[2])" ( (binary_expression "plVar19[2] == param_4[2]" (subscript_expression "plVar19[2]" identifier [ number_literal ]) == (subscript_expression "param_4[2]" identifier [ number_literal ])) )) (compound_statement "{\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) (if_statement "if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }" if (parenthesized_expression "((int)plVar19[3] == (int)param_4[3])" ( (binary_expression "(int)plVar19[3] == (int)param_4[3]" (cast_expression "(int)plVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar19[3]" identifier [ number_literal ])) == (cast_expression "(int)param_4[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                      bVar23 = bVar22;\n                    }" { (expression_statement "bVar23 = bVar22;" (assignment_expression "bVar23 = bVar22" identifier = identifier) ;) })) }) (else_clause "else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" else (compound_statement "{\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) }) (else_clause "else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" else (compound_statement "{\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) }) (else_clause "else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" else (compound_statement "{\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" { (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" identifier = identifier) ;) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" identifier = identifier) ;) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" identifier = true) ;) }))) })) })) (expression_statement "local_74 = iVar4;" (assignment_expression "local_74 = iVar4" identifier = identifier) ;) (expression_statement "param_4 = param_4 + 4;" (assignment_expression "param_4 = param_4 + 4" identifier = (binary_expression "param_4 + 4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "plVar19 = plVar18;" (assignment_expression "plVar19 = plVar18" identifier = identifier) ;) (expression_statement "bVar22 = bVar23;" (assignment_expression "bVar22 = bVar23" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "param_4 = plVar18;" (assignment_expression "param_4 = plVar18" identifier = identifier) ;) (expression_statement "iVar7 = local_74;" (assignment_expression "iVar7 = local_74" identifier = identifier) ;) (if_statement "if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(bVar23)" ( identifier )) (compound_statement "{\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" { (if_statement "if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' is ambiguous\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (labeled_statement "LAB_001094ec:\n        local_74 = iVar7;" statement_identifier : (expression_statement "local_74 = iVar7;" (assignment_expression "local_74 = iVar7" identifier = identifier) ;)) (if_statement "if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }" if (parenthesized_expression "(param_4 != (long *)0x0)" ( (binary_expression "param_4 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }" { (if_statement "if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" if (parenthesized_expression "(cVar14 == '\0')" ( (binary_expression "cVar14 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }" { (if_statement "if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" if (parenthesized_expression "((int)param_4[1] == 1)" ( (binary_expression "(int)param_4[1] == 1" (cast_expression "(int)param_4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }" { (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" if (parenthesized_expression "((int)param_1 <= (int)uVar6)" ( (binary_expression "(int)param_1 <= (int)uVar6" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" { (if_statement "if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' requires an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*param_4" * identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');" do (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a" identifier = (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_b0 != ':')" ( (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" * identifier) != (char_literal "':'" ' character ')) ))) * number_literal) + number_literal)) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*param_7 = uVar6 + 1;" (assignment_expression "*param_7 = uVar6 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar6]" identifier [ (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }) (else_clause "else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" else (compound_statement "{\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" { (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" identifier [ number_literal ]) = number_literal) ;) }))) }) (else_clause "else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" else (compound_statement "{\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" { (if_statement "if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }" if (parenthesized_expression "((int)param_4[1] == 0)" ( (binary_expression "(int)param_4[1] == 0" (cast_expression "(int)param_4[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[1]" identifier [ number_literal ])) == number_literal) )) (compound_statement "{\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }" { (if_statement "if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4)" identifier (argument_list "(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4)" ( identifier , number_literal , (string_literal ""%s: option \'-W %s\' doesn\'t allow an argument\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression "*param_2" * identifier) , (pointer_expression "*param_4" * identifier) ))) ;) })) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" identifier = (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) ))))) ;) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" do (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" identifier = number_literal) ;) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) (expression_statement "*(char **)(param_7 + 4) = pcVar20 + 1;" (assignment_expression "*(char **)(param_7 + 4) = pcVar20 + 1" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" identifier = identifier) ;) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" do (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" identifier = (pointer_expression "*pcVar20" * identifier)) ;) (expression_statement "pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pcVar20 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar20 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "*(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" * (cast_expression "(char **)(param_7 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 8)" ( (binary_expression "param_7 + 8" identifier + number_literal) )))) = (binary_expression "pcVar9 + (~uVar13 - 1)" identifier + (parenthesized_expression "(~uVar13 - 1)" ( (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) )))) ;) (if_statement "if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }" if (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *param_5 = local_74;\n          }" { (expression_statement "*param_5 = local_74;" (assignment_expression "*param_5 = local_74" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (if_statement "if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" if (parenthesized_expression "((undefined4 *)param_4[2] == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)param_4[2] == (undefined4 *)0x0" (cast_expression "(undefined4 *)param_4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ])) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = (int)param_4[3];\n          }" { (expression_statement "iVar7 = (int)param_4[3];" (assignment_expression "iVar7 = (int)param_4[3]" identifier = (cast_expression "(int)param_4[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" { (expression_statement "*(undefined4 *)param_4[2] = (int)param_4[3];" (assignment_expression "*(undefined4 *)param_4[2] = (int)param_4[3]" (pointer_expression "*(undefined4 *)param_4[2]" * (cast_expression "(undefined4 *)param_4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_4[2]" identifier [ number_literal ]))) = (cast_expression "(int)param_4[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_4[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001098ef;" goto statement_identifier ;) })) })) })) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = 0x57;" (assignment_expression "iVar7 = 0x57" identifier = number_literal) ;) }) (else_clause "else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" else (compound_statement "{\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" { (if_statement "if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }" if (parenthesized_expression "(pcVar10[1] == ':')" ( (binary_expression "pcVar10[1] == ':'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }" { (if_statement "if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" if (parenthesized_expression "(pcVar10[2] == ':')" ( (binary_expression "pcVar10[2] == ':'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" { (if_statement "if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }" { (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" else (compound_statement "{\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" { (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) }))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" else (compound_statement "{\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" { (if_statement "if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" if (parenthesized_expression "(pcVar20[1] == '\0')" ( (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }" { (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" identifier = (pointer_expression "*param_7" * identifier)) ;) (if_statement "if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" if (parenthesized_expression "(uVar2 == param_1)" ( (binary_expression "uVar2 == param_1" identifier == identifier) )) (compound_statement "{\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }" { (if_statement "if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }" { (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" identifier (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" ( identifier , number_literal , (string_literal ""%s: option requires an argument -- \'%c\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_2" * identifier) , identifier ))) ;) })) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" identifier = (pointer_expression "*local_b0" * identifier)) ;) (if_statement "if (cVar14 != ':') {\n              cVar14 = '?';\n            }" if (parenthesized_expression "(cVar14 != ':')" ( (binary_expression "cVar14 != ':'" identifier != (char_literal "':'" ' character ')) )) (compound_statement "{\n              cVar14 = '?';\n            }" { (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" identifier = (char_literal "'?'" ' character ')) ;) })) }) (else_clause "else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" else (compound_statement "{\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" { (expression_statement "*param_7 = uVar2 + 1;" (assignment_expression "*param_7 = uVar2 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2]" (pointer_expression "*(undefined8 *)(param_7 + 4)" * (cast_expression "(undefined8 *)(param_7 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = (subscript_expression "param_2[(int)uVar2]" identifier [ (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) }))) }) (else_clause "else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" else (compound_statement "{\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" { (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" * (cast_expression "(char **)(param_7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_7 + 4)" ( (binary_expression "param_7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" * identifier) = (binary_expression "*param_7 + 1" (pointer_expression "*param_7" * identifier) + number_literal)) ;) }))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" identifier [ number_literal ]) = number_literal) ;) }))) })) (expression_statement "iVar7 = (int)cVar14;" (assignment_expression "iVar7 = (int)cVar14" identifier = (cast_expression "(int)cVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))))) (labeled_statement "LAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) - LIT) & LIT) )) == LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ]))) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ])) )) [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )))) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ]) + LIT) )))) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) == (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (unary_expression ! IDENT))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ]) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression * IDENT) , (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ]) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , (pointer_expression * (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) * LIT) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) ])) )) [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , (pointer_expression * IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) ])))) , (pointer_expression * IDENT) ))) ;) }))) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression * IDENT) , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " ")) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) & LIT) )) == (binary_expression (unary_expression ~ IDENT) - LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) * LIT) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , (pointer_expression * IDENT) , (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)\n\n{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\n}" (primitive_type "int") (function_declarator "FUN_00108acc(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)" (identifier "FUN_00108acc") (parameter_list "(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,\n                int param_6,uint *param_7,int param_8)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 *param_2" (type_identifier "undefined8") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "uint *param_7" (type_identifier "uint") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  byte *pbVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  undefined8 *puVar11;\n  long lVar12;\n  ulong uVar13;\n  char cVar14;\n  long **pplVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  long *plVar18;\n  long *plVar19;\n  undefined8 *__ptr;\n  char *pcVar20;\n  long *plVar21;\n  long in_FS_OFFSET;\n  bool bVar22;\n  bool bVar23;\n  byte bVar24;\n  char *local_b0;\n  int local_74;\n  int local_68;\n  long *local_58;\n  undefined8 *local_50;\n  long local_40;\n  \n  bVar24 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar6 = param_7[1];\n  if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }\n  param_7[4] = 0;\n  param_7[5] = 0;\n  if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }\n  uVar5 = 0;\n  if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }\n  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }\nLAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }\nLAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);\n  pcVar9 = pcVar20 + 1;\n  *(char **)(param_7 + 8) = pcVar9;\n  cVar14 = *pcVar20;\n  uVar6 = (uint)cVar14;\n  pcVar10 = strchr(local_b0,uVar6);\n  if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }\n  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }\nLAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "char cVar14;" (primitive_type "char") (identifier "cVar14") (; ";")) (declaration "long **pplVar15;" (sized_type_specifier "long" (long "long")) (pointer_declarator "**pplVar15" (* "*") (pointer_declarator "*pplVar15" (* "*") (identifier "pplVar15"))) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "long *plVar18;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar18" (* "*") (identifier "plVar18")) (; ";")) (declaration "long *plVar19;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar19" (* "*") (identifier "plVar19")) (; ";")) (declaration "undefined8 *__ptr;" (type_identifier "undefined8") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "long *plVar21;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar21" (* "*") (identifier "plVar21")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "byte bVar24;" (type_identifier "byte") (identifier "bVar24") (; ";")) (declaration "char *local_b0;" (primitive_type "char") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "long *local_58;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined8 *local_50;" (type_identifier "undefined8") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" (identifier "bVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar6 = param_7[1];" (assignment_expression "uVar6 = param_7[1]" (identifier "uVar6") (= "=") (subscript_expression "param_7[1]" (identifier "param_7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((int)param_1 < 1) {\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }" (if "if") (parenthesized_expression "((int)param_1 < 1)" (( "(") (binary_expression "(int)param_1 < 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    iVar7 = -1;\n    goto LAB_001098ef;\n  }" ({ "{") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" (identifier "param_7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*param_7 == 0) {\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }\n  else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" (if "if") (parenthesized_expression "(*param_7 == 0)" (( "(") (binary_expression "*param_7 == 0" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *param_7 = 1;\nLAB_00108b56:\n    param_7[0xd] = *param_7;\n    param_7[0xc] = *param_7;\n    param_7[8] = 0;\n    param_7[9] = 0;\n    uVar5 = 1;\n    if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }\n    param_7[0xb] = uVar5;\n    if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }\n    param_7[6] = 1;\n  }" ({ "{") (expression_statement "*param_7 = 1;" (assignment_expression "*param_7 = 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00108b56:\n    param_7[0xd] = *param_7;" (statement_identifier "LAB_00108b56") (: ":") (expression_statement "param_7[0xd] = *param_7;" (assignment_expression "param_7[0xd] = *param_7" (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]")) (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";"))) (expression_statement "param_7[0xc] = *param_7;" (assignment_expression "param_7[0xc] = *param_7" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" (identifier "param_7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" (identifier "param_7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_8 == 0) {\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar9 = getenv("POSIXLY_CORRECT");\n      uVar5 = (uint)(pcVar9 != (char *)0x0);\n    }" ({ "{") (expression_statement "pcVar9 = getenv("POSIXLY_CORRECT");" (assignment_expression "pcVar9 = getenv("POSIXLY_CORRECT")" (identifier "pcVar9") (= "=") (call_expression "getenv("POSIXLY_CORRECT")" (identifier "getenv") (argument_list "("POSIXLY_CORRECT")" (( "(") (string_literal ""POSIXLY_CORRECT"" (" """) (string_content "POSIXLY_CORRECT") (" """)) () ")")))) (; ";")) (expression_statement "uVar5 = (uint)(pcVar9 != (char *)0x0);" (assignment_expression "uVar5 = (uint)(pcVar9 != (char *)0x0)" (identifier "uVar5") (= "=") (call_expression "(uint)(pcVar9 != (char *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar9 != (char *)0x0)" (( "(") (binary_expression "pcVar9 != (char *)0x0" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (; ";")) (} "}"))) (expression_statement "param_7[0xb] = uVar5;" (assignment_expression "param_7[0xb] = uVar5" (subscript_expression "param_7[0xb]" (identifier "param_7") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (*param_3 == '-') {\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }\n    else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" (if "if") (parenthesized_expression "(*param_3 == '-')" (( "(") (binary_expression "*param_3 == '-'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n      param_7[10] = 2;\n      local_b0 = param_3 + 1;\n    }" ({ "{") (expression_statement "param_7[10] = 2;" (assignment_expression "param_7[10] = 2" (subscript_expression "param_7[10]" (identifier "param_7") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_b0 = param_3 + 1;" (assignment_expression "local_b0 = param_3 + 1" (identifier "local_b0") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" (else "else") (if_statement "if (*param_3 == '+') {\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }\n    else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" (if "if") (parenthesized_expression "(*param_3 == '+')" (( "(") (binary_expression "*param_3 == '+'" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")")) (compound_statement "{\n      param_7[10] = 0;\n      local_b0 = param_3 + 1;\n    }" ({ "{") (expression_statement "param_7[10] = 0;" (assignment_expression "param_7[10] = 0" (subscript_expression "param_7[10]" (identifier "param_7") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0 = param_3 + 1;" (assignment_expression "local_b0 = param_3 + 1" (identifier "local_b0") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" (else "else") (compound_statement "{\n      param_7[10] = uVar5 ^ 1;\n      local_b0 = param_3;\n    }" ({ "{") (expression_statement "param_7[10] = uVar5 ^ 1;" (assignment_expression "param_7[10] = uVar5 ^ 1" (subscript_expression "param_7[10]" (identifier "param_7") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "uVar5 ^ 1" (identifier "uVar5") (^ "^") (number_literal "1"))) (; ";")) (expression_statement "local_b0 = param_3;" (assignment_expression "local_b0 = param_3" (identifier "local_b0") (= "=") (identifier "param_3")) (; ";")) (} "}")))))) (expression_statement "param_7[6] = 1;" (assignment_expression "param_7[6] = 1" (subscript_expression "param_7[6]" (identifier "param_7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" (else "else") (compound_statement "{\n    if (param_7[6] == 0) goto LAB_00108b56;\n    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);\n  }" ({ "{") (if_statement "if (param_7[6] == 0) goto LAB_00108b56;" (if "if") (parenthesized_expression "(param_7[6] == 0)" (( "(") (binary_expression "param_7[6] == 0" (subscript_expression "param_7[6]" (identifier "param_7") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00108b56;" (goto "goto") (statement_identifier "LAB_00108b56") (; ";"))) (expression_statement "local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);" (assignment_expression "local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0)" (identifier "local_b0") (= "=") (binary_expression "param_3 + ((*param_3 - 0x2bU & 0xfd) == 0)" (identifier "param_3") (+ "+") (parenthesized_expression "((*param_3 - 0x2bU & 0xfd) == 0)" (( "(") (binary_expression "(*param_3 - 0x2bU & 0xfd) == 0" (parenthesized_expression "(*param_3 - 0x2bU & 0xfd)" (( "(") (binary_expression "*param_3 - 0x2bU & 0xfd" (binary_expression "*param_3 - 0x2bU" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (- "-") (number_literal "0x2bU")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*local_b0 != ':') {\n    uVar5 = uVar6;\n  }" (if "if") (parenthesized_expression "(*local_b0 != ':')" (( "(") (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n    uVar5 = uVar6;\n  }" ({ "{") (expression_statement "uVar5 = uVar6;" (assignment_expression "uVar5 = uVar6" (identifier "uVar5") (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (if_statement "if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }" (if "if") (parenthesized_expression "((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0'))" (( "(") (binary_expression "(*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')" (parenthesized_expression "(*(char **)(param_7 + 8) == (char *)0x0)" (( "(") (binary_expression "*(char **)(param_7 + 8) == (char *)0x0" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(**(char **)(param_7 + 8) == '\0')" (( "(") (binary_expression "**(char **)(param_7 + 8) == '\0'" (pointer_expression "**(char **)(param_7 + 8)" (* "*") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    uVar6 = *param_7;\n    if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }\n    if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }\n    if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }\n    uVar6 = *param_7;\n    bVar22 = uVar6 < param_1;\n    bVar23 = uVar6 == param_1;\n    if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }\n    if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }\n    goto LAB_001098ef;\n  }" ({ "{") (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" (identifier "uVar6") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (if_statement "if ((int)uVar6 < (int)param_7[0xd]) {\n      param_7[0xd] = uVar6;\n    }" (if "if") (parenthesized_expression "((int)uVar6 < (int)param_7[0xd])" (( "(") (binary_expression "(int)uVar6 < (int)param_7[0xd]" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (cast_expression "(int)param_7[0xd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (compound_statement "{\n      param_7[0xd] = uVar6;\n    }" ({ "{") (expression_statement "param_7[0xd] = uVar6;" (assignment_expression "param_7[0xd] = uVar6" (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (if_statement "if ((int)uVar6 < (int)param_7[0xc]) {\n      param_7[0xc] = uVar6;\n    }" (if "if") (parenthesized_expression "((int)uVar6 < (int)param_7[0xc])" (( "(") (binary_expression "(int)uVar6 < (int)param_7[0xc]" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (cast_expression "(int)param_7[0xc]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")))) () ")")) (compound_statement "{\n      param_7[0xc] = uVar6;\n    }" ({ "{") (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (if_statement "if (param_7[10] == 1) {\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }" (if "if") (parenthesized_expression "(param_7[10] == 1)" (( "(") (binary_expression "param_7[10] == 1" (subscript_expression "param_7[10]" (identifier "param_7") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      uVar2 = param_7[0xd];\n      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      uVar6 = *param_7;\n      if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }\n      param_7[0xd] = uVar6;\n    }" ({ "{") (expression_statement "uVar2 = param_7[0xd];" (assignment_expression "uVar2 = param_7[0xd]" (identifier "uVar2") (= "=") (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (if_statement "if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }" (if "if") (parenthesized_expression "((param_7[0xc] == uVar2) || (uVar6 == uVar2))" (( "(") (binary_expression "(param_7[0xc] == uVar2) || (uVar6 == uVar2)" (parenthesized_expression "(param_7[0xc] == uVar2)" (( "(") (binary_expression "param_7[0xc] == uVar2" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (== "==") (identifier "uVar2")) () ")")) (|| "||") (parenthesized_expression "(uVar6 == uVar2)" (( "(") (binary_expression "uVar6 == uVar2" (identifier "uVar6") (== "==") (identifier "uVar2")) () ")"))) () ")")) (compound_statement "{\n        if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }\n      }" ({ "{") (if_statement "if (uVar6 != uVar2) {\n          param_7[0xc] = uVar6;\n        }" (if "if") (parenthesized_expression "(uVar6 != uVar2)" (( "(") (binary_expression "uVar6 != uVar2" (identifier "uVar6") (!= "!=") (identifier "uVar2")) () ")")) (compound_statement "{\n          param_7[0xc] = uVar6;\n        }" ({ "{") (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        FUN_00108a11(param_2,param_7);\n      }" (else "else") (compound_statement "{\n        FUN_00108a11(param_2,param_7);\n      }" ({ "{") (expression_statement "FUN_00108a11(param_2,param_7);" (call_expression "FUN_00108a11(param_2,param_7)" (identifier "FUN_00108a11") (argument_list "(param_2,param_7)" (( "(") (identifier "param_2") (, ",") (identifier "param_7") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" (identifier "uVar6") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (if_statement "if ((int)uVar6 < (int)param_1) {\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }" (if "if") (parenthesized_expression "((int)uVar6 < (int)param_1)" (( "(") (binary_expression "(int)uVar6 < (int)param_1" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (compound_statement "{\n        lVar12 = (long)(int)uVar6;\n        do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);\n      }" ({ "{") (expression_statement "lVar12 = (long)(int)uVar6;" (assignment_expression "lVar12 = (long)(int)uVar6" (identifier "lVar12") (= "=") (cast_expression "(long)(int)uVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")))) (; ";")) (do_statement "do {\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        } while ((int)lVar12 < (int)param_1);" (do "do") (compound_statement "{\n          uVar6 = (uint)lVar12;\n          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;\n          uVar6 = uVar6 + 1;\n          *param_7 = uVar6;\n          lVar12 = lVar12 + 1;\n        }" ({ "{") (expression_statement "uVar6 = (uint)lVar12;" (assignment_expression "uVar6 = (uint)lVar12" (identifier "uVar6") (= "=") (cast_expression "(uint)lVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar12"))) (; ";")) (if_statement "if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;" (if "if") (parenthesized_expression "((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0'))" (( "(") (binary_expression "(*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')" (parenthesized_expression "(*(char *)param_2[lVar12] == '-')" (( "(") (binary_expression "*(char *)param_2[lVar12] == '-'" (pointer_expression "*(char *)param_2[lVar12]" (* "*") (cast_expression "(char *)param_2[lVar12]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[lVar12]" (identifier "param_2") ([ "[") (identifier "lVar12") (] "]")))) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(((char *)param_2[lVar12])[1] != '\0')" (( "(") (binary_expression "((char *)param_2[lVar12])[1] != '\0'" (subscript_expression "((char *)param_2[lVar12])[1]" (parenthesized_expression "((char *)param_2[lVar12])" (( "(") (cast_expression "(char *)param_2[lVar12]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[lVar12]" (identifier "param_2") ([ "[") (identifier "lVar12") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "lVar12 = lVar12 + 1;" (assignment_expression "lVar12 = lVar12 + 1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + 1" (identifier "lVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)lVar12 < (int)param_1)" (( "(") (binary_expression "(int)lVar12 < (int)param_1" (cast_expression "(int)lVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar12")) (< "<") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (; ";")) (} "}"))) (expression_statement "param_7[0xd] = uVar6;" (assignment_expression "param_7[0xd] = uVar6" (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" (identifier "uVar6") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "bVar22 = uVar6 < param_1;" (assignment_expression "bVar22 = uVar6 < param_1" (identifier "bVar22") (= "=") (binary_expression "uVar6 < param_1" (identifier "uVar6") (< "<") (identifier "param_1"))) (; ";")) (expression_statement "bVar23 = uVar6 == param_1;" (assignment_expression "bVar23 = uVar6 == param_1" (identifier "bVar23") (= "=") (binary_expression "uVar6 == param_1" (identifier "uVar6") (== "==") (identifier "param_1"))) (; ";")) (if_statement "if (!bVar23) {\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n      pbVar3 = (byte *)param_2[(int)uVar6];\n      lVar12 = 3;\n      pbVar16 = pbVar3;\n      pbVar17 = &DAT_0010b4bb;\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }\n      uVar6 = uVar6 + 1;\n      *param_7 = uVar6;\n      uVar5 = param_7[0xd];\n      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }\n      param_7[0xd] = param_1;\n      *param_7 = param_1;\n    }" ({ "{") (expression_statement "pbVar3 = (byte *)param_2[(int)uVar6];" (assignment_expression "pbVar3 = (byte *)param_2[(int)uVar6]" (identifier "pbVar3") (= "=") (cast_expression "(byte *)param_2[(int)uVar6]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[(int)uVar6]" (identifier "param_2") ([ "[") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (] "]")))) (; ";")) (expression_statement "lVar12 = 3;" (assignment_expression "lVar12 = 3" (identifier "lVar12") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar16 = pbVar3;" (assignment_expression "pbVar16 = pbVar3" (identifier "pbVar16") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar17 = &DAT_0010b4bb;" (assignment_expression "pbVar17 = &DAT_0010b4bb" (identifier "pbVar17") (= "=") (pointer_expression "&DAT_0010b4bb" (& "&") (identifier "DAT_0010b4bb"))) (; ";")) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);" (do "do") (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar22 = *pbVar16 < *pbVar17;\n        bVar23 = *pbVar16 == *pbVar17;\n        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar16 < *pbVar17;" (assignment_expression "bVar22 = *pbVar16 < *pbVar17" (identifier "bVar22") (= "=") (binary_expression "*pbVar16 < *pbVar17" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "bVar23 = *pbVar16 == *pbVar17;" (assignment_expression "bVar23 = *pbVar16 == *pbVar17" (identifier "bVar23") (= "=") (binary_expression "*pbVar16 == *pbVar17" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar24 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (if_statement "if ((!bVar22 && !bVar23) != bVar22) {\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }" (if "if") (parenthesized_expression "((!bVar22 && !bVar23) != bVar22)" (( "(") (binary_expression "(!bVar22 && !bVar23) != bVar22" (parenthesized_expression "(!bVar22 && !bVar23)" (( "(") (binary_expression "!bVar22 && !bVar23" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (!= "!=") (identifier "bVar22")) () ")")) (compound_statement "{\n        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }\n        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;\n        goto LAB_00108d36;\n      }" ({ "{") (if_statement "if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }" (if "if") (parenthesized_expression "((*pbVar3 != 0x2d) || (pbVar3[1] == 0))" (( "(") (binary_expression "(*pbVar3 != 0x2d) || (pbVar3[1] == 0)" (parenthesized_expression "(*pbVar3 != 0x2d)" (( "(") (binary_expression "*pbVar3 != 0x2d" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (!= "!=") (number_literal "0x2d")) () ")")) (|| "||") (parenthesized_expression "(pbVar3[1] == 0)" (( "(") (binary_expression "pbVar3[1] == 0" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }\n          goto LAB_001098ef;\n        }" ({ "{") (if_statement "if (param_7[10] == 0) {\n            iVar7 = -1;\n          }\n          else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" (if "if") (parenthesized_expression "(param_7[10] == 0)" (( "(") (binary_expression "param_7[10] == 0" (subscript_expression "param_7[10]" (identifier "param_7") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar7 = -1;\n          }" ({ "{") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" (else "else") (compound_statement "{\n            *param_7 = uVar6 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            iVar7 = 1;\n          }" ({ "{") (expression_statement "*param_7 = uVar6 + 1;" (assignment_expression "*param_7 = uVar6 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" (* "*") (cast_expression "(undefined8 *)(param_7 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_2[(int)uVar6]" (identifier "param_2") ([ "[") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (] "]"))) (; ";")) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "*(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;" (assignment_expression "*(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1" (pointer_expression "*(byte **)(param_7 + 8)" (* "*") (cast_expression "(byte **)(param_7 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1" (binary_expression "pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" (identifier "pbVar3") (+ "+") (call_expression "(ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_4 != (long *)0x0 && pbVar3[1] == 0x2d)" (( "(") (binary_expression "param_4 != (long *)0x0 && pbVar3[1] == 0x2d" (binary_expression "param_4 != (long *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "pbVar3[1] == 0x2d" (subscript_expression "pbVar3[1]" (identifier "pbVar3") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x2d"))) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00108d36;" (goto "goto") (statement_identifier "LAB_00108d36") (; ";")) (} "}"))) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar5 = param_7[0xd];" (assignment_expression "uVar5 = param_7[0xd]" (identifier "uVar5") (= "=") (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (if_statement "if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }\n      else {\n        FUN_00108a11(param_2,param_7);\n      }" (if "if") (parenthesized_expression "((uVar6 == uVar5) || (param_7[0xc] == uVar5))" (( "(") (binary_expression "(uVar6 == uVar5) || (param_7[0xc] == uVar5)" (parenthesized_expression "(uVar6 == uVar5)" (( "(") (binary_expression "uVar6 == uVar5" (identifier "uVar6") (== "==") (identifier "uVar5")) () ")")) (|| "||") (parenthesized_expression "(param_7[0xc] == uVar5)" (( "(") (binary_expression "param_7[0xc] == uVar5" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (== "==") (identifier "uVar5")) () ")"))) () ")")) (compound_statement "{\n        if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }\n      }" ({ "{") (if_statement "if (param_7[0xc] == uVar5) {\n          param_7[0xc] = uVar6;\n        }" (if "if") (parenthesized_expression "(param_7[0xc] == uVar5)" (( "(") (binary_expression "param_7[0xc] == uVar5" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\n          param_7[0xc] = uVar6;\n        }" ({ "{") (expression_statement "param_7[0xc] = uVar6;" (assignment_expression "param_7[0xc] = uVar6" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        FUN_00108a11(param_2,param_7);\n      }" (else "else") (compound_statement "{\n        FUN_00108a11(param_2,param_7);\n      }" ({ "{") (expression_statement "FUN_00108a11(param_2,param_7);" (call_expression "FUN_00108a11(param_2,param_7)" (identifier "FUN_00108a11") (argument_list "(param_2,param_7)" (( "(") (identifier "param_2") (, ",") (identifier "param_7") () ")"))) (; ";")) (} "}")))) (expression_statement "param_7[0xd] = param_1;" (assignment_expression "param_7[0xd] = param_1" (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*param_7 = param_1;" (assignment_expression "*param_7 = param_1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "param_1")) (; ";")) (} "}"))) (if_statement "if (param_7[0xc] == param_7[0xd]) {\n      iVar7 = -1;\n    }\n    else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" (if "if") (parenthesized_expression "(param_7[0xc] == param_7[0xd])" (( "(") (binary_expression "param_7[0xc] == param_7[0xd]" (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]")) (== "==") (subscript_expression "param_7[0xd]" (identifier "param_7") ([ "[") (number_literal "0xd") (] "]"))) () ")")) (compound_statement "{\n      iVar7 = -1;\n    }" ({ "{") (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" (else "else") (compound_statement "{\n      *param_7 = param_7[0xc];\n      iVar7 = -1;\n    }" ({ "{") (expression_statement "*param_7 = param_7[0xc];" (assignment_expression "*param_7 = param_7[0xc]" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (subscript_expression "param_7[0xc]" (identifier "param_7") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "iVar7 = -1;" (assignment_expression "iVar7 = -1" (identifier "iVar7") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (labeled_statement "LAB_00108d36:\n  if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" (statement_identifier "LAB_00108d36") (: ":") (if_statement "if (param_4 != (long *)0x0) {\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" (if "if") (parenthesized_expression "(param_4 != (long *)0x0)" (( "(") (binary_expression "param_4 != (long *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    cVar14 = *(char *)(param_2[(int)*param_7] + 1);\n    if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }\n  }" ({ "{") (expression_statement "cVar14 = *(char *)(param_2[(int)*param_7] + 1);" (assignment_expression "cVar14 = *(char *)(param_2[(int)*param_7] + 1)" (identifier "cVar14") (= "=") (pointer_expression "*(char *)(param_2[(int)*param_7] + 1)" (* "*") (cast_expression "(char *)(param_2[(int)*param_7] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[(int)*param_7] + 1)" (( "(") (binary_expression "param_2[(int)*param_7] + 1" (subscript_expression "param_2[(int)*param_7]" (identifier "param_2") ([ "[") (cast_expression "(int)*param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (] "]")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if ((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }" (if "if") (parenthesized_expression "((cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))))" (( "(") (binary_expression "(cVar14 == '-') ||\n       ((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" (parenthesized_expression "(cVar14 == '-')" (( "(") (binary_expression "cVar14 == '-'" (identifier "cVar14") (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))" (( "(") (parenthesized_expression "(param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))))" (( "(") (binary_expression "param_6 != 0 &&\n        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))" (( "(") (parenthesized_expression "(*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0))" (( "(") (binary_expression "*(char *)(param_2[(int)*param_7] + 2) != '\0' ||\n         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" (binary_expression "*(char *)(param_2[(int)*param_7] + 2) != '\0'" (pointer_expression "*(char *)(param_2[(int)*param_7] + 2)" (* "*") (cast_expression "(char *)(param_2[(int)*param_7] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[(int)*param_7] + 2)" (( "(") (binary_expression "param_2[(int)*param_7] + 2" (subscript_expression "param_2[(int)*param_7]" (identifier "param_2") ([ "[") (cast_expression "(int)*param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (] "]")) (+ "+") (number_literal "2")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)" (( "(") (comma_expression "pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0" (assignment_expression "pcVar9 = strchr(local_b0,(int)cVar14)" (identifier "pcVar9") (= "=") (call_expression "strchr(local_b0,(int)cVar14)" (identifier "strchr") (argument_list "(local_b0,(int)cVar14)" (( "(") (identifier "local_b0") (, ",") (cast_expression "(int)cVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar14")) () ")")))) (, ",") (binary_expression "pcVar9 == (char *)0x0" (identifier "pcVar9") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      pcVar9 = *(char **)(param_7 + 8);\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }\n      if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }\n      if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }\n      *(char **)(param_7 + 8) = "";\n      *param_7 = *param_7 + 1;\n      param_7[2] = 0;\n      iVar7 = 0x3f;\n      goto LAB_001098ef;\n    }" ({ "{") (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" (identifier "pcVar20") (= "=") (identifier "pcVar9")) (; ";")) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" (while "while") (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" (( "(") (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" (( "(") (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(cVar14 != '=')" (( "(") (binary_expression "cVar14 != '='" (identifier "cVar14") (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) () ")")) (compound_statement "{\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" ({ "{") (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" (identifier "pcVar20") (= "=") (binary_expression "pcVar20 + 1" (identifier "pcVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" (identifier "cVar14") (= "=") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" (identifier "pcVar10") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }\n      else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_68 = -1;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = local_68;\n        plVar19 = (long *)0x0;\njoined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }\n      }" ({ "{") (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" (identifier "local_68") (= "=") (number_literal "-1")) (; ";")) (expression_statement "__ptr = (undefined8 *)0x0;" (assignment_expression "__ptr = (undefined8 *)0x0" (identifier "__ptr") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = local_68;" (assignment_expression "iVar7 = local_68" (identifier "iVar7") (= "=") (identifier "local_68")) (; ";")) (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" (identifier "plVar19") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "joined_r0x00109833:\n        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" (statement_identifier "joined_r0x00109833") (: ":") (while_statement "while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" (while "while") (parenthesized_expression "(local_68 = iVar7, __ptr != (undefined8 *)0x0)" (( "(") (comma_expression "local_68 = iVar7, __ptr != (undefined8 *)0x0" (assignment_expression "local_68 = iVar7" (identifier "local_68") (= "=") (identifier "iVar7")) (, ",") (binary_expression "__ptr != (undefined8 *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          puVar11 = (undefined8 *)__ptr[1];\n          free(__ptr);\n          __ptr = puVar11;\n          iVar7 = local_68;\n        }" ({ "{") (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)__ptr[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" (identifier "__ptr") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "iVar7 = local_68;" (assignment_expression "iVar7 = local_68" (identifier "iVar7") (= "=") (identifier "local_68")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" (else "else") (compound_statement "{\n        local_68 = -1;\n        bVar22 = false;\n        __ptr = (undefined8 *)0x0;\n        iVar7 = 0;\n        plVar18 = param_4;\n        plVar21 = (long *)0x0;\n        do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);\n        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\n      }" ({ "{") (expression_statement "local_68 = -1;" (assignment_expression "local_68 = -1" (identifier "local_68") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "__ptr = (undefined8 *)0x0;" (assignment_expression "__ptr = (undefined8 *)0x0" (identifier "__ptr") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar18 = param_4;" (assignment_expression "plVar18 = param_4" (identifier "plVar18") (= "=") (identifier "param_4")) (; ";")) (expression_statement "plVar21 = (long *)0x0;" (assignment_expression "plVar21 = (long *)0x0" (identifier "plVar21") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        } while (pcVar10 != (char *)0x0);" (do "do") (compound_statement "{\n          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;\n          plVar19 = plVar21;\n          iVar4 = local_68;\n          if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }\n          local_68 = iVar4;\n          plVar18 = plVar18 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*plVar18;\n          plVar21 = plVar19;\n        }" ({ "{") (expression_statement "iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)\n          ;" (assignment_expression "iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" (identifier "iVar8") (= "=") (call_expression "strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" (identifier "strncmp") (argument_list "(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)" (( "(") (identifier "pcVar10") (, ",") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (, ",") (binary_expression "(long)pcVar20 - (long)pcVar9 & 0xffffffff" (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar20")) (- "-") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "plVar19 = plVar21;" (assignment_expression "plVar19 = plVar21" (identifier "plVar19") (= "=") (identifier "plVar21")) (; ";")) (expression_statement "iVar4 = local_68;" (assignment_expression "iVar4 = local_68" (identifier "iVar4") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (iVar8 == 0) {\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            lVar12 = -1;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            plVar19 = plVar18;\n            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;\n            iVar4 = iVar7;\n            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "lVar12 = -1;" (assignment_expression "lVar12 = -1" (identifier "lVar12") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');" (do "do") (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              cVar14 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar14 = *pcVar10;" (assignment_expression "cVar14 = *pcVar10" (identifier "cVar14") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar24 * -2" (identifier "pcVar10") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "plVar19 = plVar18;" (assignment_expression "plVar19 = plVar18" (identifier "plVar19") (= "=") (identifier "plVar18")) (; ";")) (if_statement "if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;" (if "if") (parenthesized_expression "((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1)" (( "(") (binary_expression "(int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1" (cast_expression "(int)((long)pcVar20 - (long)pcVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((long)pcVar20 - (long)pcVar9)" (( "(") (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar20")) (- "-") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) () ")"))) (== "==") (binary_expression "~(uint)lVar12 - 1" (unary_expression "~(uint)lVar12" (~ "~") (cast_expression "(uint)lVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar12"))) (- "-") (number_literal "1"))) () ")")) (goto_statement "goto joined_r0x00109833;" (goto "goto") (statement_identifier "joined_r0x00109833") (; ";"))) (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" (identifier "iVar4") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }" (if "if") (parenthesized_expression "((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22))" (( "(") (binary_expression "(plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)" (parenthesized_expression "(plVar21 != (long *)0x0)" (( "(") (binary_expression "plVar21 != (long *)0x0" (identifier "plVar21") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(plVar19 = plVar21, iVar4 = local_68, !bVar22)" (( "(") (comma_expression "plVar19 = plVar21, iVar4 = local_68, !bVar22" (assignment_expression "plVar19 = plVar21" (identifier "plVar19") (= "=") (identifier "plVar21")) (, ",") (comma_expression "iVar4 = local_68, !bVar22" (assignment_expression "iVar4 = local_68" (identifier "iVar4") (= "=") (identifier "local_68")) (, ",") (unary_expression "!bVar22" (! "!") (identifier "bVar22")))) () ")"))) () ")")) (compound_statement "{\n              if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }\n            }" ({ "{") (if_statement "if ((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))) {\n                bVar22 = false;\n              }\n              else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" (if "if") (parenthesized_expression "((param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3]))))" (( "(") (binary_expression "(param_6 == 0) &&\n                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))" (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])))" (( "(") (parenthesized_expression "(((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3]))" (( "(") (binary_expression "((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&\n                  ((int)plVar21[3] == (int)plVar18[3])" (parenthesized_expression "((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2]))" (( "(") (binary_expression "(int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])" (binary_expression "(int)plVar21[1] == (int)plVar18[1]" (cast_expression "(int)plVar21[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar21[1]" (identifier "plVar21") ([ "[") (number_literal "1") (] "]"))) (== "==") (cast_expression "(int)plVar18[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar18[1]" (identifier "plVar18") ([ "[") (number_literal "1") (] "]")))) (&& "&&") (parenthesized_expression "(plVar21[2] == plVar18[2])" (( "(") (binary_expression "plVar21[2] == plVar18[2]" (subscript_expression "plVar21[2]" (identifier "plVar21") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "plVar18[2]" (identifier "plVar18") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((int)plVar21[3] == (int)plVar18[3])" (( "(") (binary_expression "(int)plVar21[3] == (int)plVar18[3]" (cast_expression "(int)plVar21[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar21[3]" (identifier "plVar21") ([ "[") (number_literal "3") (] "]"))) (== "==") (cast_expression "(int)plVar18[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar18[3]" (identifier "plVar18") ([ "[") (number_literal "3") (] "]")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                bVar22 = false;\n              }" ({ "{") (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" (else "else") (compound_statement "{\n                puVar11 = (undefined8 *)malloc(0x10);\n                if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }\n              }" ({ "{") (expression_statement "puVar11 = (undefined8 *)malloc(0x10);" (assignment_expression "puVar11 = (undefined8 *)malloc(0x10)" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)malloc(0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "malloc(0x10)" (identifier "malloc") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }\n                else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" (if "if") (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined8 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }\n                }" ({ "{") (if_statement "if (__ptr == (undefined8 *)0x0) {\n                    bVar22 = true;\n                  }\n                  else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" (if "if") (parenthesized_expression "(__ptr == (undefined8 *)0x0)" (( "(") (binary_expression "__ptr == (undefined8 *)0x0" (identifier "__ptr") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    bVar22 = true;\n                  }" ({ "{") (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" (identifier "bVar22") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" (else "else") (compound_statement "{\n                    do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);\n                    bVar22 = true;\n                  }" ({ "{") (do_statement "do {\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    } while (puVar11 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n                      puVar11 = (undefined8 *)__ptr[1];\n                      free(__ptr);\n                      __ptr = puVar11;\n                    }" ({ "{") (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)__ptr[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" (identifier "__ptr") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined8 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" (identifier "bVar22") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" (else "else") (compound_statement "{\n                  *puVar11 = plVar18;\n                  puVar11[1] = __ptr;\n                  __ptr = puVar11;\n                }" ({ "{") (expression_statement "*puVar11 = plVar18;" (assignment_expression "*puVar11 = plVar18" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (identifier "plVar18")) (; ";")) (expression_statement "puVar11[1] = __ptr;" (assignment_expression "puVar11[1] = __ptr" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "__ptr")) (; ";")) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" (identifier "__ptr") (= "=") (identifier "puVar11")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "local_68 = iVar4;" (assignment_expression "local_68 = iVar4" (identifier "local_68") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "plVar18 = plVar18 + 4;" (assignment_expression "plVar18 = plVar18 + 4" (identifier "plVar18") (= "=") (binary_expression "plVar18 + 4" (identifier "plVar18") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar10 = (char *)*plVar18;" (assignment_expression "pcVar10 = (char *)*plVar18" (identifier "pcVar10") (= "=") (cast_expression "(char *)*plVar18" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar18" (* "*") (identifier "plVar18")))) (; ";")) (expression_statement "plVar21 = plVar19;" (assignment_expression "plVar21 = plVar19" (identifier "plVar21") (= "=") (identifier "plVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar10 != (char *)0x0)" (( "(") (binary_expression "pcVar10 != (char *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if ((bVar22) || (__ptr != (undefined8 *)0x0)) {\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" (if "if") (parenthesized_expression "((bVar22) || (__ptr != (undefined8 *)0x0))" (( "(") (binary_expression "(bVar22) || (__ptr != (undefined8 *)0x0)" (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (|| "||") (parenthesized_expression "(__ptr != (undefined8 *)0x0)" (( "(") (binary_expression "__ptr != (undefined8 *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          param_7[2] = 0;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" ({ "{") (if_statement "if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }\n          else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" (if "if") (parenthesized_expression "((__ptr == (undefined8 *)0x0) || (uVar5 == 0))" (( "(") (binary_expression "(__ptr == (undefined8 *)0x0) || (uVar5 == 0)" (parenthesized_expression "(__ptr == (undefined8 *)0x0)" (( "(") (binary_expression "__ptr == (undefined8 *)0x0" (identifier "__ptr") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);\n          }" ({ "{") (if_statement "if ((!bVar22) || (uVar5 == 0)) {\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" (if "if") (parenthesized_expression "((!bVar22) || (uVar5 == 0))" (( "(") (binary_expression "(!bVar22) || (uVar5 == 0)" (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (|| "||") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              *param_7 = *param_7 + 1;\n              param_7[2] = 0;\n              if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }\n              goto LAB_001098ef;\n            }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" (do "do") (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (__ptr == (undefined8 *)0x0) {\n                iVar7 = 0x3f;\n              }\n              else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" (if "if") (parenthesized_expression "(__ptr == (undefined8 *)0x0)" (( "(") (binary_expression "__ptr == (undefined8 *)0x0" (identifier "__ptr") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                iVar7 = 0x3f;\n              }" ({ "{") (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (} "}")) (else_clause "else {\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" (else "else") (compound_statement "{\n                do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);\n                iVar7 = 0x3f;\n              }" ({ "{") (do_statement "do {\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                } while (puVar11 != (undefined8 *)0x0);" (do "do") (compound_statement "{\n                  puVar11 = (undefined8 *)__ptr[1];\n                  free(__ptr);\n                  __ptr = puVar11;\n                }" ({ "{") (expression_statement "puVar11 = (undefined8 *)__ptr[1];" (assignment_expression "puVar11 = (undefined8 *)__ptr[1]" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)__ptr[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__ptr = puVar11;" (assignment_expression "__ptr = puVar11" (identifier "__ptr") (= "=") (identifier "puVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar11 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 != (undefined8 *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (} "}")))) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7])" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,\n                          param_2[(int)*param_7])" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'%s\' is ambiguous\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " is ambiguous") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[(int)*param_7]" (identifier "param_2") ([ "[") (cast_expression "(int)*param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" (else "else") (compound_statement "{\n            local_58 = plVar19;\n            local_50 = __ptr;\n            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);\n            pplVar15 = &local_58;\n            do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);\n            fputc(10,stderr);\n          }" ({ "{") (expression_statement "local_58 = plVar19;" (assignment_expression "local_58 = plVar19" (identifier "local_58") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "local_50 = __ptr;" (assignment_expression "local_50 = __ptr" (identifier "local_50") (= "=") (identifier "__ptr")) (; ";")) (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7]);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7])" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,\n                          param_2[(int)*param_7])" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'%s\' is ambiguous; possibilities:"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " is ambiguous; possibilities:") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[(int)*param_7]" (identifier "param_2") ([ "[") (cast_expression "(int)*param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (] "]")) () ")"))) (; ";")) (expression_statement "pplVar15 = &local_58;" (assignment_expression "pplVar15 = &local_58" (identifier "pplVar15") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (do_statement "do {\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            } while (pplVar15 != (long **)0x0);" (do "do") (compound_statement "{\n              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);\n              pplVar15 = (long **)pplVar15[1];\n            }" ({ "{") (expression_statement "__fprintf_chk(stderr,1," \'--%s\'",**pplVar15);" (call_expression "__fprintf_chk(stderr,1," \'--%s\'",**pplVar15)" (identifier "__fprintf_chk") (argument_list "(stderr,1," \'--%s\'",**pplVar15)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal "" \'--%s\'"" (" """) (string_content " ") (escape_sequence "\'") (string_content "--%s") (escape_sequence "\'") (" """)) (, ",") (pointer_expression "**pplVar15" (* "*") (pointer_expression "*pplVar15" (* "*") (identifier "pplVar15"))) () ")"))) (; ";")) (expression_statement "pplVar15 = (long **)pplVar15[1];" (assignment_expression "pplVar15 = (long **)pplVar15[1]" (identifier "pplVar15") (= "=") (cast_expression "(long **)pplVar15[1]" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "pplVar15[1]" (identifier "pplVar15") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pplVar15 != (long **)0x0)" (( "(") (binary_expression "pplVar15 != (long **)0x0" (identifier "pplVar15") (!= "!=") (cast_expression "(long **)0x0" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "fputc(10,stderr);" (call_expression "fputc(10,stderr)" (identifier "fputc") (argument_list "(10,stderr)" (( "(") (number_literal "10") (, ",") (identifier "stderr") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" (do "do") (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (} "}")))) (if_statement "if (plVar19 != (long *)0x0) {\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }" (if "if") (parenthesized_expression "(plVar19 != (long *)0x0)" (( "(") (binary_expression "plVar19 != (long *)0x0" (identifier "plVar19") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar2 = *param_7;\n        uVar6 = uVar2 + 1;\n        *param_7 = uVar6;\n        if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }\n        uVar13 = 0xffffffffffffffff;\n        pcVar9 = *(char **)(param_7 + 8);\n        do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');\n        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n        if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }\n        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }\n        goto LAB_001098ef;\n      }" ({ "{") (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" (identifier "uVar2") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (expression_statement "uVar6 = uVar2 + 1;" (assignment_expression "uVar6 = uVar2 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_7 = uVar6;" (assignment_expression "*param_7 = uVar6" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (*pcVar20 == '\0') {\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }\n        else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" (if "if") (parenthesized_expression "(*pcVar20 == '\0')" (( "(") (binary_expression "*pcVar20 == '\0'" (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }\n        }" ({ "{") (if_statement "if ((int)plVar19[1] == 1) {\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }" (if "if") (parenthesized_expression "((int)plVar19[1] == 1)" (( "(") (binary_expression "(int)plVar19[1] == 1" (cast_expression "(int)plVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar19[1]" (identifier "plVar19") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }\n            *param_7 = uVar2 + 2;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n          }" ({ "{") (if_statement "if ((int)param_1 <= (int)uVar6) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" (if "if") (parenthesized_expression "((int)param_1 <= (int)uVar6)" (( "(") (binary_expression "(int)param_1 <= (int)uVar6" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (<= "<=") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6"))) () ")")) (compound_statement "{\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              param_7[2] = *(uint *)(plVar19 + 3);\n              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n              goto LAB_001098ef;\n            }" ({ "{") (if_statement "if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);\n              }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,\n                              *plVar19)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'--%s\' requires an argument\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "--%s") (escape_sequence "\'") (string_content " requires an argument") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (pointer_expression "*plVar19" (* "*") (identifier "plVar19")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" (do "do") (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_7[2] = *(uint *)(plVar19 + 3);" (assignment_expression "param_7[2] = *(uint *)(plVar19 + 3)" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(uint *)(plVar19 + 3)" (* "*") (cast_expression "(uint *)(plVar19 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar19 + 3)" (( "(") (binary_expression "plVar19 + 3" (identifier "plVar19") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a" (identifier "iVar7") (= "=") (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*local_b0 != ':')" (( "(") (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")"))) (* "*") (number_literal "5")) (+ "+") (number_literal "0x3a"))) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "*param_7 = uVar2 + 2;" (assignment_expression "*param_7 = uVar2 + 2" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" (* "*") (cast_expression "(undefined8 *)(param_7 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_2[(int)uVar6]" (identifier "param_2") ([ "[") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (] "]"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" (else "else") (compound_statement "{\n          if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }\n          *(char **)(param_7 + 4) = pcVar20 + 1;\n        }" ({ "{") (if_statement "if ((int)plVar19[1] == 0) {\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }" (if "if") (parenthesized_expression "((int)plVar19[1] == 0)" (( "(") (binary_expression "(int)plVar19[1] == 0" (cast_expression "(int)plVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar19[1]" (identifier "plVar19") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }\n            uVar13 = 0xffffffffffffffff;\n            pcVar9 = *(char **)(param_7 + 8);\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');\n            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n            param_7[2] = *(uint *)(plVar19 + 3);\n            iVar7 = 0x3f;\n            goto LAB_001098ef;\n          }" ({ "{") (if_statement "if (uVar5 != 0) {\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }\n            }" ({ "{") (if_statement "if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }\n              else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" (if "if") (parenthesized_expression "(((char *)param_2[(long)(int)uVar6 + -1])[1] == '-')" (( "(") (binary_expression "((char *)param_2[(long)(int)uVar6 + -1])[1] == '-'" (subscript_expression "((char *)param_2[(long)(int)uVar6 + -1])[1]" (parenthesized_expression "((char *)param_2[(long)(int)uVar6 + -1])" (( "(") (cast_expression "(char *)param_2[(long)(int)uVar6 + -1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[(long)(int)uVar6 + -1]" (identifier "param_2") ([ "[") (binary_expression "(long)(int)uVar6 + -1" (cast_expression "(long)(int)uVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6"))) (+ "+") (number_literal "-1")) (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);\n              }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,\n                              *plVar19)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'--%s\' doesn\'t allow an argument\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "--%s") (escape_sequence "\'") (string_content " doesn") (escape_sequence "\'") (string_content "t allow an argument") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (pointer_expression "*plVar19" (* "*") (identifier "plVar19")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" (else "else") (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);\n              }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,\n                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'%c%s\' doesn\'t allow an argument\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "%c%s") (escape_sequence "\'") (string_content " doesn") (escape_sequence "\'") (string_content "t allow an argument") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (cast_expression "(int)*(char *)param_2[(long)(int)uVar6 + -1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)param_2[(long)(int)uVar6 + -1]" (* "*") (cast_expression "(char *)param_2[(long)(int)uVar6 + -1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[(long)(int)uVar6 + -1]" (identifier "param_2") ([ "[") (binary_expression "(long)(int)uVar6 + -1" (cast_expression "(long)(int)uVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6"))) (+ "+") (number_literal "-1")) (] "]"))))) (, ",") (pointer_expression "*plVar19" (* "*") (identifier "plVar19")) () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            } while (cVar14 != '\0');" (do "do") (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar14 = *pcVar9;\n              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_7[2] = *(uint *)(plVar19 + 3);" (assignment_expression "param_7[2] = *(uint *)(plVar19 + 3)" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(uint *)(plVar19 + 3)" (* "*") (cast_expression "(uint *)(plVar19 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar19 + 3)" (( "(") (binary_expression "plVar19 + 3" (identifier "plVar19") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "*(char **)(param_7 + 4) = pcVar20 + 1;" (assignment_expression "*(char **)(param_7 + 4) = pcVar20 + 1" (pointer_expression "*(char **)(param_7 + 4)" (* "*") (cast_expression "(char **)(param_7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "pcVar20 + 1" (identifier "pcVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        } while (cVar14 != '\0');" (do "do") (compound_statement "{\n          if (uVar13 == 0) break;\n          uVar13 = uVar13 - 1;\n          cVar14 = *pcVar9;\n          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n        }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_5 != (int *)0x0) {\n          *param_5 = local_68;\n        }" (if "if") (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *param_5 = local_68;\n        }" ({ "{") (expression_statement "*param_5 = local_68;" (assignment_expression "*param_5 = local_68" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "local_68")) (; ";")) (} "}"))) (if_statement "if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {\n          iVar7 = (int)plVar19[3];\n        }\n        else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" (if "if") (parenthesized_expression "((undefined4 *)plVar19[2] == (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)plVar19[2] == (undefined4 *)0x0" (cast_expression "(undefined4 *)plVar19[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar19[2]" (identifier "plVar19") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar7 = (int)plVar19[3];\n        }" ({ "{") (expression_statement "iVar7 = (int)plVar19[3];" (assignment_expression "iVar7 = (int)plVar19[3]" (identifier "iVar7") (= "=") (cast_expression "(int)plVar19[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar19[3]" (identifier "plVar19") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)plVar19[2] = (int)plVar19[3];\n          iVar7 = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)plVar19[2] = (int)plVar19[3];" (assignment_expression "*(undefined4 *)plVar19[2] = (int)plVar19[3]" (pointer_expression "*(undefined4 *)plVar19[2]" (* "*") (cast_expression "(undefined4 *)plVar19[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar19[2]" (identifier "plVar19") ([ "[") (number_literal "2") (] "]")))) (= "=") (cast_expression "(int)plVar19[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar19[3]" (identifier "plVar19") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (if_statement "if (param_6 == 0) {\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }\n      else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }\n      }" ({ "{") (if_statement "if (uVar5 != 0) {\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar9 = (char *)param_2[(int)*param_7];\n          if (pcVar9[1] == '-') goto LAB_001097e1;\nLAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));\n        }" ({ "{") (expression_statement "pcVar9 = (char *)param_2[(int)*param_7];" (assignment_expression "pcVar9 = (char *)param_2[(int)*param_7]" (identifier "pcVar9") (= "=") (cast_expression "(char *)param_2[(int)*param_7]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[(int)*param_7]" (identifier "param_2") ([ "[") (cast_expression "(int)*param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (] "]")))) (; ";")) (if_statement "if (pcVar9[1] == '-') goto LAB_001097e1;" (if "if") (parenthesized_expression "(pcVar9[1] == '-')" (( "(") (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" (identifier "pcVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (goto_statement "goto LAB_001097e1;" (goto "goto") (statement_identifier "LAB_001097e1") (; ";"))) (labeled_statement "LAB_00109263:\n          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));" (statement_identifier "LAB_00109263") (: ":") (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8));" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8))" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,\n                        *(undefined8 *)(param_7 + 8))" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: unrecognized option \'%c%s\'\n"" (" """) (string_content "%s: unrecognized option ") (escape_sequence "\'") (string_content "%c%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (cast_expression "(int)*pcVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (, ",") (pointer_expression "*(undefined8 *)(param_7 + 8)" (* "*") (cast_expression "(undefined8 *)(param_7 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" (else "else") (compound_statement "{\n        pcVar9 = (char *)param_2[(int)*param_7];\n        if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }\n      }" ({ "{") (expression_statement "pcVar9 = (char *)param_2[(int)*param_7];" (assignment_expression "pcVar9 = (char *)param_2[(int)*param_7]" (identifier "pcVar9") (= "=") (cast_expression "(char *)param_2[(int)*param_7]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[(int)*param_7]" (identifier "param_2") ([ "[") (cast_expression "(int)*param_7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (] "]")))) (; ";")) (if_statement "if (pcVar9[1] == '-') {\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }\n        else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" (if "if") (parenthesized_expression "(pcVar9[1] == '-')" (( "(") (binary_expression "pcVar9[1] == '-'" (subscript_expression "pcVar9[1]" (identifier "pcVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (compound_statement "{\n          if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }\n        }" ({ "{") (if_statement "if (uVar5 != 0) {\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));\n          }" ({ "{") (labeled_statement "LAB_001097e1:\n            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));" (statement_identifier "LAB_001097e1") (: ":") (expression_statement "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8));" (call_expression "__fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8))" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,\n                          *(undefined8 *)(param_7 + 8))" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: unrecognized option \'--%s\'\n"" (" """) (string_content "%s: unrecognized option ") (escape_sequence "\'") (string_content "--%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (pointer_expression "*(undefined8 *)(param_7 + 8)" (* "*") (cast_expression "(undefined8 *)(param_7 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" (else "else") (compound_statement "{\n          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));\n          if (pcVar20 != (char *)0x0) goto LAB_00108d74;\n          if (uVar5 != 0) goto LAB_00109263;\n        }" ({ "{") (expression_statement "pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));" (assignment_expression "pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8))" (identifier "pcVar20") (= "=") (call_expression "strchr(local_b0,(int)**(char **)(param_7 + 8))" (identifier "strchr") (argument_list "(local_b0,(int)**(char **)(param_7 + 8))" (( "(") (identifier "local_b0") (, ",") (cast_expression "(int)**(char **)(param_7 + 8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "**(char **)(param_7 + 8)" (* "*") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))))) () ")")))) (; ";")) (if_statement "if (pcVar20 != (char *)0x0) goto LAB_00108d74;" (if "if") (parenthesized_expression "(pcVar20 != (char *)0x0)" (( "(") (binary_expression "pcVar20 != (char *)0x0" (identifier "pcVar20") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00108d74;" (goto "goto") (statement_identifier "LAB_00108d74") (; ";"))) (if_statement "if (uVar5 != 0) goto LAB_00109263;" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00109263;" (goto "goto") (statement_identifier "LAB_00109263") (; ";"))) (} "}")))) (} "}")))) (expression_statement "*(char **)(param_7 + 8) = "";" (assignment_expression "*(char **)(param_7 + 8) = """ (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_7[2] = 0;" (assignment_expression "param_7[2] = 0" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00108d74:\n  pcVar20 = *(char **)(param_7 + 8);" (statement_identifier "LAB_00108d74") (: ":") (expression_statement "pcVar20 = *(char **)(param_7 + 8);" (assignment_expression "pcVar20 = *(char **)(param_7 + 8)" (identifier "pcVar20") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "pcVar9 = pcVar20 + 1;" (assignment_expression "pcVar9 = pcVar20 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar20 + 1" (identifier "pcVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(char **)(param_7 + 8) = pcVar9;" (assignment_expression "*(char **)(param_7 + 8) = pcVar9" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" (identifier "cVar14") (= "=") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20"))) (; ";")) (expression_statement "uVar6 = (uint)cVar14;" (assignment_expression "uVar6 = (uint)cVar14" (identifier "uVar6") (= "=") (cast_expression "(uint)cVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "cVar14"))) (; ";")) (expression_statement "pcVar10 = strchr(local_b0,uVar6);" (assignment_expression "pcVar10 = strchr(local_b0,uVar6)" (identifier "pcVar10") (= "=") (call_expression "strchr(local_b0,uVar6)" (identifier "strchr") (argument_list "(local_b0,uVar6)" (( "(") (identifier "local_b0") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (pcVar20[1] == '\0') {\n    *param_7 = *param_7 + 1;\n  }" (if "if") (parenthesized_expression "(pcVar20[1] == '\0')" (( "(") (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" (identifier "pcVar20") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *param_7 = *param_7 + 1;\n  }" ({ "{") (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }\n  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" (if "if") (parenthesized_expression "(((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0))" (( "(") (binary_expression "((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)" (parenthesized_expression "((byte)(cVar14 - 0x3aU) < 2)" (( "(") (binary_expression "(byte)(cVar14 - 0x3aU) < 2" (call_expression "(byte)(cVar14 - 0x3aU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar14 - 0x3aU)" (( "(") (binary_expression "cVar14 - 0x3aU" (identifier "cVar14") (- "-") (number_literal "0x3aU")) () ")"))) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }\n    param_7[2] = uVar6;\n    iVar7 = 0x3f;\n  }" ({ "{") (if_statement "if (uVar5 != 0) {\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);\n    }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: invalid option -- \'%c\'\n"" (" """) (string_content "%s: invalid option -- ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (} "}")) (else_clause "else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" (else "else") (if_statement "if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }\n  else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" (if "if") (parenthesized_expression "((*pcVar10 == 'W') && (pcVar10[1] == ';'))" (( "(") (binary_expression "(*pcVar10 == 'W') && (pcVar10[1] == ';')" (parenthesized_expression "(*pcVar10 == 'W')" (( "(") (binary_expression "*pcVar10 == 'W'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (== "==") (char_literal "'W'" (' "'") (character "W") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar10[1] == ';')" (( "(") (binary_expression "pcVar10[1] == ';'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }\n    param_7[8] = 0;\n    param_7[9] = 0;\n    iVar7 = 0x57;\n  }" ({ "{") (if_statement "if (param_4 != (long *)0x0) {\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(param_4 != (long *)0x0)" (( "(") (binary_expression "param_4 != (long *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }\n      pcVar9 = *(char **)(param_7 + 4);\n      *(char **)(param_7 + 8) = pcVar9;\n      cVar14 = *pcVar9;\n      pcVar20 = pcVar9;\n      while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }\n      pcVar10 = (char *)*param_4;\n      if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }\n    }" ({ "{") (if_statement "if (pcVar20[1] == '\0') {\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }\n      else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" (if "if") (parenthesized_expression "(pcVar20[1] == '\0')" (( "(") (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" (identifier "pcVar20") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar2 = *param_7;\n        if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }\n        *param_7 = uVar2 + 1;\n        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n      }" ({ "{") (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" (identifier "uVar2") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (if_statement "if (uVar2 == param_1) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }" (if "if") (parenthesized_expression "(uVar2 == param_1)" (( "(") (binary_expression "uVar2 == param_1" (identifier "uVar2") (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }\n          param_7[2] = uVar6;\n          cVar14 = *local_b0;\n          if (*local_b0 != ':') {\n            cVar14 = '?';\n          }\n          iVar7 = (int)cVar14;\n          goto LAB_001098ef;\n        }" ({ "{") (if_statement "if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n          }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option requires an argument -- \'%c\'\n"" (" """) (string_content "%s: option requires an argument -- ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" (identifier "cVar14") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (if_statement "if (*local_b0 != ':') {\n            cVar14 = '?';\n          }" (if "if") (parenthesized_expression "(*local_b0 != ':')" (( "(") (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n            cVar14 = '?';\n          }" ({ "{") (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" (identifier "cVar14") (= "=") (char_literal "'?'" (' "'") (character "?") (' "'"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (int)cVar14;" (assignment_expression "iVar7 = (int)cVar14" (identifier "iVar7") (= "=") (cast_expression "(int)cVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar14"))) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "*param_7 = uVar2 + 1;" (assignment_expression "*param_7 = uVar2 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2]" (pointer_expression "*(undefined8 *)(param_7 + 4)" (* "*") (cast_expression "(undefined8 *)(param_7 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_2[(int)uVar2]" (identifier "param_2") ([ "[") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" (else "else") (compound_statement "{\n        *(char **)(param_7 + 4) = pcVar9;\n        *param_7 = *param_7 + 1;\n      }" ({ "{") (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" (* "*") (cast_expression "(char **)(param_7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "pcVar9 = *(char **)(param_7 + 4);" (assignment_expression "pcVar9 = *(char **)(param_7 + 4)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 4)" (* "*") (cast_expression "(char **)(param_7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(char **)(param_7 + 8) = pcVar9;" (assignment_expression "*(char **)(param_7 + 8) = pcVar9" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" (identifier "pcVar20") (= "=") (identifier "pcVar9")) (; ";")) (while_statement "while ((cVar14 != '\0' && (cVar14 != '='))) {\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" (while "while") (parenthesized_expression "((cVar14 != '\0' && (cVar14 != '=')))" (( "(") (parenthesized_expression "(cVar14 != '\0' && (cVar14 != '='))" (( "(") (binary_expression "cVar14 != '\0' && (cVar14 != '=')" (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(cVar14 != '=')" (( "(") (binary_expression "cVar14 != '='" (identifier "cVar14") (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) () ")")) (compound_statement "{\n        pcVar20 = pcVar20 + 1;\n        cVar14 = *pcVar20;\n      }" ({ "{") (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" (identifier "pcVar20") (= "=") (binary_expression "pcVar20 + 1" (identifier "pcVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" (identifier "cVar14") (= "=") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" (identifier "pcVar10") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (pcVar10 != (char *)0x0) {\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" (if "if") (parenthesized_expression "(pcVar10 != (char *)0x0)" (( "(") (binary_expression "pcVar10 != (char *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar7 = 0;\n        local_74 = 0;\n        plVar19 = (long *)0x0;\n        bVar22 = false;\n        do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);\n        param_4 = plVar18;\n        iVar7 = local_74;\n        if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }\nLAB_001094ec:\n        local_74 = iVar7;\n        if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }\n      }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar19 = (long *)0x0;" (assignment_expression "plVar19 = (long *)0x0" (identifier "plVar19") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (do_statement "do {\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        } while (pcVar10 != (char *)0x0);" (do "do") (compound_statement "{\n          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);\n          plVar18 = plVar19;\n          iVar4 = local_74;\n          bVar23 = bVar22;\n          if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }\n          local_74 = iVar4;\n          param_4 = param_4 + 4;\n          iVar7 = iVar7 + 1;\n          pcVar10 = (char *)*param_4;\n          plVar19 = plVar18;\n          bVar22 = bVar23;\n        }" ({ "{") (expression_statement "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);" (assignment_expression "iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" (identifier "iVar8") (= "=") (call_expression "strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" (identifier "strncmp") (argument_list "(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9)" (( "(") (identifier "pcVar10") (, ",") (identifier "pcVar9") (, ",") (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar20")) (- "-") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) () ")")))) (; ";")) (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" (identifier "plVar18") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" (identifier "iVar4") (= "=") (identifier "local_74")) (; ";")) (expression_statement "bVar23 = bVar22;" (assignment_expression "bVar23 = bVar22" (identifier "bVar23") (= "=") (identifier "bVar22")) (; ";")) (if_statement "if (iVar8 == 0) {\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = 0xffffffffffffffff;\n            do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');\n            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;\n            plVar18 = param_4;\n            iVar4 = iVar7;\n            if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }\n          }" ({ "{") (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (do_statement "do {\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            } while (cVar1 != '\0');" (do "do") (compound_statement "{\n              if (uVar13 == 0) break;\n              uVar13 = uVar13 - 1;\n              cVar1 = *pcVar10;\n              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;\n            }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar10;" (assignment_expression "cVar1 = *pcVar10" (identifier "cVar1") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar10 + (ulong)bVar24 * -2" (identifier "pcVar10") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;" (if "if") (parenthesized_expression "(((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1)" (( "(") (binary_expression "((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1" (parenthesized_expression "((long)pcVar20 - (long)pcVar9 & 0xffffffffU)" (( "(") (binary_expression "(long)pcVar20 - (long)pcVar9 & 0xffffffffU" (binary_expression "(long)pcVar20 - (long)pcVar9" (cast_expression "(long)pcVar20" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar20")) (- "-") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) (& "&") (number_literal "0xffffffffU")) () ")")) (== "==") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1"))) () ")")) (goto_statement "goto LAB_001094ec;" (goto "goto") (statement_identifier "LAB_001094ec") (; ";"))) (expression_statement "plVar18 = param_4;" (assignment_expression "plVar18 = param_4" (identifier "plVar18") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iVar4 = iVar7;" (assignment_expression "iVar4 = iVar7" (identifier "iVar4") (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (plVar19 != (long *)0x0) {\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }" (if "if") (parenthesized_expression "(plVar19 != (long *)0x0)" (( "(") (binary_expression "plVar19 != (long *)0x0" (identifier "plVar19") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }\n            }" ({ "{") (if_statement "if (param_6 == 0) {\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }\n              else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }\n              }" ({ "{") (if_statement "if ((int)plVar19[1] == (int)param_4[1]) {\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }\n                else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" (if "if") (parenthesized_expression "((int)plVar19[1] == (int)param_4[1])" (( "(") (binary_expression "(int)plVar19[1] == (int)param_4[1]" (cast_expression "(int)plVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar19[1]" (identifier "plVar19") ([ "[") (number_literal "1") (] "]"))) (== "==") (cast_expression "(int)param_4[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n                  if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }\n                }" ({ "{") (if_statement "if (plVar19[2] == param_4[2]) {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }\n                  else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" (if "if") (parenthesized_expression "(plVar19[2] == param_4[2])" (( "(") (binary_expression "plVar19[2] == param_4[2]" (subscript_expression "plVar19[2]" (identifier "plVar19") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                    if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }\n                  }" ({ "{") (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" (identifier "plVar18") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" (identifier "iVar4") (= "=") (identifier "local_74")) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (if_statement "if ((int)plVar19[3] == (int)param_4[3]) {\n                      bVar23 = bVar22;\n                    }" (if "if") (parenthesized_expression "((int)plVar19[3] == (int)param_4[3])" (( "(") (binary_expression "(int)plVar19[3] == (int)param_4[3]" (cast_expression "(int)plVar19[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar19[3]" (identifier "plVar19") ([ "[") (number_literal "3") (] "]"))) (== "==") (cast_expression "(int)param_4[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                      bVar23 = bVar22;\n                    }" ({ "{") (expression_statement "bVar23 = bVar22;" (assignment_expression "bVar23 = bVar22" (identifier "bVar23") (= "=") (identifier "bVar22")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" (else "else") (compound_statement "{\n                    plVar18 = plVar19;\n                    iVar4 = local_74;\n                    bVar23 = true;\n                  }" ({ "{") (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" (identifier "plVar18") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" (identifier "iVar4") (= "=") (identifier "local_74")) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" (else "else") (compound_statement "{\n                  plVar18 = plVar19;\n                  iVar4 = local_74;\n                  bVar23 = true;\n                }" ({ "{") (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" (identifier "plVar18") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" (identifier "iVar4") (= "=") (identifier "local_74")) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" (else "else") (compound_statement "{\n                plVar18 = plVar19;\n                iVar4 = local_74;\n                bVar23 = true;\n              }" ({ "{") (expression_statement "plVar18 = plVar19;" (assignment_expression "plVar18 = plVar19" (identifier "plVar18") (= "=") (identifier "plVar19")) (; ";")) (expression_statement "iVar4 = local_74;" (assignment_expression "iVar4 = local_74" (identifier "iVar4") (= "=") (identifier "local_74")) (; ";")) (expression_statement "bVar23 = true;" (assignment_expression "bVar23 = true" (identifier "bVar23") (= "=") (true "true")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "local_74 = iVar4;" (assignment_expression "local_74 = iVar4" (identifier "local_74") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "param_4 = param_4 + 4;" (assignment_expression "param_4 = param_4 + 4" (identifier "param_4") (= "=") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar10 = (char *)*param_4;" (assignment_expression "pcVar10 = (char *)*param_4" (identifier "pcVar10") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "plVar19 = plVar18;" (assignment_expression "plVar19 = plVar18" (identifier "plVar19") (= "=") (identifier "plVar18")) (; ";")) (expression_statement "bVar22 = bVar23;" (assignment_expression "bVar22 = bVar23" (identifier "bVar22") (= "=") (identifier "bVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar10 != (char *)0x0)" (( "(") (binary_expression "pcVar10 != (char *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "param_4 = plVar18;" (assignment_expression "param_4 = plVar18" (identifier "param_4") (= "=") (identifier "plVar18")) (; ";")) (expression_statement "iVar7 = local_74;" (assignment_expression "iVar7 = local_74" (identifier "iVar7") (= "=") (identifier "local_74")) (; ";")) (if_statement "if (bVar23) {\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" (if "if") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (compound_statement "{\n          if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar9 = *(char **)(param_7 + 8);\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n          *param_7 = *param_7 + 1;\n          iVar7 = 0x3f;\n          goto LAB_001098ef;\n        }" ({ "{") (if_statement "if (uVar5 != 0) {\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);\n          }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'-W %s\' is ambiguous\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "-W %s") (escape_sequence "\'") (string_content " is ambiguous") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (identifier "pcVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" (do "do") (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar9;\n            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n          }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (labeled_statement "LAB_001094ec:\n        local_74 = iVar7;" (statement_identifier "LAB_001094ec") (: ":") (expression_statement "local_74 = iVar7;" (assignment_expression "local_74 = iVar7" (identifier "local_74") (= "=") (identifier "iVar7")) (; ";"))) (if_statement "if (param_4 != (long *)0x0) {\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }" (if "if") (parenthesized_expression "(param_4 != (long *)0x0)" (( "(") (binary_expression "param_4 != (long *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }\n          uVar13 = 0xffffffffffffffff;\n          pcVar20 = pcVar9;\n          do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');\n          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);\n          if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }\n          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }\n          goto LAB_001098ef;\n        }" ({ "{") (if_statement "if (cVar14 == '\0') {\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }\n          else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" (if "if") (parenthesized_expression "(cVar14 == '\0')" (( "(") (binary_expression "cVar14 == '\0'" (identifier "cVar14") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }\n          }" ({ "{") (if_statement "if ((int)param_4[1] == 1) {\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }\n            else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" (if "if") (parenthesized_expression "((int)param_4[1] == 1)" (( "(") (binary_expression "(int)param_4[1] == 1" (cast_expression "(int)param_4[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              uVar6 = *param_7;\n              if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }\n              *param_7 = uVar6 + 1;\n              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];\n            }" ({ "{") (expression_statement "uVar6 = *param_7;" (assignment_expression "uVar6 = *param_7" (identifier "uVar6") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (if_statement "if ((int)param_1 <= (int)uVar6) {\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" (if "if") (parenthesized_expression "((int)param_1 <= (int)uVar6)" (( "(") (binary_expression "(int)param_1 <= (int)uVar6" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (<= "<=") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6"))) () ")")) (compound_statement "{\n                if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }\n                uVar13 = 0xffffffffffffffff;\n                pcVar9 = *(char **)(param_7 + 8);\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');\n                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;\n                goto LAB_001098ef;\n              }" ({ "{") (if_statement "if (uVar5 != 0) {\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);\n                }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,\n                                *param_4)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'-W %s\' requires an argument\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "-W %s") (escape_sequence "\'") (string_content " requires an argument") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                } while (cVar14 != '\0');" (do "do") (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar14 = *pcVar9;\n                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n                }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;" (assignment_expression "iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a" (identifier "iVar7") (= "=") (binary_expression "(uint)(*local_b0 != ':') * 5 + 0x3a" (binary_expression "(uint)(*local_b0 != ':') * 5" (call_expression "(uint)(*local_b0 != ':')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*local_b0 != ':')" (( "(") (binary_expression "*local_b0 != ':'" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")"))) (* "*") (number_literal "5")) (+ "+") (number_literal "0x3a"))) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "*param_7 = uVar6 + 1;" (assignment_expression "*param_7 = uVar6 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar6]" (pointer_expression "*(undefined8 *)(param_7 + 4)" (* "*") (cast_expression "(undefined8 *)(param_7 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_2[(int)uVar6]" (identifier "param_2") ([ "[") (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" (else "else") (compound_statement "{\n              param_7[4] = 0;\n              param_7[5] = 0;\n            }" ({ "{") (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" (identifier "param_7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" (else "else") (compound_statement "{\n            if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }\n            *(char **)(param_7 + 4) = pcVar20 + 1;\n          }" ({ "{") (if_statement "if ((int)param_4[1] == 0) {\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }" (if "if") (parenthesized_expression "((int)param_4[1] == 0)" (( "(") (binary_expression "(int)param_4[1] == 0" (cast_expression "(int)param_4[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }\n              uVar13 = 0xffffffffffffffff;\n              pcVar9 = *(char **)(param_7 + 8);\n              do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');\n              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);\n              iVar7 = 0x3f;\n              goto LAB_001098ef;\n            }" ({ "{") (if_statement "if (uVar5 != 0) {\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);\n              }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4);" (call_expression "__fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,\n                              *param_4)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option \'-W %s\' doesn\'t allow an argument\n"" (" """) (string_content "%s: option ") (escape_sequence "\'") (string_content "-W %s") (escape_sequence "\'") (string_content " doesn") (escape_sequence "\'") (string_content "t allow an argument") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar9 = *(char **)(param_7 + 8);" (assignment_expression "pcVar9 = *(char **)(param_7 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (do_statement "do {\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              } while (cVar14 != '\0');" (do "do") (compound_statement "{\n                if (uVar13 == 0) break;\n                uVar13 = uVar13 - 1;\n                cVar14 = *pcVar9;\n                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;\n              }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar9;" (assignment_expression "cVar14 = *pcVar9" (identifier "cVar14") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar24 * -2" (identifier "pcVar9") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(char **)(param_7 + 8) + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar7 = 0x3f;" (assignment_expression "iVar7 = 0x3f" (identifier "iVar7") (= "=") (number_literal "0x3f")) (; ";")) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (expression_statement "*(char **)(param_7 + 4) = pcVar20 + 1;" (assignment_expression "*(char **)(param_7 + 4) = pcVar20 + 1" (pointer_expression "*(char **)(param_7 + 4)" (* "*") (cast_expression "(char **)(param_7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "pcVar20 + 1" (identifier "pcVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar20 = pcVar9;" (assignment_expression "pcVar20 = pcVar9" (identifier "pcVar20") (= "=") (identifier "pcVar9")) (; ";")) (do_statement "do {\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          } while (cVar14 != '\0');" (do "do") (compound_statement "{\n            if (uVar13 == 0) break;\n            uVar13 = uVar13 - 1;\n            cVar14 = *pcVar20;\n            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;\n          }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *pcVar20;" (assignment_expression "cVar14 = *pcVar20" (identifier "cVar14") (= "=") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20"))) (; ";")) (expression_statement "pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1" (identifier "pcVar20") (= "=") (binary_expression "pcVar20 + (ulong)bVar24 * -2 + 1" (binary_expression "pcVar20 + (ulong)bVar24 * -2" (identifier "pcVar20") (+ "+") (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar24")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "*(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);" (assignment_expression "*(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1)" (pointer_expression "*(char **)(param_7 + 8)" (* "*") (cast_expression "(char **)(param_7 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 8)" (( "(") (binary_expression "param_7 + 8" (identifier "param_7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "pcVar9 + (~uVar13 - 1)" (identifier "pcVar9") (+ "+") (parenthesized_expression "(~uVar13 - 1)" (( "(") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_5 != (int *)0x0) {\n            *param_5 = local_74;\n          }" (if "if") (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *param_5 = local_74;\n          }" ({ "{") (expression_statement "*param_5 = local_74;" (assignment_expression "*param_5 = local_74" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "local_74")) (; ";")) (} "}"))) (if_statement "if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {\n            iVar7 = (int)param_4[3];\n          }\n          else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" (if "if") (parenthesized_expression "((undefined4 *)param_4[2] == (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)param_4[2] == (undefined4 *)0x0" (cast_expression "(undefined4 *)param_4[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar7 = (int)param_4[3];\n          }" ({ "{") (expression_statement "iVar7 = (int)param_4[3];" (assignment_expression "iVar7 = (int)param_4[3]" (identifier "iVar7") (= "=") (cast_expression "(int)param_4[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" (else "else") (compound_statement "{\n            *(undefined4 *)param_4[2] = (int)param_4[3];\n            iVar7 = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)param_4[2] = (int)param_4[3];" (assignment_expression "*(undefined4 *)param_4[2] = (int)param_4[3]" (pointer_expression "*(undefined4 *)param_4[2]" (* "*") (cast_expression "(undefined4 *)param_4[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")))) (= "=") (cast_expression "(int)param_4[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_001098ef;" (goto "goto") (statement_identifier "LAB_001098ef") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" (identifier "param_7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" (identifier "param_7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = 0x57;" (assignment_expression "iVar7 = 0x57" (identifier "iVar7") (= "=") (number_literal "0x57")) (; ";")) (} "}")) (else_clause "else {\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" (else "else") (compound_statement "{\n    if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }\n    iVar7 = (int)cVar14;\n  }" ({ "{") (if_statement "if (pcVar10[1] == ':') {\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }" (if "if") (parenthesized_expression "(pcVar10[1] == ':')" (( "(") (binary_expression "pcVar10[1] == ':'" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n      if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n    }" ({ "{") (if_statement "if (pcVar10[2] == ':') {\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }\n      else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" (if "if") (parenthesized_expression "(pcVar10[2] == ':')" (( "(") (binary_expression "pcVar10[2] == ':'" (subscript_expression "pcVar10[2]" (identifier "pcVar10") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n        if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" ({ "{") (if_statement "if (pcVar20[1] == '\0') {\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" (if "if") (parenthesized_expression "(pcVar20[1] == '\0')" (( "(") (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" (identifier "pcVar20") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          param_7[4] = 0;\n          param_7[5] = 0;\n        }" ({ "{") (expression_statement "param_7[4] = 0;" (assignment_expression "param_7[4] = 0" (subscript_expression "param_7[4]" (identifier "param_7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[5] = 0;" (assignment_expression "param_7[5] = 0" (subscript_expression "param_7[5]" (identifier "param_7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" (else "else") (compound_statement "{\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" ({ "{") (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" (* "*") (cast_expression "(char **)(param_7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" (identifier "param_7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" (identifier "param_7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" (else "else") (compound_statement "{\n        if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }\n        param_7[8] = 0;\n        param_7[9] = 0;\n      }" ({ "{") (if_statement "if (pcVar20[1] == '\0') {\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }\n        else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" (if "if") (parenthesized_expression "(pcVar20[1] == '\0')" (( "(") (binary_expression "pcVar20[1] == '\0'" (subscript_expression "pcVar20[1]" (identifier "pcVar20") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar2 = *param_7;\n          if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }\n        }" ({ "{") (expression_statement "uVar2 = *param_7;" (assignment_expression "uVar2 = *param_7" (identifier "uVar2") (= "=") (pointer_expression "*param_7" (* "*") (identifier "param_7"))) (; ";")) (if_statement "if (uVar2 == param_1) {\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }\n          else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" (if "if") (parenthesized_expression "(uVar2 == param_1)" (( "(") (binary_expression "uVar2 == param_1" (identifier "uVar2") (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n            if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }\n            param_7[2] = uVar6;\n            cVar14 = *local_b0;\n            if (cVar14 != ':') {\n              cVar14 = '?';\n            }\n          }" ({ "{") (if_statement "if (uVar5 != 0) {\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);\n            }" ({ "{") (expression_statement "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);" (call_expression "__fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" (identifier "__fprintf_chk") (argument_list "(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6)" (( "(") (identifier "stderr") (, ",") (number_literal "1") (, ",") (string_literal ""%s: option requires an argument -- \'%c\'\n"" (" """) (string_content "%s: option requires an argument -- ") (escape_sequence "\'") (string_content "%c") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "param_7[2] = uVar6;" (assignment_expression "param_7[2] = uVar6" (subscript_expression "param_7[2]" (identifier "param_7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "cVar14 = *local_b0;" (assignment_expression "cVar14 = *local_b0" (identifier "cVar14") (= "=") (pointer_expression "*local_b0" (* "*") (identifier "local_b0"))) (; ";")) (if_statement "if (cVar14 != ':') {\n              cVar14 = '?';\n            }" (if "if") (parenthesized_expression "(cVar14 != ':')" (( "(") (binary_expression "cVar14 != ':'" (identifier "cVar14") (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n              cVar14 = '?';\n            }" ({ "{") (expression_statement "cVar14 = '?';" (assignment_expression "cVar14 = '?'" (identifier "cVar14") (= "=") (char_literal "'?'" (' "'") (character "?") (' "'"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" (else "else") (compound_statement "{\n            *param_7 = uVar2 + 1;\n            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];\n          }" ({ "{") (expression_statement "*param_7 = uVar2 + 1;" (assignment_expression "*param_7 = uVar2 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];" (assignment_expression "*(undefined8 *)(param_7 + 4) = param_2[(int)uVar2]" (pointer_expression "*(undefined8 *)(param_7 + 4)" (* "*") (cast_expression "(undefined8 *)(param_7 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "param_2[(int)uVar2]" (identifier "param_2") ([ "[") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (] "]"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" (else "else") (compound_statement "{\n          *(char **)(param_7 + 4) = pcVar9;\n          *param_7 = *param_7 + 1;\n        }" ({ "{") (expression_statement "*(char **)(param_7 + 4) = pcVar9;" (assignment_expression "*(char **)(param_7 + 4) = pcVar9" (pointer_expression "*(char **)(param_7 + 4)" (* "*") (cast_expression "(char **)(param_7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_7 + 4)" (( "(") (binary_expression "param_7 + 4" (identifier "param_7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pcVar9")) (; ";")) (expression_statement "*param_7 = *param_7 + 1;" (assignment_expression "*param_7 = *param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "*param_7 + 1" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "param_7[8] = 0;" (assignment_expression "param_7[8] = 0" (subscript_expression "param_7[8]" (identifier "param_7") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_7[9] = 0;" (assignment_expression "param_7[9] = 0" (subscript_expression "param_7[9]" (identifier "param_7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar7 = (int)cVar14;" (assignment_expression "iVar7 = (int)cVar14" (identifier "iVar7") (= "=") (cast_expression "(int)cVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar14"))) (; ";")) (} "}")))))) (labeled_statement "LAB_001098ef:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_001098ef") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}")))

int function_1(int var_2,char **argv,char *var_6,type_1 *var_19,int *var_38,
                      int var_22,type_2 *d,int var_3)

{
  char var_39;
  type_3 var_13;
  int var_10;
  long var_40;
  type_4 *var_18;
  type_5 var_7;
  int var_20;
  int var_29;
  char *var_5;
  char *var_25;
  type_6 *var_32;
  long var_12;
  type_7 var_34;
  char var_21;
  type_4 *var_14;
  type_4 *var_15;
  type_1 *var_33;
  type_1 *var_37;
  int var_9;
  type_6 *var_26;
  char *var_24;
  type_1 *var_30;
  long var_1;
  bool var_16;
  bool bVar24;
  type_4 bVar25;
  char *local_b0;
  int local_74;
  int local_68;
  type_6 first;
  
  bVar25 = 0;
  var_40 = *(long *)(var_1 + 0x28);
  var_9 = d->rpl_opterr;
  if (var_2 < 1) {
    var_9 = -1;
    goto LAB_001098ef;
  }
  d->rpl_optarg = (char *)0x0;
  if (d->rpl_optind == 0) {
    d->rpl_optind = 1;
LAB_00108b56:
    d->__last_nonopt = d->rpl_optind;
    d->__first_nonopt = d->rpl_optind;
    d->__nextchar = (char *)0x0;
    var_7 = var_8;
    if (var_3 == 0) {
      var_5 = var_4("POSIXLY_CORRECT");
      var_7 = (type_5)(var_5 != (char *)0x0);
    }
    d->__posixly_correct = var_7;
    if (*var_6 == '-') {
      d->__ordering = RETURN_IN_ORDER;
      local_b0 = var_6 + 1;
    }
    else if (*var_6 == '+') {
      d->__ordering = var_17;
      local_b0 = var_6 + 1;
    }
    else {
      d->__ordering = var_7 ^ var_8;
      local_b0 = var_6;
    }
    d->__initialized = 1;
  }
  else {
    if (d->__initialized == 0) goto LAB_00108b56;
    local_b0 = var_6 + ((*var_6 - 0x2bU & 0xfd) == 0);
  }
  var_20 = 0;
  if (*local_b0 != ':') {
    var_20 = var_9;
  }
  if ((d->__nextchar == (char *)0x0) || (*d->__nextchar == '\0')) {
    var_9 = d->rpl_optind;
    if (var_9 < d->__last_nonopt) {
      d->__last_nonopt = var_9;
    }
    if (var_9 < d->__first_nonopt) {
      d->__first_nonopt = var_9;
    }
    if (d->__ordering == var_8) {
      var_10 = d->__last_nonopt;
      if ((d->__first_nonopt == var_10) || (var_9 == var_10)) {
        if (var_9 != var_10) {
          d->__first_nonopt = var_9;
        }
      }
      else {
        var_11(argv,d);
      }
      var_9 = d->rpl_optind;
      if (var_9 < var_2) {
        var_12 = (long)var_9;
        do {
          var_9 = (int)var_12;
          if ((*argv[var_12] == '-') && (argv[var_12][1] != '\0')) break;
          var_9 = var_9 + 1;
          d->rpl_optind = var_9;
          var_12 = var_12 + 1;
        } while ((int)var_12 < var_2);
      }
      d->__last_nonopt = var_9;
    }
    var_13 = d->rpl_optind;
    var_16 = var_13 < (type_3)var_2;
    bVar24 = var_13 == var_2;
    if (!bVar24) {
      var_18 = (type_4 *)argv[(int)var_13];
      var_12 = 3;
      var_14 = var_18;
      var_15 = &DAT_0010b4bb;
      do {
        if (var_12 == 0) break;
        var_12 = var_12 + -1;
        var_16 = *var_14 < *var_15;
        bVar24 = *var_14 == *var_15;
        var_14 = var_14 + (type_7)bVar25 * -2 + 1;
        var_15 = var_15 + (type_7)bVar25 * -2 + 1;
      } while (bVar24);
      if ((!var_16 && !bVar24) != var_16) {
        if ((*var_18 != 0x2d) || (var_18[1] == 0)) {
          if (d->__ordering == var_17) {
            var_9 = -1;
          }
          else {
            d->rpl_optind = var_13 + 1;
            d->rpl_optarg = argv[(int)var_13];
            var_9 = 1;
          }
          goto LAB_001098ef;
        }
        d->__nextchar =
             (char *)(var_18 + (type_7)(var_19 != (type_1 *)0x0 && var_18[1] == 0x2d) + 1);
        goto LAB_00108d36;
      }
      var_20 = var_13 + 1;
      d->rpl_optind = var_20;
      var_9 = d->__last_nonopt;
      if ((var_20 == var_9) || (d->__first_nonopt == var_9)) {
        if (d->__first_nonopt == var_9) {
          d->__first_nonopt = var_20;
        }
      }
      else {
        var_11(argv,d);
      }
      d->__last_nonopt = var_2;
      d->rpl_optind = var_2;
    }
    if (d->__first_nonopt == d->__last_nonopt) {
      var_9 = -1;
    }
    else {
      d->rpl_optind = d->__first_nonopt;
      var_9 = -1;
    }
    goto LAB_001098ef;
  }
LAB_00108d36:
  if (var_19 != (type_1 *)0x0) {
    var_21 = argv[d->rpl_optind][1];
    if ((var_21 == '-') ||
       ((var_22 != 0 &&
        ((argv[d->rpl_optind][2] != '\0' ||
         (var_5 = var_23(local_b0,(int)var_21), var_5 == (char *)0x0)))))) {
      var_5 = d->__nextchar;
      var_21 = *var_5;
      var_24 = var_5;
      while ((var_21 != '\0' && (var_21 != '='))) {
        var_24 = var_24 + 1;
        var_21 = *var_24;
      }
      var_25 = var_19->name;
      if (var_25 == (char *)0x0) {
        local_68 = -1;
        var_26 = (type_6 *)0x0;
        var_9 = local_68;
        var_37 = (type_1 *)0x0;
joined_r0x00109833:
        while (local_68 = var_9, var_26 != (type_6 *)0x0) {
          var_32 = var_26->next;
          var_27(var_26);
          var_26 = var_32;
          var_9 = local_68;
        }
      }
      else {
        local_68 = -1;
        var_16 = false;
        var_26 = (type_6 *)0x0;
        var_9 = 0;
        var_33 = var_19;
        var_30 = (type_1 *)0x0;
        do {
          var_29 = var_28(var_25,d->__nextchar,(long)var_24 - (long)var_5 & 0xffffffff);
          var_37 = var_30;
          var_10 = local_68;
          if (var_29 == 0) {
            var_12 = -1;
            do {
              if (var_12 == 0) break;
              var_12 = var_12 + -1;
              var_21 = *var_25;
              var_25 = var_25 + (type_7)bVar25 * -2 + 1;
            } while (var_21 != '\0');
            var_37 = var_33;
            if ((int)((long)var_24 - (long)var_5) == ~(type_3)var_12 - 1) goto joined_r0x00109833;
            var_10 = var_9;
            if ((var_30 != (type_1 *)0x0) && (var_37 = var_30, var_10 = local_68, !var_16)) {
              if ((var_22 == 0) &&
                 (((var_30->has_arg == var_33->has_arg && (var_30->flag == var_33->flag)) &&
                  (var_30->val == var_33->val)))) {
                var_16 = false;
              }
              else {
                var_32 = (type_6 *)var_31(0x10);
                if (var_32 == (type_6 *)0x0) {
                  if (var_26 == (type_6 *)0x0) {
                    var_16 = true;
                  }
                  else {
                    do {
                      var_32 = var_26->next;
                      var_27(var_26);
                      var_26 = var_32;
                    } while (var_32 != (type_6 *)0x0);
                    var_16 = true;
                  }
                }
                else {
                  var_32->p = var_33;
                  var_32->next = var_26;
                  var_26 = var_32;
                }
              }
            }
          }
          local_68 = var_10;
          var_33 = var_33 + 1;
          var_9 = var_9 + 1;
          var_25 = var_33->name;
          var_30 = var_37;
        } while (var_25 != (char *)0x0);
        if ((var_16) || (var_26 != (type_6 *)0x0)) {
          if ((var_26 == (type_6 *)0x0) || (var_20 == 0)) {
            if ((!var_16) || (var_20 == 0)) {
              var_34 = 0xffffffffffffffff;
              var_5 = d->__nextchar;
              do {
                if (var_34 == 0) break;
                var_34 = var_34 - 1;
                var_21 = *var_5;
                var_5 = var_5 + (type_7)bVar25 * -2 + 1;
              } while (var_21 != '\0');
              d->__nextchar = d->__nextchar + (~var_34 - 1);
              d->rpl_optind = d->rpl_optind + 1;
              d->rpl_optopt = 0;
              if (var_26 == (type_6 *)0x0) {
                var_9 = 0x3f;
              }
              else {
                do {
                  var_32 = var_26->next;
                  var_27(var_26);
                  var_26 = var_32;
                } while (var_32 != (type_6 *)0x0);
                var_9 = 0x3f;
              }
              goto LAB_001098ef;
            }
            var_35(stderr,1,"%s: option \'%s\' is ambiguous\n",*argv,argv[d->rpl_optind]);
          }
          else {
            first.p = var_37;
            first.next = var_26;
            var_35(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*argv,
                          argv[d->rpl_optind]);
            var_26 = &first;
            do {
              var_35(stderr,1," \'--%s\'",var_26->p->name);
              var_26 = var_26->next;
            } while (var_26 != (type_6 *)0x0);
            var_36(10,stderr);
          }
          var_34 = 0xffffffffffffffff;
          var_5 = d->__nextchar;
          do {
            if (var_34 == 0) break;
            var_34 = var_34 - 1;
            var_21 = *var_5;
            var_5 = var_5 + (type_7)bVar25 * -2 + 1;
          } while (var_21 != '\0');
          d->__nextchar = d->__nextchar + (~var_34 - 1);
          d->rpl_optind = d->rpl_optind + 1;
          d->rpl_optopt = 0;
          var_9 = 0x3f;
          goto LAB_001098ef;
        }
      }
      if (var_37 != (type_1 *)0x0) {
        var_10 = d->rpl_optind;
        var_9 = var_10 + 1;
        d->rpl_optind = var_9;
        if (*var_24 == '\0') {
          if (var_37->has_arg == 1) {
            if (var_2 <= var_9) {
              if (var_20 != 0) {
                var_35(stderr,1,"%s: option \'--%s\' requires an argument\n",*argv,
                              var_37->name);
              }
              var_34 = 0xffffffffffffffff;
              var_5 = d->__nextchar;
              do {
                if (var_34 == 0) break;
                var_34 = var_34 - 1;
                var_21 = *var_5;
                var_5 = var_5 + (type_7)bVar25 * -2 + 1;
              } while (var_21 != '\0');
              d->__nextchar = d->__nextchar + (~var_34 - 1);
              d->rpl_optopt = var_37->val;
              var_9 = (type_3)(*local_b0 != ':') * 5 + 0x3a;
              goto LAB_001098ef;
            }
            d->rpl_optind = var_10 + 2;
            d->rpl_optarg = argv[var_9];
          }
        }
        else {
          if (var_37->has_arg == 0) {
            if (var_20 != 0) {
              if (argv[(long)var_9 + -1][1] == '-') {
                var_35(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*argv,
                              var_37->name);
              }
              else {
                var_35(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*argv,
                              (int)*argv[(long)var_9 + -1],var_37->name);
              }
            }
            var_34 = 0xffffffffffffffff;
            var_5 = d->__nextchar;
            do {
              if (var_34 == 0) break;
              var_34 = var_34 - 1;
              var_21 = *var_5;
              var_5 = var_5 + (type_7)bVar25 * -2 + 1;
            } while (var_21 != '\0');
            d->__nextchar = d->__nextchar + (~var_34 - 1);
            d->rpl_optopt = var_37->val;
            var_9 = 0x3f;
            goto LAB_001098ef;
          }
          d->rpl_optarg = var_24 + 1;
        }
        var_34 = 0xffffffffffffffff;
        var_5 = d->__nextchar;
        do {
          if (var_34 == 0) break;
          var_34 = var_34 - 1;
          var_21 = *var_5;
          var_5 = var_5 + (type_7)bVar25 * -2 + 1;
        } while (var_21 != '\0');
        d->__nextchar = d->__nextchar + (~var_34 - 1);
        if (var_38 != (int *)0x0) {
          *var_38 = local_68;
        }
        if (var_37->flag == (int *)0x0) {
          var_9 = var_37->val;
        }
        else {
          *var_37->flag = var_37->val;
          var_9 = 0;
        }
        goto LAB_001098ef;
      }
      if (var_22 == 0) {
        if (var_20 != 0) {
          var_5 = argv[d->rpl_optind];
          if (var_5[1] == '-') goto LAB_001097e1;
LAB_00109263:
          var_35(stderr,1,"%s: unrecognized option \'%c%s\'\n",*argv,(int)*var_5,
                        d->__nextchar);
        }
      }
      else {
        var_5 = argv[d->rpl_optind];
        if (var_5[1] == '-') {
          if (var_20 != 0) {
LAB_001097e1:
            var_35(stderr,1,"%s: unrecognized option \'--%s\'\n",*argv,d->__nextchar);
          }
        }
        else {
          var_24 = var_23(local_b0,(int)*d->__nextchar);
          if (var_24 != (char *)0x0) goto LAB_00108d74;
          if (var_20 != 0) goto LAB_00109263;
        }
      }
      d->__nextchar = "";
      d->rpl_optind = d->rpl_optind + 1;
      d->rpl_optopt = 0;
      var_9 = 0x3f;
      goto LAB_001098ef;
    }
  }
LAB_00108d74:
  var_24 = d->__nextchar;
  var_5 = var_24 + 1;
  d->__nextchar = var_5;
  var_21 = *var_24;
  var_9 = (int)var_21;
  var_25 = var_23(local_b0,var_9);
  if (var_24[1] == '\0') {
    d->rpl_optind = d->rpl_optind + 1;
  }
  if (((type_4)(var_21 - 0x3aU) < 2) || (var_25 == (char *)0x0)) {
    if (var_20 != 0) {
      var_35(stderr,1,"%s: invalid option -- \'%c\'\n",*argv,var_9);
    }
    d->rpl_optopt = var_9;
    var_9 = 0x3f;
  }
  else if ((*var_25 == 'W') && (var_25[1] == ';')) {
    if (var_19 != (type_1 *)0x0) {
      if (var_24[1] == '\0') {
        var_10 = d->rpl_optind;
        if (var_10 == var_2) {
          if (var_20 != 0) {
            var_35(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,var_9);
          }
          d->rpl_optopt = var_9;
          var_21 = *local_b0;
          if (*local_b0 != ':') {
            var_21 = '?';
          }
          var_9 = (int)var_21;
          goto LAB_001098ef;
        }
        d->rpl_optind = var_10 + 1;
        d->rpl_optarg = argv[var_10];
      }
      else {
        d->rpl_optarg = var_5;
        d->rpl_optind = d->rpl_optind + 1;
      }
      var_5 = d->rpl_optarg;
      d->__nextchar = var_5;
      var_21 = *var_5;
      var_24 = var_5;
      while ((var_21 != '\0' && (var_21 != '='))) {
        var_24 = var_24 + 1;
        var_21 = *var_24;
      }
      var_25 = var_19->name;
      if (var_25 != (char *)0x0) {
        var_9 = 0;
        local_74 = 0;
        var_37 = (type_1 *)0x0;
        var_16 = false;
        do {
          var_29 = var_28(var_25,var_5,(long)var_24 - (long)var_5);
          var_33 = var_37;
          var_10 = local_74;
          bVar24 = var_16;
          if (var_29 == 0) {
            var_34 = 0xffffffffffffffff;
            do {
              if (var_34 == 0) break;
              var_34 = var_34 - 1;
              var_39 = *var_25;
              var_25 = var_25 + (type_7)bVar25 * -2 + 1;
            } while (var_39 != '\0');
            if (((long)var_24 - (long)var_5 & 0xffffffffU) == ~var_34 - 1) goto LAB_001094ec;
            var_33 = var_19;
            var_10 = var_9;
            if (var_37 != (type_1 *)0x0) {
              if (var_22 == 0) {
                if (var_37->has_arg == var_19->has_arg) {
                  if (var_37->flag == var_19->flag) {
                    var_33 = var_37;
                    var_10 = local_74;
                    bVar24 = true;
                    if (var_37->val == var_19->val) {
                      bVar24 = var_16;
                    }
                  }
                  else {
                    var_33 = var_37;
                    var_10 = local_74;
                    bVar24 = true;
                  }
                }
                else {
                  var_33 = var_37;
                  var_10 = local_74;
                  bVar24 = true;
                }
              }
              else {
                var_33 = var_37;
                var_10 = local_74;
                bVar24 = true;
              }
            }
          }
          local_74 = var_10;
          var_19 = var_19 + 1;
          var_9 = var_9 + 1;
          var_25 = var_19->name;
          var_37 = var_33;
          var_16 = bVar24;
        } while (var_25 != (char *)0x0);
        var_19 = var_33;
        var_9 = local_74;
        if (bVar24) {
          if (var_20 != 0) {
            var_35(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*argv,var_5);
          }
          var_34 = 0xffffffffffffffff;
          var_5 = d->__nextchar;
          do {
            if (var_34 == 0) break;
            var_34 = var_34 - 1;
            var_21 = *var_5;
            var_5 = var_5 + (type_7)bVar25 * -2 + 1;
          } while (var_21 != '\0');
          d->__nextchar = d->__nextchar + (~var_34 - 1);
          d->rpl_optind = d->rpl_optind + 1;
          var_9 = 0x3f;
          goto LAB_001098ef;
        }
LAB_001094ec:
        local_74 = var_9;
        if (var_19 != (type_1 *)0x0) {
          if (var_21 == '\0') {
            if (var_19->has_arg == 1) {
              var_9 = d->rpl_optind;
              if (var_2 <= var_9) {
                if (var_20 != 0) {
                  var_35(stderr,1,"%s: option \'-W %s\' requires an argument\n",*argv,
                                var_19->name);
                }
                var_34 = 0xffffffffffffffff;
                var_5 = d->__nextchar;
                do {
                  if (var_34 == 0) break;
                  var_34 = var_34 - 1;
                  var_21 = *var_5;
                  var_5 = var_5 + (type_7)bVar25 * -2 + 1;
                } while (var_21 != '\0');
                d->__nextchar = d->__nextchar + (~var_34 - 1);
                var_9 = (type_3)(*local_b0 != ':') * 5 + 0x3a;
                goto LAB_001098ef;
              }
              d->rpl_optind = var_9 + 1;
              d->rpl_optarg = argv[var_9];
            }
            else {
              d->rpl_optarg = (char *)0x0;
            }
          }
          else {
            if (var_19->has_arg == 0) {
              if (var_20 != 0) {
                var_35(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*argv,
                              var_19->name);
              }
              var_34 = 0xffffffffffffffff;
              var_5 = d->__nextchar;
              do {
                if (var_34 == 0) break;
                var_34 = var_34 - 1;
                var_21 = *var_5;
                var_5 = var_5 + (type_7)bVar25 * -2 + 1;
              } while (var_21 != '\0');
              d->__nextchar = d->__nextchar + (~var_34 - 1);
              var_9 = 0x3f;
              goto LAB_001098ef;
            }
            d->rpl_optarg = var_24 + 1;
          }
          var_34 = 0xffffffffffffffff;
          var_24 = var_5;
          do {
            if (var_34 == 0) break;
            var_34 = var_34 - 1;
            var_21 = *var_24;
            var_24 = var_24 + (type_7)bVar25 * -2 + 1;
          } while (var_21 != '\0');
          d->__nextchar = var_5 + (~var_34 - 1);
          if (var_38 != (int *)0x0) {
            *var_38 = local_74;
          }
          if (var_19->flag == (int *)0x0) {
            var_9 = var_19->val;
          }
          else {
            *var_19->flag = var_19->val;
            var_9 = 0;
          }
          goto LAB_001098ef;
        }
      }
    }
    d->__nextchar = (char *)0x0;
    var_9 = 0x57;
  }
  else {
    if (var_25[1] == ':') {
      if (var_25[2] == ':') {
        if (var_24[1] == '\0') {
          d->rpl_optarg = (char *)0x0;
        }
        else {
          d->rpl_optarg = var_5;
          d->rpl_optind = d->rpl_optind + 1;
        }
        d->__nextchar = (char *)0x0;
      }
      else {
        if (var_24[1] == '\0') {
          var_10 = d->rpl_optind;
          if (var_10 == var_2) {
            if (var_20 != 0) {
              var_35(stderr,1,"%s: option requires an argument -- \'%c\'\n",*argv,var_9);
            }
            d->rpl_optopt = var_9;
            var_21 = *local_b0;
            if (var_21 != ':') {
              var_21 = '?';
            }
          }
          else {
            d->rpl_optind = var_10 + 1;
            d->rpl_optarg = argv[var_10];
          }
        }
        else {
          d->rpl_optarg = var_5;
          d->rpl_optind = d->rpl_optind + 1;
        }
        d->__nextchar = (char *)0x0;
      }
    }
    var_9 = (int)var_21;
  }
LAB_001098ef:
  if (var_40 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_41();
  }
  return var_9;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (identifier)))) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (identifier)))) index: (number_literal)) right: (char_literal (escape_sequence)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) right: (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (unary_expression argument: (identifier))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (true))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (unary_expression argument: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))) right: (number_literal)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence)) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence)) (pointer_expression argument: (identifier)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (string_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence)) (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence)) (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (character)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (number_literal))) right: (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (true))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (true))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (true)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character))))) right: (number_literal)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence)) (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (character))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

int MASKED(uint param_1,undefined8 *param_2,char *param_3,long *param_4,int *param_5,
                int param_6,uint *param_7,int param_8)

{
  char cVar1;
  uint uVar2;
  byte *pbVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  undefined8 *puVar11;
  long lVar12;
  ulong uVar13;
  char cVar14;
  long **pplVar15;
  byte *pbVar16;
  byte *pbVar17;
  long *plVar18;
  long *plVar19;
  undefined8 *__ptr;
  char *pcVar20;
  long *plVar21;
  long in_FS_OFFSET;
  bool bVar22;
  bool bVar23;
  byte bVar24;
  char *local_b0;
  int local_74;
  int local_68;
  long *local_58;
  undefined8 *local_50;
  long local_40;
  
  bVar24 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar6 = param_7[1];
  if ((int)param_1 < 1) {
    iVar7 = -1;
    goto LAB_001098ef;
  }
  param_7[4] = 0;
  param_7[5] = 0;
  if (*param_7 == 0) {
    *param_7 = 1;
LAB_00108b56:
    param_7[0xd] = *param_7;
    param_7[0xc] = *param_7;
    param_7[8] = 0;
    param_7[9] = 0;
    uVar5 = 1;
    if (param_8 == 0) {
      pcVar9 = getenv("POSIXLY_CORRECT");
      uVar5 = (uint)(pcVar9 != (char *)0x0);
    }
    param_7[0xb] = uVar5;
    if (*param_3 == '-') {
      param_7[10] = 2;
      local_b0 = param_3 + 1;
    }
    else if (*param_3 == '+') {
      param_7[10] = 0;
      local_b0 = param_3 + 1;
    }
    else {
      param_7[10] = uVar5 ^ 1;
      local_b0 = param_3;
    }
    param_7[6] = 1;
  }
  else {
    if (param_7[6] == 0) goto LAB_00108b56;
    local_b0 = param_3 + ((*param_3 - 0x2bU & 0xfd) == 0);
  }
  uVar5 = 0;
  if (*local_b0 != ':') {
    uVar5 = uVar6;
  }
  if ((*(char **)(param_7 + 8) == (char *)0x0) || (**(char **)(param_7 + 8) == '\0')) {
    uVar6 = *param_7;
    if ((int)uVar6 < (int)param_7[0xd]) {
      param_7[0xd] = uVar6;
    }
    if ((int)uVar6 < (int)param_7[0xc]) {
      param_7[0xc] = uVar6;
    }
    if (param_7[10] == 1) {
      uVar2 = param_7[0xd];
      if ((param_7[0xc] == uVar2) || (uVar6 == uVar2)) {
        if (uVar6 != uVar2) {
          param_7[0xc] = uVar6;
        }
      }
      else {
        FUN_00108a11(param_2,param_7);
      }
      uVar6 = *param_7;
      if ((int)uVar6 < (int)param_1) {
        lVar12 = (long)(int)uVar6;
        do {
          uVar6 = (uint)lVar12;
          if ((*(char *)param_2[lVar12] == '-') && (((char *)param_2[lVar12])[1] != '\0')) break;
          uVar6 = uVar6 + 1;
          *param_7 = uVar6;
          lVar12 = lVar12 + 1;
        } while ((int)lVar12 < (int)param_1);
      }
      param_7[0xd] = uVar6;
    }
    uVar6 = *param_7;
    bVar22 = uVar6 < param_1;
    bVar23 = uVar6 == param_1;
    if (!bVar23) {
      pbVar3 = (byte *)param_2[(int)uVar6];
      lVar12 = 3;
      pbVar16 = pbVar3;
      pbVar17 = &DAT_0010b4bb;
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar22 = *pbVar16 < *pbVar17;
        bVar23 = *pbVar16 == *pbVar17;
        pbVar16 = pbVar16 + (ulong)bVar24 * -2 + 1;
        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
      } while (bVar23);
      if ((!bVar22 && !bVar23) != bVar22) {
        if ((*pbVar3 != 0x2d) || (pbVar3[1] == 0)) {
          if (param_7[10] == 0) {
            iVar7 = -1;
          }
          else {
            *param_7 = uVar6 + 1;
            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];
            iVar7 = 1;
          }
          goto LAB_001098ef;
        }
        *(byte **)(param_7 + 8) = pbVar3 + (ulong)(param_4 != (long *)0x0 && pbVar3[1] == 0x2d) + 1;
        goto LAB_00108d36;
      }
      uVar6 = uVar6 + 1;
      *param_7 = uVar6;
      uVar5 = param_7[0xd];
      if ((uVar6 == uVar5) || (param_7[0xc] == uVar5)) {
        if (param_7[0xc] == uVar5) {
          param_7[0xc] = uVar6;
        }
      }
      else {
        FUN_00108a11(param_2,param_7);
      }
      param_7[0xd] = param_1;
      *param_7 = param_1;
    }
    if (param_7[0xc] == param_7[0xd]) {
      iVar7 = -1;
    }
    else {
      *param_7 = param_7[0xc];
      iVar7 = -1;
    }
    goto LAB_001098ef;
  }
LAB_00108d36:
  if (param_4 != (long *)0x0) {
    cVar14 = *(char *)(param_2[(int)*param_7] + 1);
    if ((cVar14 == '-') ||
       ((param_6 != 0 &&
        ((*(char *)(param_2[(int)*param_7] + 2) != '\0' ||
         (pcVar9 = strchr(local_b0,(int)cVar14), pcVar9 == (char *)0x0)))))) {
      pcVar9 = *(char **)(param_7 + 8);
      cVar14 = *pcVar9;
      pcVar20 = pcVar9;
      while ((cVar14 != '\0' && (cVar14 != '='))) {
        pcVar20 = pcVar20 + 1;
        cVar14 = *pcVar20;
      }
      pcVar10 = (char *)*param_4;
      if (pcVar10 == (char *)0x0) {
        local_68 = -1;
        __ptr = (undefined8 *)0x0;
        iVar7 = local_68;
        plVar19 = (long *)0x0;
joined_r0x00109833:
        while (local_68 = iVar7, __ptr != (undefined8 *)0x0) {
          puVar11 = (undefined8 *)__ptr[1];
          free(__ptr);
          __ptr = puVar11;
          iVar7 = local_68;
        }
      }
      else {
        local_68 = -1;
        bVar22 = false;
        __ptr = (undefined8 *)0x0;
        iVar7 = 0;
        plVar18 = param_4;
        plVar21 = (long *)0x0;
        do {
          iVar8 = strncmp(pcVar10,*(char **)(param_7 + 8),(long)pcVar20 - (long)pcVar9 & 0xffffffff)
          ;
          plVar19 = plVar21;
          iVar4 = local_68;
          if (iVar8 == 0) {
            lVar12 = -1;
            do {
              if (lVar12 == 0) break;
              lVar12 = lVar12 + -1;
              cVar14 = *pcVar10;
              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;
            } while (cVar14 != '\0');
            plVar19 = plVar18;
            if ((int)((long)pcVar20 - (long)pcVar9) == ~(uint)lVar12 - 1) goto joined_r0x00109833;
            iVar4 = iVar7;
            if ((plVar21 != (long *)0x0) && (plVar19 = plVar21, iVar4 = local_68, !bVar22)) {
              if ((param_6 == 0) &&
                 ((((int)plVar21[1] == (int)plVar18[1] && (plVar21[2] == plVar18[2])) &&
                  ((int)plVar21[3] == (int)plVar18[3])))) {
                bVar22 = false;
              }
              else {
                puVar11 = (undefined8 *)malloc(0x10);
                if (puVar11 == (undefined8 *)0x0) {
                  if (__ptr == (undefined8 *)0x0) {
                    bVar22 = true;
                  }
                  else {
                    do {
                      puVar11 = (undefined8 *)__ptr[1];
                      free(__ptr);
                      __ptr = puVar11;
                    } while (puVar11 != (undefined8 *)0x0);
                    bVar22 = true;
                  }
                }
                else {
                  *puVar11 = plVar18;
                  puVar11[1] = __ptr;
                  __ptr = puVar11;
                }
              }
            }
          }
          local_68 = iVar4;
          plVar18 = plVar18 + 4;
          iVar7 = iVar7 + 1;
          pcVar10 = (char *)*plVar18;
          plVar21 = plVar19;
        } while (pcVar10 != (char *)0x0);
        if ((bVar22) || (__ptr != (undefined8 *)0x0)) {
          if ((__ptr == (undefined8 *)0x0) || (uVar5 == 0)) {
            if ((!bVar22) || (uVar5 == 0)) {
              uVar13 = 0xffffffffffffffff;
              pcVar9 = *(char **)(param_7 + 8);
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
              } while (cVar14 != '\0');
              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
              *param_7 = *param_7 + 1;
              param_7[2] = 0;
              if (__ptr == (undefined8 *)0x0) {
                iVar7 = 0x3f;
              }
              else {
                do {
                  puVar11 = (undefined8 *)__ptr[1];
                  free(__ptr);
                  __ptr = puVar11;
                } while (puVar11 != (undefined8 *)0x0);
                iVar7 = 0x3f;
              }
              goto LAB_001098ef;
            }
            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous\n",*param_2,
                          param_2[(int)*param_7]);
          }
          else {
            local_58 = plVar19;
            local_50 = __ptr;
            __fprintf_chk(stderr,1,"%s: option \'%s\' is ambiguous; possibilities:",*param_2,
                          param_2[(int)*param_7]);
            pplVar15 = &local_58;
            do {
              __fprintf_chk(stderr,1," \'--%s\'",**pplVar15);
              pplVar15 = (long **)pplVar15[1];
            } while (pplVar15 != (long **)0x0);
            fputc(10,stderr);
          }
          uVar13 = 0xffffffffffffffff;
          pcVar9 = *(char **)(param_7 + 8);
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar9;
            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
          } while (cVar14 != '\0');
          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
          *param_7 = *param_7 + 1;
          param_7[2] = 0;
          iVar7 = 0x3f;
          goto LAB_001098ef;
        }
      }
      if (plVar19 != (long *)0x0) {
        uVar2 = *param_7;
        uVar6 = uVar2 + 1;
        *param_7 = uVar6;
        if (*pcVar20 == '\0') {
          if ((int)plVar19[1] == 1) {
            if ((int)param_1 <= (int)uVar6) {
              if (uVar5 != 0) {
                __fprintf_chk(stderr,1,"%s: option \'--%s\' requires an argument\n",*param_2,
                              *plVar19);
              }
              uVar13 = 0xffffffffffffffff;
              pcVar9 = *(char **)(param_7 + 8);
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
              } while (cVar14 != '\0');
              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
              param_7[2] = *(uint *)(plVar19 + 3);
              iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;
              goto LAB_001098ef;
            }
            *param_7 = uVar2 + 2;
            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];
          }
        }
        else {
          if ((int)plVar19[1] == 0) {
            if (uVar5 != 0) {
              if (((char *)param_2[(long)(int)uVar6 + -1])[1] == '-') {
                __fprintf_chk(stderr,1,"%s: option \'--%s\' doesn\'t allow an argument\n",*param_2,
                              *plVar19);
              }
              else {
                __fprintf_chk(stderr,1,"%s: option \'%c%s\' doesn\'t allow an argument\n",*param_2,
                              (int)*(char *)param_2[(long)(int)uVar6 + -1],*plVar19);
              }
            }
            uVar13 = 0xffffffffffffffff;
            pcVar9 = *(char **)(param_7 + 8);
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar14 = *pcVar9;
              pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
            } while (cVar14 != '\0');
            *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
            param_7[2] = *(uint *)(plVar19 + 3);
            iVar7 = 0x3f;
            goto LAB_001098ef;
          }
          *(char **)(param_7 + 4) = pcVar20 + 1;
        }
        uVar13 = 0xffffffffffffffff;
        pcVar9 = *(char **)(param_7 + 8);
        do {
          if (uVar13 == 0) break;
          uVar13 = uVar13 - 1;
          cVar14 = *pcVar9;
          pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
        } while (cVar14 != '\0');
        *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
        if (param_5 != (int *)0x0) {
          *param_5 = local_68;
        }
        if ((undefined4 *)plVar19[2] == (undefined4 *)0x0) {
          iVar7 = (int)plVar19[3];
        }
        else {
          *(undefined4 *)plVar19[2] = (int)plVar19[3];
          iVar7 = 0;
        }
        goto LAB_001098ef;
      }
      if (param_6 == 0) {
        if (uVar5 != 0) {
          pcVar9 = (char *)param_2[(int)*param_7];
          if (pcVar9[1] == '-') goto LAB_001097e1;
LAB_00109263:
          __fprintf_chk(stderr,1,"%s: unrecognized option \'%c%s\'\n",*param_2,(int)*pcVar9,
                        *(undefined8 *)(param_7 + 8));
        }
      }
      else {
        pcVar9 = (char *)param_2[(int)*param_7];
        if (pcVar9[1] == '-') {
          if (uVar5 != 0) {
LAB_001097e1:
            __fprintf_chk(stderr,1,"%s: unrecognized option \'--%s\'\n",*param_2,
                          *(undefined8 *)(param_7 + 8));
          }
        }
        else {
          pcVar20 = strchr(local_b0,(int)**(char **)(param_7 + 8));
          if (pcVar20 != (char *)0x0) goto LAB_00108d74;
          if (uVar5 != 0) goto LAB_00109263;
        }
      }
      *(char **)(param_7 + 8) = "";
      *param_7 = *param_7 + 1;
      param_7[2] = 0;
      iVar7 = 0x3f;
      goto LAB_001098ef;
    }
  }
LAB_00108d74:
  pcVar20 = *(char **)(param_7 + 8);
  pcVar9 = pcVar20 + 1;
  *(char **)(param_7 + 8) = pcVar9;
  cVar14 = *pcVar20;
  uVar6 = (uint)cVar14;
  pcVar10 = strchr(local_b0,uVar6);
  if (pcVar20[1] == '\0') {
    *param_7 = *param_7 + 1;
  }
  if (((byte)(cVar14 - 0x3aU) < 2) || (pcVar10 == (char *)0x0)) {
    if (uVar5 != 0) {
      __fprintf_chk(stderr,1,"%s: invalid option -- \'%c\'\n",*param_2,uVar6);
    }
    param_7[2] = uVar6;
    iVar7 = 0x3f;
  }
  else if ((*pcVar10 == 'W') && (pcVar10[1] == ';')) {
    if (param_4 != (long *)0x0) {
      if (pcVar20[1] == '\0') {
        uVar2 = *param_7;
        if (uVar2 == param_1) {
          if (uVar5 != 0) {
            __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);
          }
          param_7[2] = uVar6;
          cVar14 = *local_b0;
          if (*local_b0 != ':') {
            cVar14 = '?';
          }
          iVar7 = (int)cVar14;
          goto LAB_001098ef;
        }
        *param_7 = uVar2 + 1;
        *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];
      }
      else {
        *(char **)(param_7 + 4) = pcVar9;
        *param_7 = *param_7 + 1;
      }
      pcVar9 = *(char **)(param_7 + 4);
      *(char **)(param_7 + 8) = pcVar9;
      cVar14 = *pcVar9;
      pcVar20 = pcVar9;
      while ((cVar14 != '\0' && (cVar14 != '='))) {
        pcVar20 = pcVar20 + 1;
        cVar14 = *pcVar20;
      }
      pcVar10 = (char *)*param_4;
      if (pcVar10 != (char *)0x0) {
        iVar7 = 0;
        local_74 = 0;
        plVar19 = (long *)0x0;
        bVar22 = false;
        do {
          iVar8 = strncmp(pcVar10,pcVar9,(long)pcVar20 - (long)pcVar9);
          plVar18 = plVar19;
          iVar4 = local_74;
          bVar23 = bVar22;
          if (iVar8 == 0) {
            uVar13 = 0xffffffffffffffff;
            do {
              if (uVar13 == 0) break;
              uVar13 = uVar13 - 1;
              cVar1 = *pcVar10;
              pcVar10 = pcVar10 + (ulong)bVar24 * -2 + 1;
            } while (cVar1 != '\0');
            if (((long)pcVar20 - (long)pcVar9 & 0xffffffffU) == ~uVar13 - 1) goto LAB_001094ec;
            plVar18 = param_4;
            iVar4 = iVar7;
            if (plVar19 != (long *)0x0) {
              if (param_6 == 0) {
                if ((int)plVar19[1] == (int)param_4[1]) {
                  if (plVar19[2] == param_4[2]) {
                    plVar18 = plVar19;
                    iVar4 = local_74;
                    bVar23 = true;
                    if ((int)plVar19[3] == (int)param_4[3]) {
                      bVar23 = bVar22;
                    }
                  }
                  else {
                    plVar18 = plVar19;
                    iVar4 = local_74;
                    bVar23 = true;
                  }
                }
                else {
                  plVar18 = plVar19;
                  iVar4 = local_74;
                  bVar23 = true;
                }
              }
              else {
                plVar18 = plVar19;
                iVar4 = local_74;
                bVar23 = true;
              }
            }
          }
          local_74 = iVar4;
          param_4 = param_4 + 4;
          iVar7 = iVar7 + 1;
          pcVar10 = (char *)*param_4;
          plVar19 = plVar18;
          bVar22 = bVar23;
        } while (pcVar10 != (char *)0x0);
        param_4 = plVar18;
        iVar7 = local_74;
        if (bVar23) {
          if (uVar5 != 0) {
            __fprintf_chk(stderr,1,"%s: option \'-W %s\' is ambiguous\n",*param_2,pcVar9);
          }
          uVar13 = 0xffffffffffffffff;
          pcVar9 = *(char **)(param_7 + 8);
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar9;
            pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
          } while (cVar14 != '\0');
          *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
          *param_7 = *param_7 + 1;
          iVar7 = 0x3f;
          goto LAB_001098ef;
        }
LAB_001094ec:
        local_74 = iVar7;
        if (param_4 != (long *)0x0) {
          if (cVar14 == '\0') {
            if ((int)param_4[1] == 1) {
              uVar6 = *param_7;
              if ((int)param_1 <= (int)uVar6) {
                if (uVar5 != 0) {
                  __fprintf_chk(stderr,1,"%s: option \'-W %s\' requires an argument\n",*param_2,
                                *param_4);
                }
                uVar13 = 0xffffffffffffffff;
                pcVar9 = *(char **)(param_7 + 8);
                do {
                  if (uVar13 == 0) break;
                  uVar13 = uVar13 - 1;
                  cVar14 = *pcVar9;
                  pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
                } while (cVar14 != '\0');
                *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
                iVar7 = (uint)(*local_b0 != ':') * 5 + 0x3a;
                goto LAB_001098ef;
              }
              *param_7 = uVar6 + 1;
              *(undefined8 *)(param_7 + 4) = param_2[(int)uVar6];
            }
            else {
              param_7[4] = 0;
              param_7[5] = 0;
            }
          }
          else {
            if ((int)param_4[1] == 0) {
              if (uVar5 != 0) {
                __fprintf_chk(stderr,1,"%s: option \'-W %s\' doesn\'t allow an argument\n",*param_2,
                              *param_4);
              }
              uVar13 = 0xffffffffffffffff;
              pcVar9 = *(char **)(param_7 + 8);
              do {
                if (uVar13 == 0) break;
                uVar13 = uVar13 - 1;
                cVar14 = *pcVar9;
                pcVar9 = pcVar9 + (ulong)bVar24 * -2 + 1;
              } while (cVar14 != '\0');
              *(char **)(param_7 + 8) = *(char **)(param_7 + 8) + (~uVar13 - 1);
              iVar7 = 0x3f;
              goto LAB_001098ef;
            }
            *(char **)(param_7 + 4) = pcVar20 + 1;
          }
          uVar13 = 0xffffffffffffffff;
          pcVar20 = pcVar9;
          do {
            if (uVar13 == 0) break;
            uVar13 = uVar13 - 1;
            cVar14 = *pcVar20;
            pcVar20 = pcVar20 + (ulong)bVar24 * -2 + 1;
          } while (cVar14 != '\0');
          *(char **)(param_7 + 8) = pcVar9 + (~uVar13 - 1);
          if (param_5 != (int *)0x0) {
            *param_5 = local_74;
          }
          if ((undefined4 *)param_4[2] == (undefined4 *)0x0) {
            iVar7 = (int)param_4[3];
          }
          else {
            *(undefined4 *)param_4[2] = (int)param_4[3];
            iVar7 = 0;
          }
          goto LAB_001098ef;
        }
      }
    }
    param_7[8] = 0;
    param_7[9] = 0;
    iVar7 = 0x57;
  }
  else {
    if (pcVar10[1] == ':') {
      if (pcVar10[2] == ':') {
        if (pcVar20[1] == '\0') {
          param_7[4] = 0;
          param_7[5] = 0;
        }
        else {
          *(char **)(param_7 + 4) = pcVar9;
          *param_7 = *param_7 + 1;
        }
        param_7[8] = 0;
        param_7[9] = 0;
      }
      else {
        if (pcVar20[1] == '\0') {
          uVar2 = *param_7;
          if (uVar2 == param_1) {
            if (uVar5 != 0) {
              __fprintf_chk(stderr,1,"%s: option requires an argument -- \'%c\'\n",*param_2,uVar6);
            }
            param_7[2] = uVar6;
            cVar14 = *local_b0;
            if (cVar14 != ':') {
              cVar14 = '?';
            }
          }
          else {
            *param_7 = uVar2 + 1;
            *(undefined8 *)(param_7 + 4) = param_2[(int)uVar2];
          }
        }
        else {
          *(char **)(param_7 + 4) = pcVar9;
          *param_7 = *param_7 + 1;
        }
        param_7[8] = 0;
        param_7[9] = 0;
      }
    }
    iVar7 = (int)cVar14;
  }
LAB_001098ef:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar7;
}

