
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

_Bool AnnotationList__stateMakesContribution
                (AnnotationList *self,size_t nitems,ContributionIndex ci,bitset_conflict *lookaheads
                )

{
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  symbol *psVar1;
  uint uVar2;
  _Bool _Var15;
  int *piVar3;
  goto_number gVar4;
  bitset_bindex *pbVar5;
  Sbitset puVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  ContributionIndex CVar13;
  uint *puVar14;
  undefined1 *puVar16;
  undefined4 *puVar17;
  byte *pbVar18;
  bitset_conflict pbVar19;
  int *piVar20;
  int iVar21;
  InadequacyList *pIVar22;
  int iVar23;
  AnnotationList *self_00;
  byte *pbVar24;
  bitset_bindex *nbits;
  bitset_bindex *pbVar25;
  bitset_conflict **unaff_s0;
  uint uVar26;
  uint uVar27;
  byte *pbVar28;
  int *unaff_s1;
  uint uVar29;
  int i;
  obstack *unaff_s2;
  uint uVar30;
  int *piVar31;
  byte *pbVar32;
  symbol_number sVar33;
  int iVar34;
  undefined *puVar35;
  code *pcVar36;
  code *pcVar37;
  int *piStackY_1110;
  int iStack_10d8;
  undefined1 uStack_107d;
  bitset_bindex abStack_1078 [1024];
  bitset_bindex bStack_78;
  uint uStack_74;
  uint uStack_70;
  int *piStack_6c;
  state ***pppsStack_2c;
  
  if (ci < self->inadequacyNode->contributionCount) {
    if (self->contributions[ci] == (Sbitset)0x0) {
      return true;
    }
    if (lookaheads != (bitset_conflict *)0x0) {
      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);
      pbVar24 = self->contributions[ci];
      uVar30 = nitems + 7 >> 3;
      pbVar18 = pbVar24 + uVar30;
      uVar29 = psVar1->content->number;
      if (pbVar24 < pbVar18) {
        pbVar28 = pbVar24;
        do {
          while( true ) {
            uVar2 = (uint)*pbVar28;
            pbVar32 = pbVar28 + 1;
            if (uVar2 != 0) break;
LAB_000182bc:
            pbVar28 = pbVar32;
            if (pbVar18 <= pbVar32) {
              return false;
            }
          }
          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;
          if ((nitems <= uVar26) ||
             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;
          while( true ) {
            uVar27 = uVar26 + 1;
            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&
               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {
              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;
              if (uVar2 < (pbVar19->b).csize) {
                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;
              }
              else {
                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);
                uVar2 = CONCAT31(extraout_var,_Var15);
              }
              if (uVar2 != 0) {
                return true;
              }
              pbVar24 = self->contributions[ci];
            }
            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;
            uVar2 = (uint)*pbVar28;
            uVar26 = uVar27;
          }
          pbVar18 = pbVar24 + uVar30;
          pbVar28 = pbVar32;
        } while (pbVar32 < pbVar18);
      }
    }
    return false;
  }
  puVar35 = PTR_0008d624 + 0x7fd0;
  AnnotationList__isContributionAlways(self,nitems);
  piVar3 = *(int **)(puVar35 + 0x75b74);
  piStack_6c = (int *)*piVar3;
  pbVar25 = (bitset_bindex *)ci;
  gVar4 = map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80));
  piVar20 = *(int **)(&_gp + gVar4 * 4);
  nbits = (bitset_bindex *)piVar20[2];
  pbVar5 = (bitset_bindex *)(((uint)ci >> 5) - piVar20[1]);
  if (pbVar5 < nbits) {
    uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;
  }
  else {
    nbits = (bitset_bindex *)ci;
    uVar29 = (**(code **)(*piVar20 + 0xc))();
  }
  if (uVar29 == 0) {
    puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);
    *unaff_s1 = (int)puVar6;
    bStack_78 = 0;
    uStack_74 = 0x400;
    do {
      pbVar25 = (bitset_bindex *)0x400;
      nbits = abStack_1078;
      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)
                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);
      if (uStack_74 == 0) break;
      uStack_70 = 0;
      do {
        nbits = (bitset_bindex *)0x0;
        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];
        pbVar25 = pbVar5;
        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);
        if (CONCAT31(extraout_var_00,_Var15) != 0) {
          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));
          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;
        }
        uStack_70 = uStack_70 + 1;
      } while (uStack_70 < uStack_74);
    } while (uStack_74 == 0x400);
  }
  uStack_107d = (undefined1)uVar29;
  if (piStack_6c == (int *)*piVar3) {
    return (_Bool)uStack_107d;
  }
  pcVar36 = *(code **)(puVar35 + 0x75b50);
  piVar3 = piStack_6c;
  iStack_10d8 = (*pcVar36)();
  if (piVar3 != (int *)0x0) {
    iVar7 = *(int *)(pcVar36 + 0x74fd8);
    piVar20 = *(int **)(pcVar36 + 0x75964);
    iStack_10d8 = 0;
    iVar8 = *(int *)(pcVar36 + 0x74fd8);
    iVar9 = *(int *)(pcVar36 + 0x74fd8);
    iVar10 = *(int *)(pcVar36 + 0x74fd8);
    iVar11 = *(int *)(pcVar36 + 0x74fd8);
    iVar12 = *(int *)(pcVar36 + 0x74fd8);
    do {
      if (0 < (int)pbVar25) {
        pbVar5 = (bitset_bindex *)0x0;
        do {
          iVar21 = *piVar20;
          puVar16 = *(undefined1 **)(iVar21 + 0x14);
          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {
            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;
            *puVar16 = 0x20;
          }
          else {
            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);
          }
          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);
        } while (pbVar25 != pbVar5);
      }
      (**(code **)(pcVar36 + 0x75818))
                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));
      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));
      pIVar22 = (InadequacyList *)piVar3[1];
      if (0 < pIVar22->contributionCount) {
        piVar31 = piVar3 + 2;
        i = 0;
        do {
          psVar1 = InadequacyList__getContributionToken(pIVar22,i);
          sVar33 = psVar1->content->number;
          if (-2 < (int)pbVar25) {
            iVar34 = 0;
            do {
              iVar23 = *piVar20;
              puVar16 = *(undefined1 **)(iVar23 + 0x14);
              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {
                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;
                *puVar16 = 0x20;
              }
              else {
                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);
              }
              iVar34 = iVar34 + 1;
            } while (iVar34 != (int)pbVar25 + 2U);
          }
          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);
          if (CVar13 != i) {
            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);
            if (iVar21 != -1) {
              (**(code **)(pcVar36 + 0x75818))
                        (*piVar20,1,iVar9 + 0x1280,
                         *(undefined4 *)
                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +
                          4));
              CVar13 = iVar21 + 1;
              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);
              iVar21 = (**(code **)(pcVar36 + 0x75114))();
              if (i < *(int *)(piVar3[1] + 0x14)) {
                if (*piVar31 == 0) {
                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);
                }
                else {
                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);
                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);
                }
                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);
                goto LAB_000188d8;
              }
              AnnotationList__isContributionAlways(self_00,CVar13);
            }
            iVar7 = 0x252;
            pcVar37 = *(code **)(pcVar36 + 0x757e0);
            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;
            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);
            (*pcVar37)();
            (**(code **)(pcVar37 + 0x74da0))(iVar7);
            if (piStackY_1110 == (int *)0x0) {
              return false;
            }
            uVar30 = uVar29 + 7 >> 3;
            goto LAB_00018a68;
          }
          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);
LAB_000188d8:
          pIVar22 = (InadequacyList *)piVar3[1];
          i = i + 1;
          piVar31 = piVar31 + 1;
        } while (i < pIVar22->contributionCount);
      }
      piVar3 = (int *)*piVar3;
      iStack_10d8 = iStack_10d8 + 1;
    } while (piVar3 != (int *)0x0);
  }
  return SUB41(iStack_10d8,0);
LAB_00018a68:
  pIVar22 = (InadequacyList *)piStackY_1110[1];
  if (0 < pIVar22->contributionCount) {
    iVar8 = 0;
    piVar3 = piStackY_1110 + 2;
    do {
      while (*piVar3 == 0) {
        iVar8 = iVar8 + 1;
        piVar3 = piVar3 + 1;
        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;
      }
      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);
      pbVar18 = (byte *)*piVar3;
      pbVar24 = pbVar18 + uVar30;
      uVar2 = psVar1->content->number;
      if (pbVar18 < pbVar24) {
        pbVar28 = pbVar18;
        do {
          while( true ) {
            uVar26 = (uint)*pbVar28;
            pbVar32 = pbVar28 + 1;
            if (uVar26 != 0) break;
LAB_00018ae4:
            pbVar28 = pbVar32;
            if (pbVar24 <= pbVar32) goto LAB_00018bb4;
          }
          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;
          if ((uVar29 <= uVar27) ||
             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;
          while( true ) {
            uVar27 = uVar27 + 1;
            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {
              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);
              uVar26 = (uVar2 >> 5) - puVar17[1];
              if (uVar26 < (uint)puVar17[2]) {
                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);
                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);
              }
              else {
                (**(code **)*puVar17)(puVar17,uVar2);
                pbVar18 = (byte *)*piVar3;
              }
            }
            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;
            uVar26 = (uint)*pbVar28;
          }
          pbVar24 = pbVar18 + uVar30;
          pbVar28 = pbVar32;
        } while (pbVar32 < pbVar24);
      }
LAB_00018bb4:
      iVar8 = iVar8 + 1;
      pIVar22 = (InadequacyList *)piStackY_1110[1];
      piVar3 = piVar3 + 1;
    } while (iVar8 < pIVar22->contributionCount);
  }
LAB_00018bd0:
  piStackY_1110 = (int *)*piStackY_1110;
  if (piStackY_1110 == (int *)0x0) {
    return false;
  }
  goto LAB_00018a68;
}



uint FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  uint *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  undefined1 *puVar9;
  undefined4 *puVar10;
  byte *pbVar11;
  int *piVar12;
  int *piVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  byte *pbVar17;
  uint *puVar18;
  uint *puVar19;
  undefined4 unaff_s0;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  int *unaff_s1;
  uint uVar23;
  int iVar24;
  undefined4 unaff_s2;
  uint uVar25;
  int *piVar26;
  byte *pbVar27;
  undefined4 uVar28;
  undefined *puVar29;
  code *pcVar30;
  code *pcVar31;
  int *piStackY_1110;
  uint uStack_10d8;
  uint auStack_1078 [1024];
  undefined4 uStack_78;
  uint uStack_74;
  uint uStack_70;
  int *piStack_6c;
  undefined4 uStack_2c;
  
  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {
    if (param_1[(int)param_3 + 2] == 0) {
      return 1;
    }
    if (param_4 != 0) {
      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);
      pbVar17 = (byte *)param_1[(int)param_3 + 2];
      uVar25 = param_2 + 7 >> 3;
      pbVar11 = pbVar17 + uVar25;
      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);
      if (pbVar17 < pbVar11) {
        pbVar21 = pbVar17;
        do {
          while( true ) {
            uVar2 = (uint)*pbVar21;
            pbVar27 = pbVar21 + 1;
            if (uVar2 != 0) break;
LAB_000182bc:
            pbVar21 = pbVar27;
            if (pbVar11 <= pbVar27) {
              return 0;
            }
          }
          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;
          if ((param_2 <= uVar20) ||
             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;
          while( true ) {
            uVar20 = uVar20 + 1;
            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&
               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {
              uVar2 = (uVar23 >> 5) - piVar12[1];
              if (uVar2 < (uint)piVar12[2]) {
                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;
              }
              else {
                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);
              }
              if (uVar2 != 0) {
                return 1;
              }
              pbVar17 = (byte *)param_1[(int)param_3 + 2];
            }
            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;
            uVar2 = (uint)*pbVar21;
          }
          pbVar11 = pbVar17 + uVar25;
          pbVar21 = pbVar27;
        } while (pbVar27 < pbVar11);
      }
    }
    return 0;
  }
  puVar29 = PTR_0008d624 + 0x7fd0;
  FUN_00017fd0();
  piVar12 = *(int **)(puVar29 + 0x75b74);
  piStack_6c = (int *)*piVar12;
  puVar19 = param_3;
  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));
  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);
  puVar18 = (uint *)piVar13[2];
  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);
  if (puVar3 < puVar18) {
    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;
  }
  else {
    puVar18 = param_3;
    uVar23 = (**(code **)(*piVar13 + 0xc))();
  }
  if (uVar23 == 0) {
    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);
    *unaff_s1 = iVar4;
    uStack_78 = 0;
    uStack_74 = 0x400;
    do {
      puVar19 = (uint *)0x400;
      piVar13 = *(int **)(param_4 + iVar1 * 4);
      puVar18 = auStack_1078;
      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);
      if (uStack_74 == 0) break;
      uStack_70 = 0;
      do {
        puVar18 = (uint *)0x0;
        puVar3 = (uint *)auStack_1078[uStack_70];
        puVar19 = puVar3;
        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);
        if (iVar4 != 0) {
          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));
          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;
        }
        uStack_70 = uStack_70 + 1;
      } while (uStack_70 < uStack_74);
    } while (uStack_74 == 0x400);
  }
  if (piStack_6c == (int *)*piVar12) {
    return uVar23;
  }
  pcVar30 = *(code **)(puVar29 + 0x75b50);
  piVar12 = piStack_6c;
  uStack_10d8 = (*pcVar30)();
  if (piVar12 != (int *)0x0) {
    iVar1 = *(int *)(pcVar30 + 0x74fd8);
    piVar13 = *(int **)(pcVar30 + 0x75964);
    uStack_10d8 = 0;
    iVar4 = *(int *)(pcVar30 + 0x74fd8);
    iVar5 = *(int *)(pcVar30 + 0x74fd8);
    iVar6 = *(int *)(pcVar30 + 0x74fd8);
    iVar7 = *(int *)(pcVar30 + 0x74fd8);
    iVar8 = *(int *)(pcVar30 + 0x74fd8);
    do {
      if (0 < (int)puVar19) {
        puVar3 = (uint *)0x0;
        do {
          iVar14 = *piVar13;
          puVar9 = *(undefined1 **)(iVar14 + 0x14);
          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {
            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;
            *puVar9 = 0x20;
          }
          else {
            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);
          }
          puVar3 = (uint *)((int)puVar3 + 1);
        } while (puVar19 != puVar3);
      }
      (**(code **)(pcVar30 + 0x75818))
                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));
      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));
      iVar15 = piVar12[1];
      if (0 < *(int *)(iVar15 + 0x14)) {
        piVar26 = piVar12 + 2;
        iVar24 = 0;
        do {
          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);
          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);
          if (-2 < (int)puVar19) {
            iVar15 = 0;
            do {
              iVar16 = *piVar13;
              puVar9 = *(undefined1 **)(iVar16 + 0x14);
              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {
                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;
                *puVar9 = 0x20;
              }
              else {
                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);
              }
              iVar15 = iVar15 + 1;
            } while (iVar15 != (int)puVar19 + 2U);
          }
          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);
          if (iVar15 != iVar24) {
            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);
            if (iVar14 != -1) {
              (**(code **)(pcVar30 + 0x75818))
                        (*piVar13,1,iVar5 + 0x1280,
                         *(undefined4 *)
                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)
                          + 4));
              iVar14 = (**(code **)(pcVar30 + 0x75114))
                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);
              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {
                if (*piVar26 == 0) {
                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);
                }
                else {
                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);
                  Sbitset__fprint(*piVar26,puVar18,*piVar13);
                }
                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);
                goto LAB_000188d8;
              }
              FUN_00017fd0();
            }
            iVar1 = 0x252;
            pcVar31 = *(code **)(pcVar30 + 0x757e0);
            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;
            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);
            (*pcVar31)();
            (**(code **)(pcVar31 + 0x74da0))(iVar1);
            if (piStackY_1110 == (int *)0x0) {
              return 0;
            }
            uVar25 = uVar23 + 7 >> 3;
            goto LAB_00018a68;
          }
          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);
LAB_000188d8:
          iVar15 = piVar12[1];
          iVar24 = iVar24 + 1;
          piVar26 = piVar26 + 1;
        } while (iVar24 < *(int *)(iVar15 + 0x14));
      }
      piVar12 = (int *)*piVar12;
      uStack_10d8 = uStack_10d8 + 1;
    } while (piVar12 != (int *)0x0);
  }
  return uStack_10d8;
LAB_00018a68:
  iVar4 = piStackY_1110[1];
  if (0 < *(int *)(iVar4 + 0x14)) {
    iVar5 = 0;
    piVar12 = piStackY_1110 + 2;
    do {
      while (*piVar12 == 0) {
        iVar5 = iVar5 + 1;
        piVar12 = piVar12 + 1;
        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;
      }
      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);
      pbVar11 = (byte *)*piVar12;
      pbVar17 = pbVar11 + uVar25;
      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);
      if (pbVar11 < pbVar17) {
        pbVar21 = pbVar11;
        do {
          while( true ) {
            uVar20 = (uint)*pbVar21;
            pbVar27 = pbVar21 + 1;
            if (uVar20 != 0) break;
LAB_00018ae4:
            pbVar21 = pbVar27;
            if (pbVar17 <= pbVar27) goto LAB_00018bb4;
          }
          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;
          if ((uVar23 <= uVar22) ||
             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;
          while( true ) {
            uVar22 = uVar22 + 1;
            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {
              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);
              uVar20 = (uVar2 >> 5) - puVar10[1];
              if (uVar20 < (uint)puVar10[2]) {
                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);
                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);
              }
              else {
                (**(code **)*puVar10)(puVar10,uVar2);
                pbVar11 = (byte *)*piVar12;
              }
            }
            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;
            uVar20 = (uint)*pbVar21;
          }
          pbVar17 = pbVar11 + uVar25;
          pbVar21 = pbVar27;
        } while (pbVar27 < pbVar17);
      }
LAB_00018bb4:
      iVar5 = iVar5 + 1;
      iVar4 = piStackY_1110[1];
      piVar12 = piVar12 + 1;
    } while (iVar5 < *(int *)(iVar4 + 0x14));
  }
LAB_00018bd0:
  piStackY_1110 = (int *)*piStackY_1110;
  if (piStackY_1110 == (int *)0x0) {
    return 0;
  }
  goto LAB_00018a68;
}


lui gp,0x8
addiu gp,gp,-0x2c20
addu gp,gp,t9
lw v1,0x4(a0)
addiu sp,sp,-0x40
sw gp,0x10(sp)
sw ra,0x3c(sp)
sw s8,0x38(sp)
sw s7,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
lw v0,0x14(v1)
slt v0,a2,v0
beq v0,zero,0x00018408
_sll s7,a2,0x2
addu s7,a0,s7
lw v0,0x8(s7)
beq v0,zero,0x00018394
_lw ra,0x3c(sp)
beq a3,zero,0x000183d8
_or s6,a3,zero
lw t9,-0x7ea4(gp)
or s5,a1,zero
or a0,v1,zero
or a1,a2,zero
bal 0x0001a714
_addiu s2,s5,0x7
lw a1,0x8(s7)
srl s2,s2,0x3
lw v1,0x28(v0)
addu a0,a1,s2
sltu v0,a1,a0
beq v0,zero,0x000183d4
_lw s1,0x80(v1)
srl s8,s1,0x5
or s0,a1,zero
b 0x000182c8
_andi s3,s1,0x1f
sltu v0,s4,a0
beq v0,zero,0x000183d4
_or s0,s4,zero
lbu v0,0x0(s0)
beq v0,zero,0x000182bc
_addiu s4,s0,0x1
subu s0,s0,a1
sll s0,s0,0x3
sltu v1,s0,s5
beq v1,zero,0x000182bc
_srl v1,s0,0x3
addu v1,a1,v1
sltu v1,v1,s4
beq v1,zero,0x000182bc
_nop
b 0x0001833c
_addiu s0,s0,0x1
lw v1,0xc(a0)
addu v0,v1,v0
lw v0,0x0(v0)
srlv v0,v0,s3
andi v0,v0,0x1
bne v0,zero,0x00018394
_lw ra,0x3c(sp)
lw a1,0x8(s7)
beq s5,s0,0x000183c4
_srl v0,s0,0x3
addu v0,a1,v0
sltu v0,v0,s4
beq v0,zero,0x000183c4
_addiu s0,s0,0x1
lbu v0,-0x1(s4)
subu v1,zero,s0
andi v1,v1,0x7
srav v0,v0,v1
andi v0,v0,0x1
beq v0,zero,0x00018320
_sll v0,s0,0x2
addu v0,s6,v0
lw a0,-0x4(v0)
beq a0,zero,0x00018320
_nop
lw v0,0x4(a0)
lw v1,0x8(a0)
subu v0,s8,v0
sltu v1,v0,v1
bne v1,zero,0x00018300
_sll v0,v0,0x2
lw v0,0x0(a0)
lw t9,0xc(v0)
jalr t9
_or a1,s1,zero
beq v0,zero,0x0001831c
_lw ra,0x3c(sp)
li v0,0x1
lw s8,0x38(sp)
lw s7,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x40
addu a0,a1,s2
sltu v0,s4,a0
bne v0,zero,0x000182c8
_or s0,s4,zero
lw ra,0x3c(sp)
or v0,zero,zero
lw s8,0x38(sp)
lw s7,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x40
lw t9,-0x7fcc(gp)
addiu t9,t9,0x7fd0
bal 0x00017fd0
_nop
(translation_unit "uint FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}\n\n" (function_definition "uint FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}" type_identifier (function_declarator "FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,uint param_2,uint *param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "undefined4 uVar28;" type_identifier identifier ;) (declaration "undefined *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "int *piStackY_1110;" primitive_type (pointer_declarator "*piStackY_1110" * identifier) ;) (declaration "uint uStack_10d8;" type_identifier identifier ;) (declaration "uint auStack_1078 [1024];" type_identifier (array_declarator "auStack_1078 [1024]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "uint uStack_70;" type_identifier identifier ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "undefined4 uStack_2c;" type_identifier identifier ;) (if_statement "if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }" if (parenthesized_expression "((int)param_3 < *(int *)(param_1[1] + 0x14))" ( (binary_expression "(int)param_3 < *(int *)(param_1[1] + 0x14)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_1[1] + 0x14)" * (cast_expression "(int *)(param_1[1] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x14)" ( (binary_expression "param_1[1] + 0x14" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }" { (if_statement "if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_1[(int)param_3 + 2] == 0)" ( (binary_expression "param_1[(int)param_3 + 2] == 0" (subscript_expression "param_1[(int)param_3 + 2]" identifier [ (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }" { (expression_statement "iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);" (assignment_expression "iVar1 = InadequacyList__getContributionToken(param_1[1],param_3)" identifier = (call_expression "InadequacyList__getContributionToken(param_1[1],param_3)" identifier (argument_list "(param_1[1],param_3)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "pbVar17 = (byte *)param_1[(int)param_3 + 2];" (assignment_expression "pbVar17 = (byte *)param_1[(int)param_3 + 2]" identifier = (cast_expression "(byte *)param_1[(int)param_3 + 2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[(int)param_3 + 2]" identifier [ (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]))) ;) (expression_statement "uVar25 = param_2 + 7 >> 3;" (assignment_expression "uVar25 = param_2 + 7 >> 3" identifier = (binary_expression "param_2 + 7 >> 3" (binary_expression "param_2 + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "pbVar11 = pbVar17 + uVar25;" (assignment_expression "pbVar11 = pbVar17 + uVar25" identifier = (binary_expression "pbVar17 + uVar25" identifier + identifier)) ;) (expression_statement "uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);" (assignment_expression "uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" * (cast_expression "(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 0x28) + 0x80)" ( (binary_expression "*(int *)(iVar1 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar1 + 0x28)" * (cast_expression "(int *)(iVar1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x28)" ( (binary_expression "iVar1 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }" if (parenthesized_expression "(pbVar17 < pbVar11)" ( (binary_expression "pbVar17 < pbVar11" identifier < identifier) )) (compound_statement "{\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }" { (expression_statement "pbVar21 = pbVar17;" (assignment_expression "pbVar21 = pbVar17" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);" do (compound_statement "{\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        }" { (while_statement "while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }" { (expression_statement "uVar2 = (uint)*pbVar21;" (assignment_expression "uVar2 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar27 = pbVar21 + 1;" (assignment_expression "pbVar27 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 != 0) break;" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000182bc:\n            pbVar21 = pbVar27;" statement_identifier : (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;)) (if_statement "if (pbVar11 <= pbVar27) {\n              return 0;\n            }" if (parenthesized_expression "(pbVar11 <= pbVar27)" ( (binary_expression "pbVar11 <= pbVar27" identifier <= identifier) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;" (assignment_expression "uVar20 = ((int)pbVar21 - (int)pbVar17) * 8" identifier = (binary_expression "((int)pbVar21 - (int)pbVar17) * 8" (parenthesized_expression "((int)pbVar21 - (int)pbVar17)" ( (binary_expression "(int)pbVar21 - (int)pbVar17" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;" if (parenthesized_expression "((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)))" ( (binary_expression "(param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))" (parenthesized_expression "(param_2 <= uVar20)" ( (binary_expression "param_2 <= uVar20" identifier <= identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))" ( (binary_expression "pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" identifier <= (binary_expression "pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" identifier + (parenthesized_expression "((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" ( (binary_expression "(int)pbVar21 - (int)pbVar17 & 0x1fffffff" (binary_expression "(int)pbVar21 - (int)pbVar17" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal) )))) ))) )) (goto_statement "goto LAB_000182bc;" goto statement_identifier ;)) (while_statement "while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }" { (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;) (if_statement "if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }" if (parenthesized_expression "((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0))" ( (binary_expression "(((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)" (parenthesized_expression "(((int)uVar2 >> (-uVar20 & 7) & 1U) != 0)" ( (binary_expression "((int)uVar2 >> (-uVar20 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar2 >> (-uVar20 & 7) & 1U)" ( (binary_expression "(int)uVar2 >> (-uVar20 & 7) & 1U" (binary_expression "(int)uVar2 >> (-uVar20 & 7)" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(-uVar20 & 7)" ( (binary_expression "-uVar20 & 7" (unary_expression "-uVar20" - identifier) & number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)" ( (comma_expression "piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0" (assignment_expression "piVar12 = *(int **)(param_4 + uVar20 * 4 + -4)" identifier = (pointer_expression "*(int **)(param_4 + uVar20 * 4 + -4)" * (cast_expression "(int **)(param_4 + uVar20 * 4 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + uVar20 * 4 + -4)" ( (binary_expression "param_4 + uVar20 * 4 + -4" (binary_expression "param_4 + uVar20 * 4" identifier + (binary_expression "uVar20 * 4" identifier * number_literal)) + number_literal) ))))) , (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }" { (expression_statement "uVar2 = (uVar23 >> 5) - piVar12[1];" (assignment_expression "uVar2 = (uVar23 >> 5) - piVar12[1]" identifier = (binary_expression "(uVar23 >> 5) - piVar12[1]" (parenthesized_expression "(uVar23 >> 5)" ( (binary_expression "uVar23 >> 5" identifier >> number_literal) )) - (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" if (parenthesized_expression "(uVar2 < (uint)piVar12[2])" ( (binary_expression "uVar2 < (uint)piVar12[2]" identifier < (cast_expression "(uint)piVar12[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }" { (expression_statement "uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;" (assignment_expression "uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1" identifier = (binary_expression "*(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1" (binary_expression "*(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f)" (pointer_expression "*(uint *)(piVar12[3] + uVar2 * 4)" * (cast_expression "(uint *)(piVar12[3] + uVar2 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[3] + uVar2 * 4)" ( (binary_expression "piVar12[3] + uVar2 * 4" (subscript_expression "piVar12[3]" identifier [ number_literal ]) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) >> (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) & number_literal)) ;) }) (else_clause "else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" else (compound_statement "{\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" { (expression_statement "uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);" (assignment_expression "uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23)" identifier = (call_expression "(**(code **)(*piVar12 + 0xc))(piVar12,uVar23)" (parenthesized_expression "(**(code **)(*piVar12 + 0xc))" ( (pointer_expression "**(code **)(*piVar12 + 0xc)" * (pointer_expression "*(code **)(*piVar12 + 0xc)" * (cast_expression "(code **)(*piVar12 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0xc)" ( (binary_expression "*piVar12 + 0xc" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,uVar23)" ( identifier , identifier )))) ;) }))) (if_statement "if (uVar2 != 0) {\n                return 1;\n              }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pbVar17 = (byte *)param_1[(int)param_3 + 2];" (assignment_expression "pbVar17 = (byte *)param_1[(int)param_3 + 2]" identifier = (cast_expression "(byte *)param_1[(int)param_3 + 2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[(int)param_3 + 2]" identifier [ (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]))) ;) })) (if_statement "if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;" if (parenthesized_expression "((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3)))" ( (binary_expression "(param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))" (parenthesized_expression "(param_2 == uVar20)" ( (binary_expression "param_2 == uVar20" identifier == identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar17 + (uVar20 >> 3))" ( (binary_expression "pbVar27 <= pbVar17 + (uVar20 >> 3)" identifier <= (binary_expression "pbVar17 + (uVar20 >> 3)" identifier + (parenthesized_expression "(uVar20 >> 3)" ( (binary_expression "uVar20 >> 3" identifier >> number_literal) )))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = (uint)*pbVar21;" (assignment_expression "uVar2 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar11 = pbVar17 + uVar25;" (assignment_expression "pbVar11 = pbVar17 + uVar25" identifier = (binary_expression "pbVar17 + uVar25" identifier + identifier)) ;) (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar27 < pbVar11)" ( (binary_expression "pbVar27 < pbVar11" identifier < identifier) )) ;) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar29 = PTR_0008d624 + 0x7fd0;" (assignment_expression "puVar29 = PTR_0008d624 + 0x7fd0" identifier = (binary_expression "PTR_0008d624 + 0x7fd0" identifier + number_literal)) ;) (expression_statement "FUN_00017fd0();" (call_expression "FUN_00017fd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(puVar29 + 0x75b74);" (assignment_expression "piVar12 = *(int **)(puVar29 + 0x75b74)" identifier = (pointer_expression "*(int **)(puVar29 + 0x75b74)" * (cast_expression "(int **)(puVar29 + 0x75b74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x75b74)" ( (binary_expression "puVar29 + 0x75b74" identifier + number_literal) ))))) ;) (expression_statement "piStack_6c = (int *)*piVar12;" (assignment_expression "piStack_6c = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "puVar19 = param_3;" (assignment_expression "puVar19 = param_3" identifier = identifier) ;) (expression_statement "iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));" (assignment_expression "iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80))" identifier = (call_expression "map_goto(*param_1,*(undefined4 *)(param_2 + 0x80))" identifier (argument_list "(*param_1,*(undefined4 *)(param_2 + 0x80))" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*(undefined4 *)(param_2 + 0x80)" * (cast_expression "(undefined4 *)(param_2 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x80)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) )))) )))) ;) (expression_statement "piVar13 = *(int **)(&_gp_1 + iVar1 * 4);" (assignment_expression "piVar13 = *(int **)(&_gp_1 + iVar1 * 4)" identifier = (pointer_expression "*(int **)(&_gp_1 + iVar1 * 4)" * (cast_expression "(int **)(&_gp_1 + iVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&_gp_1 + iVar1 * 4)" ( (binary_expression "&_gp_1 + iVar1 * 4" (pointer_expression "&_gp_1" & identifier) + (binary_expression "iVar1 * 4" identifier * number_literal)) ))))) ;) (expression_statement "puVar18 = (uint *)piVar13[2];" (assignment_expression "puVar18 = (uint *)piVar13[2]" identifier = (cast_expression "(uint *)piVar13[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);" (assignment_expression "puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1])" identifier = (cast_expression "(uint *)(((uint)param_3 >> 5) - piVar13[1])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)param_3 >> 5) - piVar13[1])" ( (binary_expression "((uint)param_3 >> 5) - piVar13[1]" (parenthesized_expression "((uint)param_3 >> 5)" ( (binary_expression "(uint)param_3 >> 5" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - (subscript_expression "piVar13[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" if (parenthesized_expression "(puVar3 < puVar18)" ( (binary_expression "puVar3 < puVar18" identifier < identifier) )) (compound_statement "{\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }" { (expression_statement "uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;" (assignment_expression "uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1" identifier = (binary_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1" (binary_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f)" (pointer_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4)" * (cast_expression "(uint *)(piVar13[3] + (int)puVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13[3] + (int)puVar3 * 4)" ( (binary_expression "piVar13[3] + (int)puVar3 * 4" (subscript_expression "piVar13[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar3 * 4" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) >> (parenthesized_expression "((uint)param_3 & 0x1f)" ( (binary_expression "(uint)param_3 & 0x1f" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal)) ;) }) (else_clause "else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" else (compound_statement "{\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" { (expression_statement "puVar18 = param_3;" (assignment_expression "puVar18 = param_3" identifier = identifier) ;) (expression_statement "uVar23 = (**(code **)(*piVar13 + 0xc))();" (assignment_expression "uVar23 = (**(code **)(*piVar13 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar13 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar13 + 0xc))" ( (pointer_expression "**(code **)(*piVar13 + 0xc)" * (pointer_expression "*(code **)(*piVar13 + 0xc)" * (cast_expression "(code **)(*piVar13 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0xc)" ( (binary_expression "*piVar13 + 0xc" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" { (expression_statement "iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);" (assignment_expression "iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2)" identifier = (call_expression "Sbitset__new_on_obstack(param_1[9],unaff_s2)" identifier (argument_list "(param_1[9],unaff_s2)" ( (subscript_expression "param_1[9]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "*unaff_s1 = iVar4;" (assignment_expression "*unaff_s1 = iVar4" (pointer_expression "*unaff_s1" * identifier) = identifier) ;) (expression_statement "uStack_78 = 0;" (assignment_expression "uStack_78 = 0" identifier = number_literal) ;) (expression_statement "uStack_74 = 0x400;" (assignment_expression "uStack_74 = 0x400" identifier = number_literal) ;) (do_statement "do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);" do (compound_statement "{\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    }" { (expression_statement "puVar19 = (uint *)0x400;" (assignment_expression "puVar19 = (uint *)0x400" identifier = (cast_expression "(uint *)0x400" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar13 = *(int **)(param_4 + iVar1 * 4);" (assignment_expression "piVar13 = *(int **)(param_4 + iVar1 * 4)" identifier = (pointer_expression "*(int **)(param_4 + iVar1 * 4)" * (cast_expression "(int **)(param_4 + iVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + iVar1 * 4)" ( (binary_expression "param_4 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) ))))) ;) (expression_statement "puVar18 = auStack_1078;" (assignment_expression "puVar18 = auStack_1078" identifier = identifier) ;) (expression_statement "uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);" (assignment_expression "uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78)" identifier = (call_expression "(**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78)" (parenthesized_expression "(**(code **)(*piVar13 + 0x74))" ( (pointer_expression "**(code **)(*piVar13 + 0x74)" * (pointer_expression "*(code **)(*piVar13 + 0x74)" * (cast_expression "(code **)(*piVar13 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0x74)" ( (binary_expression "*piVar13 + 0x74" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "(piVar13,auStack_1078,0x400,&uStack_78)" ( identifier , identifier , number_literal , (pointer_expression "&uStack_78" & identifier) )))) ;) (if_statement "if (uStack_74 == 0) break;" if (parenthesized_expression "(uStack_74 == 0)" ( (binary_expression "uStack_74 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (do_statement "do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);" do (compound_statement "{\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      }" { (expression_statement "puVar18 = (uint *)0x0;" (assignment_expression "puVar18 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar3 = (uint *)auStack_1078[uStack_70];" (assignment_expression "puVar3 = (uint *)auStack_1078[uStack_70]" identifier = (cast_expression "(uint *)auStack_1078[uStack_70]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "auStack_1078[uStack_70]" identifier [ identifier ]))) ;) (expression_statement "puVar19 = puVar3;" (assignment_expression "puVar19 = puVar3" identifier = identifier) ;) (expression_statement "iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);" (assignment_expression "iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" identifier = (call_expression "ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" identifier (argument_list "(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" ( identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }" { (expression_statement "pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));" (assignment_expression "pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3))" identifier = (cast_expression "(byte *)(*unaff_s1 + ((uint)puVar3 >> 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*unaff_s1 + ((uint)puVar3 >> 3))" ( (binary_expression "*unaff_s1 + ((uint)puVar3 >> 3)" (pointer_expression "*unaff_s1" * identifier) + (parenthesized_expression "((uint)puVar3 >> 3)" ( (binary_expression "(uint)puVar3 >> 3" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "*pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;" (assignment_expression "*pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11" (pointer_expression "*pbVar11" * identifier) = (binary_expression "(byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11" (call_expression "(byte)(1 << (~(uint)puVar3 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (~(uint)puVar3 & 7))" ( (binary_expression "1 << (~(uint)puVar3 & 7)" number_literal << (parenthesized_expression "(~(uint)puVar3 & 7)" ( (binary_expression "~(uint)puVar3 & 7" (unary_expression "~(uint)puVar3" ~ (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) & number_literal) ))) ))) | (pointer_expression "*pbVar11" * identifier))) ;) })) (expression_statement "uStack_70 = uStack_70 + 1;" (assignment_expression "uStack_70 = uStack_70 + 1" identifier = (binary_expression "uStack_70 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uStack_70 < uStack_74)" ( (binary_expression "uStack_70 < uStack_74" identifier < identifier) )) ;) }) while (parenthesized_expression "(uStack_74 == 0x400)" ( (binary_expression "uStack_74 == 0x400" identifier == number_literal) )) ;) })) (if_statement "if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }" if (parenthesized_expression "(piStack_6c == (int *)*piVar12)" ( (binary_expression "piStack_6c == (int *)*piVar12" identifier == (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) )) (compound_statement "{\n    return uVar23;\n  }" { (return_statement "return uVar23;" return identifier ;) })) (expression_statement "pcVar30 = *(code **)(puVar29 + 0x75b50);" (assignment_expression "pcVar30 = *(code **)(puVar29 + 0x75b50)" identifier = (pointer_expression "*(code **)(puVar29 + 0x75b50)" * (cast_expression "(code **)(puVar29 + 0x75b50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x75b50)" ( (binary_expression "puVar29 + 0x75b50" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = piStack_6c;" (assignment_expression "piVar12 = piStack_6c" identifier = identifier) ;) (expression_statement "uStack_10d8 = (*pcVar30)();" (assignment_expression "uStack_10d8 = (*pcVar30)()" identifier = (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }" { (expression_statement "iVar1 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar1 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = *(int **)(pcVar30 + 0x75964);" (assignment_expression "piVar13 = *(int **)(pcVar30 + 0x75964)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x75964)" * (cast_expression "(int **)(pcVar30 + 0x75964)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75964)" ( (binary_expression "pcVar30 + 0x75964" identifier + number_literal) ))))) ;) (expression_statement "uStack_10d8 = 0;" (assignment_expression "uStack_10d8 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar4 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar5 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar6 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar7 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar8 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);" do (compound_statement "{\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    }" { (if_statement "if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }" if (parenthesized_expression "(0 < (int)puVar19)" ( (binary_expression "0 < (int)puVar19" number_literal < (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }" { (expression_statement "puVar3 = (uint *)0x0;" (assignment_expression "puVar3 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);" do (compound_statement "{\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        }" { (expression_statement "iVar14 = *piVar13;" (assignment_expression "iVar14 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "puVar9 = *(undefined1 **)(iVar14 + 0x14);" (assignment_expression "puVar9 = *(undefined1 **)(iVar14 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar14 + 0x14)" * (cast_expression "(undefined1 **)(iVar14 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" if (parenthesized_expression "(puVar9 < *(undefined1 **)(iVar14 + 0x18))" ( (binary_expression "puVar9 < *(undefined1 **)(iVar14 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar14 + 0x18)" * (cast_expression "(undefined1 **)(iVar14 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x18)" ( (binary_expression "iVar14 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }" { (expression_statement "*(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;" (assignment_expression "*(undefined1 **)(iVar14 + 0x14) = puVar9 + 1" (pointer_expression "*(undefined1 **)(iVar14 + 0x14)" * (cast_expression "(undefined1 **)(iVar14 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "*puVar9 = 0x20;" (assignment_expression "*puVar9 = 0x20" (pointer_expression "*puVar9" * identifier) = number_literal) ;) }) (else_clause "else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" else (compound_statement "{\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" { (expression_statement "(**(code **)(pcVar30 + 0x75834))(iVar14,0x20);" (call_expression "(**(code **)(pcVar30 + 0x75834))(iVar14,0x20)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75834))" ( (pointer_expression "**(code **)(pcVar30 + 0x75834)" * (pointer_expression "*(code **)(pcVar30 + 0x75834)" * (cast_expression "(code **)(pcVar30 + 0x75834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75834)" ( (binary_expression "pcVar30 + 0x75834" identifier + number_literal) ))))) )) (argument_list "(iVar14,0x20)" ( identifier , number_literal ))) ;) }))) (expression_statement "puVar3 = (uint *)((int)puVar3 + 1);" (assignment_expression "puVar3 = (uint *)((int)puVar3 + 1)" identifier = (cast_expression "(uint *)((int)puVar3 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 1)" ( (binary_expression "(int)puVar3 + 1" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(puVar19 != puVar3)" ( (binary_expression "puVar19 != puVar3" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));" (call_expression "(**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10))" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10))" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar4 + 0x1204" identifier + number_literal) , identifier , (pointer_expression "**(undefined4 **)(piVar12[1] + 0x10)" * (pointer_expression "*(undefined4 **)(piVar12[1] + 0x10)" * (cast_expression "(undefined4 **)(piVar12[1] + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[1] + 0x10)" ( (binary_expression "piVar12[1] + 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) ))))) ))) ;) (expression_statement "iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));" (assignment_expression "iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c))" identifier = (call_expression "(**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c))" (parenthesized_expression "(**(code **)(pcVar30 + 0x7510c))" ( (pointer_expression "**(code **)(pcVar30 + 0x7510c)" * (pointer_expression "*(code **)(pcVar30 + 0x7510c)" * (cast_expression "(code **)(pcVar30 + 0x7510c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x7510c)" ( (binary_expression "pcVar30 + 0x7510c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(piVar12[1] + 0x1c))" ( (pointer_expression "*(undefined4 *)(piVar12[1] + 0x1c)" * (cast_expression "(undefined4 *)(piVar12[1] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x1c)" ( (binary_expression "piVar12[1] + 0x1c" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "iVar15 = piVar12[1];" (assignment_expression "iVar15 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }" if (parenthesized_expression "(0 < *(int *)(iVar15 + 0x14))" ( (binary_expression "0 < *(int *)(iVar15 + 0x14)" number_literal < (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }" { (expression_statement "piVar26 = piVar12 + 2;" (assignment_expression "piVar26 = piVar12 + 2" identifier = (binary_expression "piVar12 + 2" identifier + number_literal)) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));" do (compound_statement "{\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        }" { (expression_statement "iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);" (assignment_expression "iVar15 = InadequacyList__getContributionToken(iVar15,iVar24)" identifier = (call_expression "InadequacyList__getContributionToken(iVar15,iVar24)" identifier (argument_list "(iVar15,iVar24)" ( identifier , identifier )))) ;) (expression_statement "uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);" (assignment_expression "uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" * (cast_expression "(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x28) + 0x80)" ( (binary_expression "*(int *)(iVar15 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar15 + 0x28)" * (cast_expression "(int *)(iVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x28)" ( (binary_expression "iVar15 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }" if (parenthesized_expression "(-2 < (int)puVar19)" ( (binary_expression "-2 < (int)puVar19" number_literal < (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);" do (compound_statement "{\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            }" { (expression_statement "iVar16 = *piVar13;" (assignment_expression "iVar16 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "puVar9 = *(undefined1 **)(iVar16 + 0x14);" (assignment_expression "puVar9 = *(undefined1 **)(iVar16 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar16 + 0x14)" * (cast_expression "(undefined1 **)(iVar16 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" if (parenthesized_expression "(puVar9 < *(undefined1 **)(iVar16 + 0x18))" ( (binary_expression "puVar9 < *(undefined1 **)(iVar16 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar16 + 0x18)" * (cast_expression "(undefined1 **)(iVar16 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }" { (expression_statement "*(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;" (assignment_expression "*(undefined1 **)(iVar16 + 0x14) = puVar9 + 1" (pointer_expression "*(undefined1 **)(iVar16 + 0x14)" * (cast_expression "(undefined1 **)(iVar16 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "*puVar9 = 0x20;" (assignment_expression "*puVar9 = 0x20" (pointer_expression "*puVar9" * identifier) = number_literal) ;) }) (else_clause "else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" else (compound_statement "{\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" { (expression_statement "(**(code **)(pcVar30 + 0x75834))(iVar16,0x20);" (call_expression "(**(code **)(pcVar30 + 0x75834))(iVar16,0x20)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75834))" ( (pointer_expression "**(code **)(pcVar30 + 0x75834)" * (pointer_expression "*(code **)(pcVar30 + 0x75834)" * (cast_expression "(code **)(pcVar30 + 0x75834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75834)" ( (binary_expression "pcVar30 + 0x75834" identifier + number_literal) ))))) )) (argument_list "(iVar16,0x20)" ( identifier , number_literal ))) ;) }))) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != (int)puVar19 + 2U)" ( (binary_expression "iVar15 != (int)puVar19 + 2U" identifier != (binary_expression "(int)puVar19 + 2U" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) ;) })) (expression_statement "iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);" (assignment_expression "iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1])" identifier = (call_expression "InadequacyList__getShiftContributionIndex(piVar12[1])" identifier (argument_list "(piVar12[1])" ( (subscript_expression "piVar12[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }" if (parenthesized_expression "(iVar15 != iVar24)" ( (binary_expression "iVar15 != iVar24" identifier != identifier) )) (compound_statement "{\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }" { (expression_statement "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);" (call_expression "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar1 + 0x124c,uVar28)" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar1 + 0x124c" identifier + number_literal) , identifier ))) ;) (if_statement "if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }" if (parenthesized_expression "(iVar14 != -1)" ( (binary_expression "iVar14 != -1" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }" { (expression_statement "(**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));" (call_expression "(**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4))" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4))" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar5 + 0x1280" identifier + number_literal) , (pointer_expression "*(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" * (cast_expression "(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" ( (binary_expression "*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4" (pointer_expression "*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" * (cast_expression "(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" ( (binary_expression "*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4" (pointer_expression "*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(piVar12[1] + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar12[1] + 0x10) + 0xc)" ( (binary_expression "*(int *)(piVar12[1] + 0x10) + 0xc" (pointer_expression "*(int *)(piVar12[1] + 0x10)" * (cast_expression "(int *)(piVar12[1] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x10)" ( (binary_expression "piVar12[1] + 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) + number_literal) )))) + (binary_expression "(iVar14 + 2) * 4" (parenthesized_expression "(iVar14 + 2)" ( (binary_expression "iVar14 + 2" identifier + number_literal) )) * number_literal)) )))) + number_literal) )))) ))) ;) (expression_statement "iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);" (assignment_expression "iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" identifier = (call_expression "(**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75114))" ( (pointer_expression "**(code **)(pcVar30 + 0x75114)" * (pointer_expression "*(code **)(pcVar30 + 0x75114)" * (cast_expression "(code **)(pcVar30 + 0x75114)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75114)" ( (binary_expression "pcVar30 + 0x75114" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" ( (pointer_expression "*(undefined4 *)(piVar12[1] + 0x1c)" * (cast_expression "(undefined4 *)(piVar12[1] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x1c)" ( (binary_expression "piVar12[1] + 0x1c" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) , (binary_expression "iVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }" if (parenthesized_expression "(iVar24 < *(int *)(piVar12[1] + 0x14))" ( (binary_expression "iVar24 < *(int *)(piVar12[1] + 0x14)" identifier < (pointer_expression "*(int *)(piVar12[1] + 0x14)" * (cast_expression "(int *)(piVar12[1] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x14)" ( (binary_expression "piVar12[1] + 0x14" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }" { (if_statement "if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" if (parenthesized_expression "(*piVar26 == 0)" ( (binary_expression "*piVar26 == 0" (pointer_expression "*piVar26" * identifier) == number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }" { (expression_statement "(**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);" (call_expression "(**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13)" (parenthesized_expression "(**(code **)(pcVar30 + 0x758f4))" ( (pointer_expression "**(code **)(pcVar30 + 0x758f4)" * (pointer_expression "*(code **)(pcVar30 + 0x758f4)" * (cast_expression "(code **)(pcVar30 + 0x758f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x758f4)" ( (binary_expression "pcVar30 + 0x758f4" identifier + number_literal) ))))) )) (argument_list "(iVar7 + 0x12a0,1,8,*piVar13)" ( (binary_expression "iVar7 + 0x12a0" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*piVar13" * identifier) ))) ;) }) (else_clause "else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" else (compound_statement "{\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" { (expression_statement "(**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);" (call_expression "(**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9)" (parenthesized_expression "(**(code **)(pcVar30 + 0x758f4))" ( (pointer_expression "**(code **)(pcVar30 + 0x758f4)" * (pointer_expression "*(code **)(pcVar30 + 0x758f4)" * (cast_expression "(code **)(pcVar30 + 0x758f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x758f4)" ( (binary_expression "pcVar30 + 0x758f4" identifier + number_literal) ))))) )) (argument_list "(iVar6 + 0x12ac,1,9)" ( (binary_expression "iVar6 + 0x12ac" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "Sbitset__fprint(*piVar26,puVar18,*piVar13);" (call_expression "Sbitset__fprint(*piVar26,puVar18,*piVar13)" identifier (argument_list "(*piVar26,puVar18,*piVar13)" ( (pointer_expression "*piVar26" * identifier) , identifier , (pointer_expression "*piVar13" * identifier) ))) ;) }))) (expression_statement "(**(code **)(pcVar30 + 0x75830))(10,*piVar13);" (call_expression "(**(code **)(pcVar30 + 0x75830))(10,*piVar13)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75830))" ( (pointer_expression "**(code **)(pcVar30 + 0x75830)" * (pointer_expression "*(code **)(pcVar30 + 0x75830)" * (cast_expression "(code **)(pcVar30 + 0x75830)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75830)" ( (binary_expression "pcVar30 + 0x75830" identifier + number_literal) ))))) )) (argument_list "(10,*piVar13)" ( number_literal , (pointer_expression "*piVar13" * identifier) ))) ;) (goto_statement "goto LAB_000188d8;" goto statement_identifier ;) })) (expression_statement "FUN_00017fd0();" (call_expression "FUN_00017fd0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar1 = 0x252;" (assignment_expression "iVar1 = 0x252" identifier = number_literal) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x757e0);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x757e0)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x757e0)" * (cast_expression "(code **)(pcVar30 + 0x757e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x757e0)" ( (binary_expression "pcVar30 + 0x757e0" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;" (assignment_expression "uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4" identifier = (binary_expression "*(int *)(pcVar30 + 0x74fd8) + 0x11b4" (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);" (assignment_expression "piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" identifier = (cast_expression "(int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" ( (binary_expression "*(int *)(pcVar30 + 0x74fd8) + 0x1264" (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar31 + 0x74da0))(iVar1);" (call_expression "(**(code **)(pcVar31 + 0x74da0))(iVar1)" (parenthesized_expression "(**(code **)(pcVar31 + 0x74da0))" ( (pointer_expression "**(code **)(pcVar31 + 0x74da0)" * (pointer_expression "*(code **)(pcVar31 + 0x74da0)" * (cast_expression "(code **)(pcVar31 + 0x74da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x74da0)" ( (binary_expression "pcVar31 + 0x74da0" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (if_statement "if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }" if (parenthesized_expression "(piStackY_1110 == (int *)0x0)" ( (binary_expression "piStackY_1110 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar25 = uVar23 + 7 >> 3;" (assignment_expression "uVar25 = uVar23 + 7 >> 3" identifier = (binary_expression "uVar23 + 7 >> 3" (binary_expression "uVar23 + 7" identifier + number_literal) >> number_literal)) ;) (goto_statement "goto LAB_00018a68;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);" (call_expression "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar8 + 0x122c,uVar28)" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar8 + 0x122c" identifier + number_literal) , identifier ))) ;) (labeled_statement "LAB_000188d8:\n          iVar15 = piVar12[1];" statement_identifier : (expression_statement "iVar15 = piVar12[1];" (assignment_expression "iVar15 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 < *(int *)(iVar15 + 0x14))" ( (binary_expression "iVar24 < *(int *)(iVar15 + 0x14)" identifier < (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar12 = (int *)*piVar12;" (assignment_expression "piVar12 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "uStack_10d8 = uStack_10d8 + 1;" (assignment_expression "uStack_10d8 = uStack_10d8 + 1" identifier = (binary_expression "uStack_10d8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return uStack_10d8;" return identifier ;) (labeled_statement "LAB_00018a68:\n  iVar4 = piStackY_1110[1];" statement_identifier : (expression_statement "iVar4 = piStackY_1110[1];" (assignment_expression "iVar4 = piStackY_1110[1]" identifier = (subscript_expression "piStackY_1110[1]" identifier [ number_literal ])) ;)) (if_statement "if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }" if (parenthesized_expression "(0 < *(int *)(iVar4 + 0x14))" ( (binary_expression "0 < *(int *)(iVar4 + 0x14)" number_literal < (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "piVar12 = piStackY_1110 + 2;" (assignment_expression "piVar12 = piStackY_1110 + 2" identifier = (binary_expression "piStackY_1110 + 2" identifier + number_literal)) ;) (do_statement "do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));" do (compound_statement "{\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    }" { (while_statement "while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }" while (parenthesized_expression "(*piVar12 == 0)" ( (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" * identifier) == number_literal) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;" if (parenthesized_expression "(*(int *)(iVar4 + 0x14) <= iVar5)" ( (binary_expression "*(int *)(iVar4 + 0x14) <= iVar5" (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00018bd0;" goto statement_identifier ;)) })) (expression_statement "iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);" (assignment_expression "iVar4 = InadequacyList__getContributionToken(iVar4,iVar5)" identifier = (call_expression "InadequacyList__getContributionToken(iVar4,iVar5)" identifier (argument_list "(iVar4,iVar5)" ( identifier , identifier )))) ;) (expression_statement "pbVar11 = (byte *)*piVar12;" (assignment_expression "pbVar11 = (byte *)*piVar12" identifier = (cast_expression "(byte *)*piVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "pbVar17 = pbVar11 + uVar25;" (assignment_expression "pbVar17 = pbVar11 + uVar25" identifier = (binary_expression "pbVar11 + uVar25" identifier + identifier)) ;) (expression_statement "uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);" (assignment_expression "uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" * (cast_expression "(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x28) + 0x80)" ( (binary_expression "*(int *)(iVar4 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }" if (parenthesized_expression "(pbVar11 < pbVar17)" ( (binary_expression "pbVar11 < pbVar17" identifier < identifier) )) (compound_statement "{\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }" { (expression_statement "pbVar21 = pbVar11;" (assignment_expression "pbVar21 = pbVar11" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);" do (compound_statement "{\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        }" { (while_statement "while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }" { (expression_statement "uVar20 = (uint)*pbVar21;" (assignment_expression "uVar20 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar27 = pbVar21 + 1;" (assignment_expression "pbVar27 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 != 0) break;" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018ae4:\n            pbVar21 = pbVar27;" statement_identifier : (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;)) (if_statement "if (pbVar17 <= pbVar27) goto LAB_00018bb4;" if (parenthesized_expression "(pbVar17 <= pbVar27)" ( (binary_expression "pbVar17 <= pbVar27" identifier <= identifier) )) (goto_statement "goto LAB_00018bb4;" goto statement_identifier ;)) })) (expression_statement "uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;" (assignment_expression "uVar22 = ((int)pbVar21 - (int)pbVar11) * 8" identifier = (binary_expression "((int)pbVar21 - (int)pbVar11) * 8" (parenthesized_expression "((int)pbVar21 - (int)pbVar11)" ( (binary_expression "(int)pbVar21 - (int)pbVar11" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;" if (parenthesized_expression "((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)))" ( (binary_expression "(uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))" (parenthesized_expression "(uVar23 <= uVar22)" ( (binary_expression "uVar23 <= uVar22" identifier <= identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))" ( (binary_expression "pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" identifier <= (binary_expression "pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" identifier + (parenthesized_expression "((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" ( (binary_expression "(int)pbVar21 - (int)pbVar11 & 0x1fffffff" (binary_expression "(int)pbVar21 - (int)pbVar11" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal) )))) ))) )) (goto_statement "goto LAB_00018ae4;" goto statement_identifier ;)) (while_statement "while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }" { (expression_statement "uVar22 = uVar22 + 1;" (assignment_expression "uVar22 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }" if (parenthesized_expression "(((int)uVar20 >> (-uVar22 & 7) & 1U) != 0)" ( (binary_expression "((int)uVar20 >> (-uVar22 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar20 >> (-uVar22 & 7) & 1U)" ( (binary_expression "(int)uVar20 >> (-uVar22 & 7) & 1U" (binary_expression "(int)uVar20 >> (-uVar22 & 7)" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(-uVar22 & 7)" ( (binary_expression "-uVar22 & 7" (unary_expression "-uVar22" - identifier) & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }" { (expression_statement "puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);" (assignment_expression "puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + uVar22 * 4 + -4)" * (cast_expression "(undefined4 **)(iVar1 + uVar22 * 4 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + uVar22 * 4 + -4)" ( (binary_expression "iVar1 + uVar22 * 4 + -4" (binary_expression "iVar1 + uVar22 * 4" identifier + (binary_expression "uVar22 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar20 = (uVar2 >> 5) - puVar10[1];" (assignment_expression "uVar20 = (uVar2 >> 5) - puVar10[1]" identifier = (binary_expression "(uVar2 >> 5) - puVar10[1]" (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) )) - (subscript_expression "puVar10[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" if (parenthesized_expression "(uVar20 < (uint)puVar10[2])" ( (binary_expression "uVar20 < (uint)puVar10[2]" identifier < (cast_expression "(uint)puVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }" { (expression_statement "puVar18 = (uint *)(puVar10[3] + uVar20 * 4);" (assignment_expression "puVar18 = (uint *)(puVar10[3] + uVar20 * 4)" identifier = (cast_expression "(uint *)(puVar10[3] + uVar20 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10[3] + uVar20 * 4)" ( (binary_expression "puVar10[3] + uVar20 * 4" (subscript_expression "puVar10[3]" identifier [ number_literal ]) + (binary_expression "uVar20 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);" (assignment_expression "*puVar18 = *puVar18 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar18" * identifier) = (binary_expression "*puVar18 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar18" * identifier) | (binary_expression "1 << (uVar2 & 0x1f)" number_literal << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))))) ;) }) (else_clause "else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" else (compound_statement "{\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" { (expression_statement "(**(code **)*puVar10)(puVar10,uVar2);" (call_expression "(**(code **)*puVar10)(puVar10,uVar2)" (parenthesized_expression "(**(code **)*puVar10)" ( (pointer_expression "**(code **)*puVar10" * (pointer_expression "*(code **)*puVar10" * (cast_expression "(code **)*puVar10" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar10" * identifier)))) )) (argument_list "(puVar10,uVar2)" ( identifier , identifier ))) ;) (expression_statement "pbVar11 = (byte *)*piVar12;" (assignment_expression "pbVar11 = (byte *)*piVar12" identifier = (cast_expression "(byte *)*piVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) }))) })) (if_statement "if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;" if (parenthesized_expression "((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3)))" ( (binary_expression "(uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))" (parenthesized_expression "(uVar23 == uVar22)" ( (binary_expression "uVar23 == uVar22" identifier == identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar11 + (uVar22 >> 3))" ( (binary_expression "pbVar27 <= pbVar11 + (uVar22 >> 3)" identifier <= (binary_expression "pbVar11 + (uVar22 >> 3)" identifier + (parenthesized_expression "(uVar22 >> 3)" ( (binary_expression "uVar22 >> 3" identifier >> number_literal) )))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = (uint)*pbVar21;" (assignment_expression "uVar20 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar17 = pbVar11 + uVar25;" (assignment_expression "pbVar17 = pbVar11 + uVar25" identifier = (binary_expression "pbVar11 + uVar25" identifier + identifier)) ;) (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar27 < pbVar17)" ( (binary_expression "pbVar27 < pbVar17" identifier < identifier) )) ;) })) (labeled_statement "LAB_00018bb4:\n      iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "iVar4 = piStackY_1110[1];" (assignment_expression "iVar4 = piStackY_1110[1]" identifier = (subscript_expression "piStackY_1110[1]" identifier [ number_literal ])) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar4 + 0x14))" ( (binary_expression "iVar5 < *(int *)(iVar4 + 0x14)" identifier < (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;" statement_identifier : (expression_statement "piStackY_1110 = (int *)*piStackY_1110;" (assignment_expression "piStackY_1110 = (int *)*piStackY_1110" identifier = (cast_expression "(int *)*piStackY_1110" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStackY_1110" * identifier))) ;)) (if_statement "if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(piStackY_1110 == (int *)0x0)" ( (binary_expression "piStackY_1110 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00018a68;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\n_Bool AnnotationList__stateMakesContribution\n                (AnnotationList *self,size_t nitems,ContributionIndex ci,bitset_conflict *lookaheads\n                )\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  symbol *psVar1;\n  uint uVar2;\n  _Bool _Var15;\n  int *piVar3;\n  goto_number gVar4;\n  bitset_bindex *pbVar5;\n  Sbitset puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  ContributionIndex CVar13;\n  uint *puVar14;\n  undefined1 *puVar16;\n  undefined4 *puVar17;\n  byte *pbVar18;\n  bitset_conflict pbVar19;\n  int *piVar20;\n  int iVar21;\n  InadequacyList *pIVar22;\n  int iVar23;\n  AnnotationList *self_00;\n  byte *pbVar24;\n  bitset_bindex *nbits;\n  bitset_bindex *pbVar25;\n  bitset_conflict **unaff_s0;\n  uint uVar26;\n  uint uVar27;\n  byte *pbVar28;\n  int *unaff_s1;\n  uint uVar29;\n  int i;\n  obstack *unaff_s2;\n  uint uVar30;\n  int *piVar31;\n  byte *pbVar32;\n  symbol_number sVar33;\n  int iVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  int *piStackY_1110;\n  int iStack_10d8;\n  undefined1 uStack_107d;\n  bitset_bindex abStack_1078 [1024];\n  bitset_bindex bStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  state ***pppsStack_2c;\n  \n  if (ci < self->inadequacyNode->contributionCount) {\n    if (self->contributions[ci] == (Sbitset)0x0) {\n      return true;\n    }\n    if (lookaheads != (bitset_conflict *)0x0) {\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }\n    return false;\n  }\n  puVar35 = PTR_0008d624 + 0x7fd0;\n  AnnotationList__isContributionAlways(self,nitems);\n  piVar3 = *(int **)(puVar35 + 0x75b74);\n  piStack_6c = (int *)*piVar3;\n  pbVar25 = (bitset_bindex *)ci;\n  gVar4 = map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80));\n  piVar20 = *(int **)(&_gp + gVar4 * 4);\n  nbits = (bitset_bindex *)piVar20[2];\n  pbVar5 = (bitset_bindex *)(((uint)ci >> 5) - piVar20[1]);\n  if (pbVar5 < nbits) {\n    uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;\n  }\n  else {\n    nbits = (bitset_bindex *)ci;\n    uVar29 = (**(code **)(*piVar20 + 0xc))();\n  }\n  if (uVar29 == 0) {\n    puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);\n    *unaff_s1 = (int)puVar6;\n    bStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  uStack_107d = (undefined1)uVar29;\n  if (piStack_6c == (int *)*piVar3) {\n    return (_Bool)uStack_107d;\n  }\n  pcVar36 = *(code **)(puVar35 + 0x75b50);\n  piVar3 = piStack_6c;\n  iStack_10d8 = (*pcVar36)();\n  if (piVar3 != (int *)0x0) {\n    iVar7 = *(int *)(pcVar36 + 0x74fd8);\n    piVar20 = *(int **)(pcVar36 + 0x75964);\n    iStack_10d8 = 0;\n    iVar8 = *(int *)(pcVar36 + 0x74fd8);\n    iVar9 = *(int *)(pcVar36 + 0x74fd8);\n    iVar10 = *(int *)(pcVar36 + 0x74fd8);\n    iVar11 = *(int *)(pcVar36 + 0x74fd8);\n    iVar12 = *(int *)(pcVar36 + 0x74fd8);\n    do {\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    } while (piVar3 != (int *)0x0);\n  }\n  return SUB41(iStack_10d8,0);\nLAB_00018a68:\n  pIVar22 = (InadequacyList *)piStackY_1110[1];\n  if (0 < pIVar22->contributionCount) {\n    iVar8 = 0;\n    piVar3 = piStackY_1110 + 2;\n    do {\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    } while (iVar8 < pIVar22->contributionCount);\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return false;\n  }\n  goto LAB_00018a68;\n}\n\n" comment (function_definition "_Bool AnnotationList__stateMakesContribution\n                (AnnotationList *self,size_t nitems,ContributionIndex ci,bitset_conflict *lookaheads\n                )\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  symbol *psVar1;\n  uint uVar2;\n  _Bool _Var15;\n  int *piVar3;\n  goto_number gVar4;\n  bitset_bindex *pbVar5;\n  Sbitset puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  ContributionIndex CVar13;\n  uint *puVar14;\n  undefined1 *puVar16;\n  undefined4 *puVar17;\n  byte *pbVar18;\n  bitset_conflict pbVar19;\n  int *piVar20;\n  int iVar21;\n  InadequacyList *pIVar22;\n  int iVar23;\n  AnnotationList *self_00;\n  byte *pbVar24;\n  bitset_bindex *nbits;\n  bitset_bindex *pbVar25;\n  bitset_conflict **unaff_s0;\n  uint uVar26;\n  uint uVar27;\n  byte *pbVar28;\n  int *unaff_s1;\n  uint uVar29;\n  int i;\n  obstack *unaff_s2;\n  uint uVar30;\n  int *piVar31;\n  byte *pbVar32;\n  symbol_number sVar33;\n  int iVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  int *piStackY_1110;\n  int iStack_10d8;\n  undefined1 uStack_107d;\n  bitset_bindex abStack_1078 [1024];\n  bitset_bindex bStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  state ***pppsStack_2c;\n  \n  if (ci < self->inadequacyNode->contributionCount) {\n    if (self->contributions[ci] == (Sbitset)0x0) {\n      return true;\n    }\n    if (lookaheads != (bitset_conflict *)0x0) {\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }\n    return false;\n  }\n  puVar35 = PTR_0008d624 + 0x7fd0;\n  AnnotationList__isContributionAlways(self,nitems);\n  piVar3 = *(int **)(puVar35 + 0x75b74);\n  piStack_6c = (int *)*piVar3;\n  pbVar25 = (bitset_bindex *)ci;\n  gVar4 = map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80));\n  piVar20 = *(int **)(&_gp + gVar4 * 4);\n  nbits = (bitset_bindex *)piVar20[2];\n  pbVar5 = (bitset_bindex *)(((uint)ci >> 5) - piVar20[1]);\n  if (pbVar5 < nbits) {\n    uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;\n  }\n  else {\n    nbits = (bitset_bindex *)ci;\n    uVar29 = (**(code **)(*piVar20 + 0xc))();\n  }\n  if (uVar29 == 0) {\n    puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);\n    *unaff_s1 = (int)puVar6;\n    bStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  uStack_107d = (undefined1)uVar29;\n  if (piStack_6c == (int *)*piVar3) {\n    return (_Bool)uStack_107d;\n  }\n  pcVar36 = *(code **)(puVar35 + 0x75b50);\n  piVar3 = piStack_6c;\n  iStack_10d8 = (*pcVar36)();\n  if (piVar3 != (int *)0x0) {\n    iVar7 = *(int *)(pcVar36 + 0x74fd8);\n    piVar20 = *(int **)(pcVar36 + 0x75964);\n    iStack_10d8 = 0;\n    iVar8 = *(int *)(pcVar36 + 0x74fd8);\n    iVar9 = *(int *)(pcVar36 + 0x74fd8);\n    iVar10 = *(int *)(pcVar36 + 0x74fd8);\n    iVar11 = *(int *)(pcVar36 + 0x74fd8);\n    iVar12 = *(int *)(pcVar36 + 0x74fd8);\n    do {\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    } while (piVar3 != (int *)0x0);\n  }\n  return SUB41(iStack_10d8,0);\nLAB_00018a68:\n  pIVar22 = (InadequacyList *)piStackY_1110[1];\n  if (0 < pIVar22->contributionCount) {\n    iVar8 = 0;\n    piVar3 = piStackY_1110 + 2;\n    do {\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    } while (iVar8 < pIVar22->contributionCount);\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return false;\n  }\n  goto LAB_00018a68;\n}" type_identifier (function_declarator "AnnotationList__stateMakesContribution\n                (AnnotationList *self,size_t nitems,ContributionIndex ci,bitset_conflict *lookaheads\n                )" identifier (parameter_list "(AnnotationList *self,size_t nitems,ContributionIndex ci,bitset_conflict *lookaheads\n                )" ( (parameter_declaration "AnnotationList *self" type_identifier (pointer_declarator "*self" * identifier)) , (parameter_declaration "size_t nitems" primitive_type identifier) , (parameter_declaration "ContributionIndex ci" type_identifier identifier) , (parameter_declaration "bitset_conflict *lookaheads" type_identifier (pointer_declarator "*lookaheads" * identifier)) ))) (compound_statement "{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  symbol *psVar1;\n  uint uVar2;\n  _Bool _Var15;\n  int *piVar3;\n  goto_number gVar4;\n  bitset_bindex *pbVar5;\n  Sbitset puVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  int iVar12;\n  ContributionIndex CVar13;\n  uint *puVar14;\n  undefined1 *puVar16;\n  undefined4 *puVar17;\n  byte *pbVar18;\n  bitset_conflict pbVar19;\n  int *piVar20;\n  int iVar21;\n  InadequacyList *pIVar22;\n  int iVar23;\n  AnnotationList *self_00;\n  byte *pbVar24;\n  bitset_bindex *nbits;\n  bitset_bindex *pbVar25;\n  bitset_conflict **unaff_s0;\n  uint uVar26;\n  uint uVar27;\n  byte *pbVar28;\n  int *unaff_s1;\n  uint uVar29;\n  int i;\n  obstack *unaff_s2;\n  uint uVar30;\n  int *piVar31;\n  byte *pbVar32;\n  symbol_number sVar33;\n  int iVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  int *piStackY_1110;\n  int iStack_10d8;\n  undefined1 uStack_107d;\n  bitset_bindex abStack_1078 [1024];\n  bitset_bindex bStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  state ***pppsStack_2c;\n  \n  if (ci < self->inadequacyNode->contributionCount) {\n    if (self->contributions[ci] == (Sbitset)0x0) {\n      return true;\n    }\n    if (lookaheads != (bitset_conflict *)0x0) {\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }\n    return false;\n  }\n  puVar35 = PTR_0008d624 + 0x7fd0;\n  AnnotationList__isContributionAlways(self,nitems);\n  piVar3 = *(int **)(puVar35 + 0x75b74);\n  piStack_6c = (int *)*piVar3;\n  pbVar25 = (bitset_bindex *)ci;\n  gVar4 = map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80));\n  piVar20 = *(int **)(&_gp + gVar4 * 4);\n  nbits = (bitset_bindex *)piVar20[2];\n  pbVar5 = (bitset_bindex *)(((uint)ci >> 5) - piVar20[1]);\n  if (pbVar5 < nbits) {\n    uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;\n  }\n  else {\n    nbits = (bitset_bindex *)ci;\n    uVar29 = (**(code **)(*piVar20 + 0xc))();\n  }\n  if (uVar29 == 0) {\n    puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);\n    *unaff_s1 = (int)puVar6;\n    bStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  uStack_107d = (undefined1)uVar29;\n  if (piStack_6c == (int *)*piVar3) {\n    return (_Bool)uStack_107d;\n  }\n  pcVar36 = *(code **)(puVar35 + 0x75b50);\n  piVar3 = piStack_6c;\n  iStack_10d8 = (*pcVar36)();\n  if (piVar3 != (int *)0x0) {\n    iVar7 = *(int *)(pcVar36 + 0x74fd8);\n    piVar20 = *(int **)(pcVar36 + 0x75964);\n    iStack_10d8 = 0;\n    iVar8 = *(int *)(pcVar36 + 0x74fd8);\n    iVar9 = *(int *)(pcVar36 + 0x74fd8);\n    iVar10 = *(int *)(pcVar36 + 0x74fd8);\n    iVar11 = *(int *)(pcVar36 + 0x74fd8);\n    iVar12 = *(int *)(pcVar36 + 0x74fd8);\n    do {\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    } while (piVar3 != (int *)0x0);\n  }\n  return SUB41(iStack_10d8,0);\nLAB_00018a68:\n  pIVar22 = (InadequacyList *)piStackY_1110[1];\n  if (0 < pIVar22->contributionCount) {\n    iVar8 = 0;\n    piVar3 = piStackY_1110 + 2;\n    do {\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    } while (iVar8 < pIVar22->contributionCount);\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return false;\n  }\n  goto LAB_00018a68;\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "symbol *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "_Bool _Var15;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "goto_number gVar4;" type_identifier identifier ;) (declaration "bitset_bindex *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "Sbitset puVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "ContributionIndex CVar13;" type_identifier identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "bitset_conflict pbVar19;" type_identifier identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "InadequacyList *pIVar22;" type_identifier (pointer_declarator "*pIVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "AnnotationList *self_00;" type_identifier (pointer_declarator "*self_00" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "bitset_bindex *nbits;" type_identifier (pointer_declarator "*nbits" * identifier) ;) (declaration "bitset_bindex *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "bitset_conflict **unaff_s0;" type_identifier (pointer_declarator "**unaff_s0" * (pointer_declarator "*unaff_s0" * identifier)) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int i;" primitive_type identifier ;) (declaration "obstack *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "symbol_number sVar33;" type_identifier identifier ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "int *piStackY_1110;" primitive_type (pointer_declarator "*piStackY_1110" * identifier) ;) (declaration "int iStack_10d8;" primitive_type identifier ;) (declaration "undefined1 uStack_107d;" type_identifier identifier ;) (declaration "bitset_bindex abStack_1078 [1024];" type_identifier (array_declarator "abStack_1078 [1024]" identifier [ number_literal ]) ;) (declaration "bitset_bindex bStack_78;" type_identifier identifier ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "uint uStack_70;" type_identifier identifier ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "state ***pppsStack_2c;" type_identifier (pointer_declarator "***pppsStack_2c" * (pointer_declarator "**pppsStack_2c" * (pointer_declarator "*pppsStack_2c" * identifier))) ;) (if_statement "if (ci < self->inadequacyNode->contributionCount) {\n    if (self->contributions[ci] == (Sbitset)0x0) {\n      return true;\n    }\n    if (lookaheads != (bitset_conflict *)0x0) {\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }\n    return false;\n  }" if (parenthesized_expression "(ci < self->inadequacyNode->contributionCount)" ( (binary_expression "ci < self->inadequacyNode->contributionCount" identifier < (field_expression "self->inadequacyNode->contributionCount" (field_expression "self->inadequacyNode" identifier -> field_identifier) -> field_identifier)) )) (compound_statement "{\n    if (self->contributions[ci] == (Sbitset)0x0) {\n      return true;\n    }\n    if (lookaheads != (bitset_conflict *)0x0) {\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }\n    return false;\n  }" { (if_statement "if (self->contributions[ci] == (Sbitset)0x0) {\n      return true;\n    }" if (parenthesized_expression "(self->contributions[ci] == (Sbitset)0x0)" ( (binary_expression "self->contributions[ci] == (Sbitset)0x0" (subscript_expression "self->contributions[ci]" (field_expression "self->contributions" identifier -> field_identifier) [ identifier ]) == (cast_expression "(Sbitset)0x0" ( (type_descriptor "Sbitset" type_identifier) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (if_statement "if (lookaheads != (bitset_conflict *)0x0) {\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }" if (parenthesized_expression "(lookaheads != (bitset_conflict *)0x0)" ( (binary_expression "lookaheads != (bitset_conflict *)0x0" identifier != (cast_expression "(bitset_conflict *)0x0" ( (type_descriptor "bitset_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);\n      pbVar24 = self->contributions[ci];\n      uVar30 = nitems + 7 >> 3;\n      pbVar18 = pbVar24 + uVar30;\n      uVar29 = psVar1->content->number;\n      if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }\n    }" { (expression_statement "psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci);" (assignment_expression "psVar1 = InadequacyList__getContributionToken(self->inadequacyNode,ci)" identifier = (call_expression "InadequacyList__getContributionToken(self->inadequacyNode,ci)" identifier (argument_list "(self->inadequacyNode,ci)" ( (field_expression "self->inadequacyNode" identifier -> field_identifier) , identifier )))) ;) (expression_statement "pbVar24 = self->contributions[ci];" (assignment_expression "pbVar24 = self->contributions[ci]" identifier = (subscript_expression "self->contributions[ci]" (field_expression "self->contributions" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "uVar30 = nitems + 7 >> 3;" (assignment_expression "uVar30 = nitems + 7 >> 3" identifier = (binary_expression "nitems + 7 >> 3" (binary_expression "nitems + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "pbVar18 = pbVar24 + uVar30;" (assignment_expression "pbVar18 = pbVar24 + uVar30" identifier = (binary_expression "pbVar24 + uVar30" identifier + identifier)) ;) (expression_statement "uVar29 = psVar1->content->number;" (assignment_expression "uVar29 = psVar1->content->number" identifier = (field_expression "psVar1->content->number" (field_expression "psVar1->content" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (pbVar24 < pbVar18) {\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }" if (parenthesized_expression "(pbVar24 < pbVar18)" ( (binary_expression "pbVar24 < pbVar18" identifier < identifier) )) (compound_statement "{\n        pbVar28 = pbVar24;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);\n      }" { (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar18);" do (compound_statement "{\n          while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }\n          uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;\n          if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }\n          pbVar18 = pbVar24 + uVar30;\n          pbVar28 = pbVar32;\n        }" { (while_statement "while( true ) {\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar2 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar28 = pbVar32;\n            if (pbVar18 <= pbVar32) {\n              return false;\n            }\n          }" { (expression_statement "uVar2 = (uint)*pbVar28;" (assignment_expression "uVar2 = (uint)*pbVar28" identifier = (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar32 = pbVar28 + 1;" (assignment_expression "pbVar32 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 != 0) break;" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000182bc:\n            pbVar28 = pbVar32;" statement_identifier : (expression_statement "pbVar28 = pbVar32;" (assignment_expression "pbVar28 = pbVar32" identifier = identifier) ;)) (if_statement "if (pbVar18 <= pbVar32) {\n              return false;\n            }" if (parenthesized_expression "(pbVar18 <= pbVar32)" ( (binary_expression "pbVar18 <= pbVar32" identifier <= identifier) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) })) (expression_statement "uVar26 = ((int)pbVar28 - (int)pbVar24) * 8;" (assignment_expression "uVar26 = ((int)pbVar28 - (int)pbVar24) * 8" identifier = (binary_expression "((int)pbVar28 - (int)pbVar24) * 8" (parenthesized_expression "((int)pbVar28 - (int)pbVar24)" ( (binary_expression "(int)pbVar28 - (int)pbVar24" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if ((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))) goto LAB_000182bc;" if (parenthesized_expression "((nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff)))" ( (binary_expression "(nitems <= uVar26) ||\n             (pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))" (parenthesized_expression "(nitems <= uVar26)" ( (binary_expression "nitems <= uVar26" identifier <= identifier) )) || (parenthesized_expression "(pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff))" ( (binary_expression "pbVar32 <= pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff)" identifier <= (binary_expression "pbVar24 + ((int)pbVar28 - (int)pbVar24 & 0x1fffffff)" identifier + (parenthesized_expression "((int)pbVar28 - (int)pbVar24 & 0x1fffffff)" ( (binary_expression "(int)pbVar28 - (int)pbVar24 & 0x1fffffff" (binary_expression "(int)pbVar28 - (int)pbVar24" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal) )))) ))) )) (goto_statement "goto LAB_000182bc;" goto statement_identifier ;)) (while_statement "while( true ) {\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar27 = uVar26 + 1;\n            if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }\n            if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;\n            uVar2 = (uint)*pbVar28;\n            uVar26 = uVar27;\n          }" { (expression_statement "uVar27 = uVar26 + 1;" (assignment_expression "uVar27 = uVar26 + 1" identifier = (binary_expression "uVar26 + 1" identifier + number_literal)) ;) (if_statement "if ((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)) {\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }" if (parenthesized_expression "((((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0))" ( (binary_expression "(((int)uVar2 >> (-uVar27 & 7) & 1U) != 0) &&\n               (pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)" (parenthesized_expression "(((int)uVar2 >> (-uVar27 & 7) & 1U) != 0)" ( (binary_expression "((int)uVar2 >> (-uVar27 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar2 >> (-uVar27 & 7) & 1U)" ( (binary_expression "(int)uVar2 >> (-uVar27 & 7) & 1U" (binary_expression "(int)uVar2 >> (-uVar27 & 7)" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(-uVar27 & 7)" ( (binary_expression "-uVar27 & 7" (unary_expression "-uVar27" - identifier) & number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0)" ( (comma_expression "pbVar19 = lookaheads[uVar26], pbVar19 != (bitset_conflict)0x0" (assignment_expression "pbVar19 = lookaheads[uVar26]" identifier = (subscript_expression "lookaheads[uVar26]" identifier [ identifier ])) , (binary_expression "pbVar19 != (bitset_conflict)0x0" identifier != (cast_expression "(bitset_conflict)0x0" ( (type_descriptor "bitset_conflict" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n              uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;\n              if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }\n              if (uVar2 != 0) {\n                return true;\n              }\n              pbVar24 = self->contributions[ci];\n            }" { (expression_statement "uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex;" (assignment_expression "uVar2 = (uVar29 >> 5) - (pbVar19->b).cindex" identifier = (binary_expression "(uVar29 >> 5) - (pbVar19->b).cindex" (parenthesized_expression "(uVar29 >> 5)" ( (binary_expression "uVar29 >> 5" identifier >> number_literal) )) - (field_expression "(pbVar19->b).cindex" (parenthesized_expression "(pbVar19->b)" ( (field_expression "pbVar19->b" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (uVar2 < (pbVar19->b).csize) {\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }\n              else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }" if (parenthesized_expression "(uVar2 < (pbVar19->b).csize)" ( (binary_expression "uVar2 < (pbVar19->b).csize" identifier < (field_expression "(pbVar19->b).csize" (parenthesized_expression "(pbVar19->b)" ( (field_expression "pbVar19->b" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n                uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;\n              }" { (expression_statement "uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1;" (assignment_expression "uVar2 = (pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1" identifier = (binary_expression "(pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f) & 1" (binary_expression "(pbVar19->b).cdata[uVar2] >> (uVar29 & 0x1f)" (subscript_expression "(pbVar19->b).cdata[uVar2]" (field_expression "(pbVar19->b).cdata" (parenthesized_expression "(pbVar19->b)" ( (field_expression "pbVar19->b" identifier -> field_identifier) )) . field_identifier) [ identifier ]) >> (parenthesized_expression "(uVar29 & 0x1f)" ( (binary_expression "uVar29 & 0x1f" identifier & number_literal) ))) & number_literal)) ;) }) (else_clause "else {\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }" else (compound_statement "{\n                _Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);\n                uVar2 = CONCAT31(extraout_var,_Var15);\n              }" { (expression_statement "_Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29);" (assignment_expression "_Var15 = (*((pbVar19->b).vtable)->test)(pbVar19,uVar29)" identifier = (call_expression "(*((pbVar19->b).vtable)->test)(pbVar19,uVar29)" (parenthesized_expression "(*((pbVar19->b).vtable)->test)" ( (pointer_expression "*((pbVar19->b).vtable)->test" * (field_expression "((pbVar19->b).vtable)->test" (parenthesized_expression "((pbVar19->b).vtable)" ( (field_expression "(pbVar19->b).vtable" (parenthesized_expression "(pbVar19->b)" ( (field_expression "pbVar19->b" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (argument_list "(pbVar19,uVar29)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = CONCAT31(extraout_var,_Var15);" (assignment_expression "uVar2 = CONCAT31(extraout_var,_Var15)" identifier = (call_expression "CONCAT31(extraout_var,_Var15)" identifier (argument_list "(extraout_var,_Var15)" ( identifier , identifier )))) ;) }))) (if_statement "if (uVar2 != 0) {\n                return true;\n              }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                return true;\n              }" { (return_statement "return true;" return true ;) })) (expression_statement "pbVar24 = self->contributions[ci];" (assignment_expression "pbVar24 = self->contributions[ci]" identifier = (subscript_expression "self->contributions[ci]" (field_expression "self->contributions" identifier -> field_identifier) [ identifier ])) ;) })) (if_statement "if ((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))) break;" if (parenthesized_expression "((nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3)))" ( (binary_expression "(nitems == uVar27) || (pbVar32 <= pbVar24 + (uVar27 >> 3))" (parenthesized_expression "(nitems == uVar27)" ( (binary_expression "nitems == uVar27" identifier == identifier) )) || (parenthesized_expression "(pbVar32 <= pbVar24 + (uVar27 >> 3))" ( (binary_expression "pbVar32 <= pbVar24 + (uVar27 >> 3)" identifier <= (binary_expression "pbVar24 + (uVar27 >> 3)" identifier + (parenthesized_expression "(uVar27 >> 3)" ( (binary_expression "uVar27 >> 3" identifier >> number_literal) )))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = (uint)*pbVar28;" (assignment_expression "uVar2 = (uint)*pbVar28" identifier = (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar26 = uVar27;" (assignment_expression "uVar26 = uVar27" identifier = identifier) ;) })) (expression_statement "pbVar18 = pbVar24 + uVar30;" (assignment_expression "pbVar18 = pbVar24 + uVar30" identifier = (binary_expression "pbVar24 + uVar30" identifier + identifier)) ;) (expression_statement "pbVar28 = pbVar32;" (assignment_expression "pbVar28 = pbVar32" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar32 < pbVar18)" ( (binary_expression "pbVar32 < pbVar18" identifier < identifier) )) ;) })) })) (return_statement "return false;" return false ;) })) (expression_statement "puVar35 = PTR_0008d624 + 0x7fd0;" (assignment_expression "puVar35 = PTR_0008d624 + 0x7fd0" identifier = (binary_expression "PTR_0008d624 + 0x7fd0" identifier + number_literal)) ;) (expression_statement "AnnotationList__isContributionAlways(self,nitems);" (call_expression "AnnotationList__isContributionAlways(self,nitems)" identifier (argument_list "(self,nitems)" ( identifier , identifier ))) ;) (expression_statement "piVar3 = *(int **)(puVar35 + 0x75b74);" (assignment_expression "piVar3 = *(int **)(puVar35 + 0x75b74)" identifier = (pointer_expression "*(int **)(puVar35 + 0x75b74)" * (cast_expression "(int **)(puVar35 + 0x75b74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x75b74)" ( (binary_expression "puVar35 + 0x75b74" identifier + number_literal) ))))) ;) (expression_statement "piStack_6c = (int *)*piVar3;" (assignment_expression "piStack_6c = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "pbVar25 = (bitset_bindex *)ci;" (assignment_expression "pbVar25 = (bitset_bindex *)ci" identifier = (cast_expression "(bitset_bindex *)ci" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "gVar4 = map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80));" (assignment_expression "gVar4 = map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80))" identifier = (call_expression "map_goto(((state *)self)->number,*(symbol_number *)(nitems + 0x80))" identifier (argument_list "(((state *)self)->number,*(symbol_number *)(nitems + 0x80))" ( (field_expression "((state *)self)->number" (parenthesized_expression "((state *)self)" ( (cast_expression "(state *)self" ( (type_descriptor "state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) , (pointer_expression "*(symbol_number *)(nitems + 0x80)" * (cast_expression "(symbol_number *)(nitems + 0x80)" ( (type_descriptor "symbol_number *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nitems + 0x80)" ( (binary_expression "nitems + 0x80" identifier + number_literal) )))) )))) ;) (expression_statement "piVar20 = *(int **)(&_gp + gVar4 * 4);" (assignment_expression "piVar20 = *(int **)(&_gp + gVar4 * 4)" identifier = (pointer_expression "*(int **)(&_gp + gVar4 * 4)" * (cast_expression "(int **)(&_gp + gVar4 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&_gp + gVar4 * 4)" ( (binary_expression "&_gp + gVar4 * 4" (pointer_expression "&_gp" & identifier) + (binary_expression "gVar4 * 4" identifier * number_literal)) ))))) ;) (expression_statement "nbits = (bitset_bindex *)piVar20[2];" (assignment_expression "nbits = (bitset_bindex *)piVar20[2]" identifier = (cast_expression "(bitset_bindex *)piVar20[2]" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[2]" identifier [ number_literal ]))) ;) (expression_statement "pbVar5 = (bitset_bindex *)(((uint)ci >> 5) - piVar20[1]);" (assignment_expression "pbVar5 = (bitset_bindex *)(((uint)ci >> 5) - piVar20[1])" identifier = (cast_expression "(bitset_bindex *)(((uint)ci >> 5) - piVar20[1])" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)ci >> 5) - piVar20[1])" ( (binary_expression "((uint)ci >> 5) - piVar20[1]" (parenthesized_expression "((uint)ci >> 5)" ( (binary_expression "(uint)ci >> 5" (cast_expression "(uint)ci" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - (subscript_expression "piVar20[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (pbVar5 < nbits) {\n    uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;\n  }\n  else {\n    nbits = (bitset_bindex *)ci;\n    uVar29 = (**(code **)(*piVar20 + 0xc))();\n  }" if (parenthesized_expression "(pbVar5 < nbits)" ( (binary_expression "pbVar5 < nbits" identifier < identifier) )) (compound_statement "{\n    uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;\n  }" { (expression_statement "uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1;" (assignment_expression "uVar29 = *(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1" identifier = (binary_expression "*(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU) & 1" (binary_expression "*(uint *)(piVar20[3] + (int)pbVar5 * 4) >> (ci & 0x1fU)" (pointer_expression "*(uint *)(piVar20[3] + (int)pbVar5 * 4)" * (cast_expression "(uint *)(piVar20[3] + (int)pbVar5 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20[3] + (int)pbVar5 * 4)" ( (binary_expression "piVar20[3] + (int)pbVar5 * 4" (subscript_expression "piVar20[3]" identifier [ number_literal ]) + (binary_expression "(int)pbVar5 * 4" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) >> (parenthesized_expression "(ci & 0x1fU)" ( (binary_expression "ci & 0x1fU" identifier & number_literal) ))) & number_literal)) ;) }) (else_clause "else {\n    nbits = (bitset_bindex *)ci;\n    uVar29 = (**(code **)(*piVar20 + 0xc))();\n  }" else (compound_statement "{\n    nbits = (bitset_bindex *)ci;\n    uVar29 = (**(code **)(*piVar20 + 0xc))();\n  }" { (expression_statement "nbits = (bitset_bindex *)ci;" (assignment_expression "nbits = (bitset_bindex *)ci" identifier = (cast_expression "(bitset_bindex *)ci" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar29 = (**(code **)(*piVar20 + 0xc))();" (assignment_expression "uVar29 = (**(code **)(*piVar20 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar20 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar20 + 0xc))" ( (pointer_expression "**(code **)(*piVar20 + 0xc)" * (pointer_expression "*(code **)(*piVar20 + 0xc)" * (cast_expression "(code **)(*piVar20 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar20 + 0xc)" ( (binary_expression "*piVar20 + 0xc" (pointer_expression "*piVar20" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (uVar29 == 0) {\n    puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);\n    *unaff_s1 = (int)puVar6;\n    bStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" if (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);\n    *unaff_s1 = (int)puVar6;\n    bStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" { (expression_statement "puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2);" (assignment_expression "puVar6 = Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2)" identifier = (call_expression "Sbitset__new_on_obstack(((state *)self)->nitems,unaff_s2)" identifier (argument_list "(((state *)self)->nitems,unaff_s2)" ( (field_expression "((state *)self)->nitems" (parenthesized_expression "((state *)self)" ( (cast_expression "(state *)self" ( (type_descriptor "state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) , identifier )))) ;) (expression_statement "*unaff_s1 = (int)puVar6;" (assignment_expression "*unaff_s1 = (int)puVar6" (pointer_expression "*unaff_s1" * identifier) = (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bStack_78 = 0;" (assignment_expression "bStack_78 = 0" identifier = number_literal) ;) (expression_statement "uStack_74 = 0x400;" (assignment_expression "uStack_74 = 0x400" identifier = number_literal) ;) (do_statement "do {\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);" do (compound_statement "{\n      pbVar25 = (bitset_bindex *)0x400;\n      nbits = abStack_1078;\n      uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    }" { (expression_statement "pbVar25 = (bitset_bindex *)0x400;" (assignment_expression "pbVar25 = (bitset_bindex *)0x400" identifier = (cast_expression "(bitset_bindex *)0x400" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nbits = abStack_1078;" (assignment_expression "nbits = abStack_1078" identifier = identifier) ;) (expression_statement "uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78);" (assignment_expression "uStack_74 = (*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78)" identifier = (call_expression "(*((lookaheads[gVar4]->b).vtable)->list)\n                            (lookaheads[gVar4],abStack_1078,0x400,&bStack_78)" (parenthesized_expression "(*((lookaheads[gVar4]->b).vtable)->list)" ( (pointer_expression "*((lookaheads[gVar4]->b).vtable)->list" * (field_expression "((lookaheads[gVar4]->b).vtable)->list" (parenthesized_expression "((lookaheads[gVar4]->b).vtable)" ( (field_expression "(lookaheads[gVar4]->b).vtable" (parenthesized_expression "(lookaheads[gVar4]->b)" ( (field_expression "lookaheads[gVar4]->b" (subscript_expression "lookaheads[gVar4]" identifier [ identifier ]) -> field_identifier) )) . field_identifier) )) -> field_identifier)) )) (argument_list "(lookaheads[gVar4],abStack_1078,0x400,&bStack_78)" ( (subscript_expression "lookaheads[gVar4]" identifier [ identifier ]) , identifier , number_literal , (pointer_expression "&bStack_78" & identifier) )))) ;) (if_statement "if (uStack_74 == 0) break;" if (parenthesized_expression "(uStack_74 == 0)" ( (binary_expression "uStack_74 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (do_statement "do {\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);" do (compound_statement "{\n        nbits = (bitset_bindex *)0x0;\n        pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];\n        pbVar25 = pbVar5;\n        _Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);\n        if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }\n        uStack_70 = uStack_70 + 1;\n      }" { (expression_statement "nbits = (bitset_bindex *)0x0;" (assignment_expression "nbits = (bitset_bindex *)0x0" identifier = (cast_expression "(bitset_bindex *)0x0" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar5 = (bitset_bindex *)abStack_1078[uStack_70];" (assignment_expression "pbVar5 = (bitset_bindex *)abStack_1078[uStack_70]" identifier = (cast_expression "(bitset_bindex *)abStack_1078[uStack_70]" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "abStack_1078[uStack_70]" identifier [ identifier ]))) ;) (expression_statement "pbVar25 = pbVar5;" (assignment_expression "pbVar25 = pbVar5" identifier = identifier) ;) (expression_statement "_Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0);" (assignment_expression "_Var15 = ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0)" identifier = (call_expression "ielr_item_has_lookahead((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0)" identifier (argument_list "((state *)self,0,(size_t)pbVar5,ci,pppsStack_2c,unaff_s0)" ( (cast_expression "(state *)self" ( (type_descriptor "state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(size_t)pbVar5" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var15) != 0) {\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var15) != 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var15) != 0" (call_expression "CONCAT31(extraout_var_00,_Var15)" identifier (argument_list "(extraout_var_00,_Var15)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n          pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));\n          *pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;\n        }" { (expression_statement "pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3));" (assignment_expression "pbVar18 = (byte *)(*unaff_s1 + ((uint)pbVar5 >> 3))" identifier = (cast_expression "(byte *)(*unaff_s1 + ((uint)pbVar5 >> 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*unaff_s1 + ((uint)pbVar5 >> 3))" ( (binary_expression "*unaff_s1 + ((uint)pbVar5 >> 3)" (pointer_expression "*unaff_s1" * identifier) + (parenthesized_expression "((uint)pbVar5 >> 3)" ( (binary_expression "(uint)pbVar5 >> 3" (cast_expression "(uint)pbVar5" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "*pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18;" (assignment_expression "*pbVar18 = (byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18" (pointer_expression "*pbVar18" * identifier) = (binary_expression "(byte)(1 << (~(uint)pbVar5 & 7)) | *pbVar18" (call_expression "(byte)(1 << (~(uint)pbVar5 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (~(uint)pbVar5 & 7))" ( (binary_expression "1 << (~(uint)pbVar5 & 7)" number_literal << (parenthesized_expression "(~(uint)pbVar5 & 7)" ( (binary_expression "~(uint)pbVar5 & 7" (unary_expression "~(uint)pbVar5" ~ (cast_expression "(uint)pbVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) & number_literal) ))) ))) | (pointer_expression "*pbVar18" * identifier))) ;) })) (expression_statement "uStack_70 = uStack_70 + 1;" (assignment_expression "uStack_70 = uStack_70 + 1" identifier = (binary_expression "uStack_70 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uStack_70 < uStack_74)" ( (binary_expression "uStack_70 < uStack_74" identifier < identifier) )) ;) }) while (parenthesized_expression "(uStack_74 == 0x400)" ( (binary_expression "uStack_74 == 0x400" identifier == number_literal) )) ;) })) (expression_statement "uStack_107d = (undefined1)uVar29;" (assignment_expression "uStack_107d = (undefined1)uVar29" identifier = (cast_expression "(undefined1)uVar29" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (piStack_6c == (int *)*piVar3) {\n    return (_Bool)uStack_107d;\n  }" if (parenthesized_expression "(piStack_6c == (int *)*piVar3)" ( (binary_expression "piStack_6c == (int *)*piVar3" identifier == (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) )) (compound_statement "{\n    return (_Bool)uStack_107d;\n  }" { (return_statement "return (_Bool)uStack_107d;" return (cast_expression "(_Bool)uStack_107d" ( (type_descriptor "_Bool" type_identifier) ) identifier) ;) })) (expression_statement "pcVar36 = *(code **)(puVar35 + 0x75b50);" (assignment_expression "pcVar36 = *(code **)(puVar35 + 0x75b50)" identifier = (pointer_expression "*(code **)(puVar35 + 0x75b50)" * (cast_expression "(code **)(puVar35 + 0x75b50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x75b50)" ( (binary_expression "puVar35 + 0x75b50" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = piStack_6c;" (assignment_expression "piVar3 = piStack_6c" identifier = identifier) ;) (expression_statement "iStack_10d8 = (*pcVar36)();" (assignment_expression "iStack_10d8 = (*pcVar36)()" identifier = (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (piVar3 != (int *)0x0) {\n    iVar7 = *(int *)(pcVar36 + 0x74fd8);\n    piVar20 = *(int **)(pcVar36 + 0x75964);\n    iStack_10d8 = 0;\n    iVar8 = *(int *)(pcVar36 + 0x74fd8);\n    iVar9 = *(int *)(pcVar36 + 0x74fd8);\n    iVar10 = *(int *)(pcVar36 + 0x74fd8);\n    iVar11 = *(int *)(pcVar36 + 0x74fd8);\n    iVar12 = *(int *)(pcVar36 + 0x74fd8);\n    do {\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    } while (piVar3 != (int *)0x0);\n  }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar7 = *(int *)(pcVar36 + 0x74fd8);\n    piVar20 = *(int **)(pcVar36 + 0x75964);\n    iStack_10d8 = 0;\n    iVar8 = *(int *)(pcVar36 + 0x74fd8);\n    iVar9 = *(int *)(pcVar36 + 0x74fd8);\n    iVar10 = *(int *)(pcVar36 + 0x74fd8);\n    iVar11 = *(int *)(pcVar36 + 0x74fd8);\n    iVar12 = *(int *)(pcVar36 + 0x74fd8);\n    do {\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    } while (piVar3 != (int *)0x0);\n  }" { (expression_statement "iVar7 = *(int *)(pcVar36 + 0x74fd8);" (assignment_expression "iVar7 = *(int *)(pcVar36 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = *(int **)(pcVar36 + 0x75964);" (assignment_expression "piVar20 = *(int **)(pcVar36 + 0x75964)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x75964)" * (cast_expression "(int **)(pcVar36 + 0x75964)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75964)" ( (binary_expression "pcVar36 + 0x75964" identifier + number_literal) ))))) ;) (expression_statement "iStack_10d8 = 0;" (assignment_expression "iStack_10d8 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = *(int *)(pcVar36 + 0x74fd8);" (assignment_expression "iVar8 = *(int *)(pcVar36 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(pcVar36 + 0x74fd8);" (assignment_expression "iVar9 = *(int *)(pcVar36 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(pcVar36 + 0x74fd8);" (assignment_expression "iVar10 = *(int *)(pcVar36 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(pcVar36 + 0x74fd8);" (assignment_expression "iVar11 = *(int *)(pcVar36 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(pcVar36 + 0x74fd8);" (assignment_expression "iVar12 = *(int *)(pcVar36 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    } while (piVar3 != (int *)0x0);" do (compound_statement "{\n      if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }\n      (**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));\n      iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));\n      pIVar22 = (InadequacyList *)piVar3[1];\n      if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }\n      piVar3 = (int *)*piVar3;\n      iStack_10d8 = iStack_10d8 + 1;\n    }" { (if_statement "if (0 < (int)pbVar25) {\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }" if (parenthesized_expression "(0 < (int)pbVar25)" ( (binary_expression "0 < (int)pbVar25" number_literal < (cast_expression "(int)pbVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pbVar5 = (bitset_bindex *)0x0;\n        do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);\n      }" { (expression_statement "pbVar5 = (bitset_bindex *)0x0;" (assignment_expression "pbVar5 = (bitset_bindex *)0x0" identifier = (cast_expression "(bitset_bindex *)0x0" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        } while (pbVar25 != pbVar5);" do (compound_statement "{\n          iVar21 = *piVar20;\n          puVar16 = *(undefined1 **)(iVar21 + 0x14);\n          if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }\n          pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);\n        }" { (expression_statement "iVar21 = *piVar20;" (assignment_expression "iVar21 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "puVar16 = *(undefined1 **)(iVar21 + 0x14);" (assignment_expression "puVar16 = *(undefined1 **)(iVar21 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar21 + 0x14)" * (cast_expression "(undefined1 **)(iVar21 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar16 < *(undefined1 **)(iVar21 + 0x18)) {\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }" if (parenthesized_expression "(puVar16 < *(undefined1 **)(iVar21 + 0x18))" ( (binary_expression "puVar16 < *(undefined1 **)(iVar21 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar21 + 0x18)" * (cast_expression "(undefined1 **)(iVar21 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            *(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;\n            *puVar16 = 0x20;\n          }" { (expression_statement "*(undefined1 **)(iVar21 + 0x14) = puVar16 + 1;" (assignment_expression "*(undefined1 **)(iVar21 + 0x14) = puVar16 + 1" (pointer_expression "*(undefined1 **)(iVar21 + 0x14)" * (cast_expression "(undefined1 **)(iVar21 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) (expression_statement "*puVar16 = 0x20;" (assignment_expression "*puVar16 = 0x20" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else {\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }" else (compound_statement "{\n            (**(code **)(pcVar36 + 0x75834))(iVar21,0x20);\n          }" { (expression_statement "(**(code **)(pcVar36 + 0x75834))(iVar21,0x20);" (call_expression "(**(code **)(pcVar36 + 0x75834))(iVar21,0x20)" (parenthesized_expression "(**(code **)(pcVar36 + 0x75834))" ( (pointer_expression "**(code **)(pcVar36 + 0x75834)" * (pointer_expression "*(code **)(pcVar36 + 0x75834)" * (cast_expression "(code **)(pcVar36 + 0x75834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75834)" ( (binary_expression "pcVar36 + 0x75834" identifier + number_literal) ))))) )) (argument_list "(iVar21,0x20)" ( identifier , number_literal ))) ;) }))) (expression_statement "pbVar5 = (bitset_bindex *)((int)pbVar5 + 1);" (assignment_expression "pbVar5 = (bitset_bindex *)((int)pbVar5 + 1)" identifier = (cast_expression "(bitset_bindex *)((int)pbVar5 + 1)" ( (type_descriptor "bitset_bindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar5 + 1)" ( (binary_expression "(int)pbVar5 + 1" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pbVar25 != pbVar5)" ( (binary_expression "pbVar25 != pbVar5" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10));" (call_expression "(**(code **)(pcVar36 + 0x75818))\n                (*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10))" (parenthesized_expression "(**(code **)(pcVar36 + 0x75818))" ( (pointer_expression "**(code **)(pcVar36 + 0x75818)" * (pointer_expression "*(code **)(pcVar36 + 0x75818)" * (cast_expression "(code **)(pcVar36 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75818)" ( (binary_expression "pcVar36 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar20,1,iVar8 + 0x1204,iStack_10d8,**(undefined4 **)(piVar3[1] + 0x10))" ( (pointer_expression "*piVar20" * identifier) , number_literal , (binary_expression "iVar8 + 0x1204" identifier + number_literal) , identifier , (pointer_expression "**(undefined4 **)(piVar3[1] + 0x10)" * (pointer_expression "*(undefined4 **)(piVar3[1] + 0x10)" * (cast_expression "(undefined4 **)(piVar3[1] + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar3[1] + 0x10)" ( (binary_expression "piVar3[1] + 0x10" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) ))))) ))) ;) (expression_statement "iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c));" (assignment_expression "iVar21 = (**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c))" identifier = (call_expression "(**(code **)(pcVar36 + 0x7510c))(*(undefined4 *)(piVar3[1] + 0x1c))" (parenthesized_expression "(**(code **)(pcVar36 + 0x7510c))" ( (pointer_expression "**(code **)(pcVar36 + 0x7510c)" * (pointer_expression "*(code **)(pcVar36 + 0x7510c)" * (cast_expression "(code **)(pcVar36 + 0x7510c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x7510c)" ( (binary_expression "pcVar36 + 0x7510c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(piVar3[1] + 0x1c))" ( (pointer_expression "*(undefined4 *)(piVar3[1] + 0x1c)" * (cast_expression "(undefined4 *)(piVar3[1] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x1c)" ( (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "pIVar22 = (InadequacyList *)piVar3[1];" (assignment_expression "pIVar22 = (InadequacyList *)piVar3[1]" identifier = (cast_expression "(InadequacyList *)piVar3[1]" ( (type_descriptor "InadequacyList *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ]))) ;) (if_statement "if (0 < pIVar22->contributionCount) {\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }" if (parenthesized_expression "(0 < pIVar22->contributionCount)" ( (binary_expression "0 < pIVar22->contributionCount" number_literal < (field_expression "pIVar22->contributionCount" identifier -> field_identifier)) )) (compound_statement "{\n        piVar31 = piVar3 + 2;\n        i = 0;\n        do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);\n      }" { (expression_statement "piVar31 = piVar3 + 2;" (assignment_expression "piVar31 = piVar3 + 2" identifier = (binary_expression "piVar3 + 2" identifier + number_literal)) ;) (expression_statement "i = 0;" (assignment_expression "i = 0" identifier = number_literal) ;) (do_statement "do {\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        } while (i < pIVar22->contributionCount);" do (compound_statement "{\n          psVar1 = InadequacyList__getContributionToken(pIVar22,i);\n          sVar33 = psVar1->content->number;\n          if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }\n          CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);\n          if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);\nLAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];\n          i = i + 1;\n          piVar31 = piVar31 + 1;\n        }" { (expression_statement "psVar1 = InadequacyList__getContributionToken(pIVar22,i);" (assignment_expression "psVar1 = InadequacyList__getContributionToken(pIVar22,i)" identifier = (call_expression "InadequacyList__getContributionToken(pIVar22,i)" identifier (argument_list "(pIVar22,i)" ( identifier , identifier )))) ;) (expression_statement "sVar33 = psVar1->content->number;" (assignment_expression "sVar33 = psVar1->content->number" identifier = (field_expression "psVar1->content->number" (field_expression "psVar1->content" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (-2 < (int)pbVar25) {\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }" if (parenthesized_expression "(-2 < (int)pbVar25)" ( (binary_expression "-2 < (int)pbVar25" number_literal < (cast_expression "(int)pbVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar34 = 0;\n            do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);\n          }" { (expression_statement "iVar34 = 0;" (assignment_expression "iVar34 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            } while (iVar34 != (int)pbVar25 + 2U);" do (compound_statement "{\n              iVar23 = *piVar20;\n              puVar16 = *(undefined1 **)(iVar23 + 0x14);\n              if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }\n              iVar34 = iVar34 + 1;\n            }" { (expression_statement "iVar23 = *piVar20;" (assignment_expression "iVar23 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "puVar16 = *(undefined1 **)(iVar23 + 0x14);" (assignment_expression "puVar16 = *(undefined1 **)(iVar23 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar23 + 0x14)" * (cast_expression "(undefined1 **)(iVar23 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar16 < *(undefined1 **)(iVar23 + 0x18)) {\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }" if (parenthesized_expression "(puVar16 < *(undefined1 **)(iVar23 + 0x18))" ( (binary_expression "puVar16 < *(undefined1 **)(iVar23 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar23 + 0x18)" * (cast_expression "(undefined1 **)(iVar23 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x18)" ( (binary_expression "iVar23 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                *(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;\n                *puVar16 = 0x20;\n              }" { (expression_statement "*(undefined1 **)(iVar23 + 0x14) = puVar16 + 1;" (assignment_expression "*(undefined1 **)(iVar23 + 0x14) = puVar16 + 1" (pointer_expression "*(undefined1 **)(iVar23 + 0x14)" * (cast_expression "(undefined1 **)(iVar23 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) (expression_statement "*puVar16 = 0x20;" (assignment_expression "*puVar16 = 0x20" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else {\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }" else (compound_statement "{\n                (**(code **)(pcVar36 + 0x75834))(iVar23,0x20);\n              }" { (expression_statement "(**(code **)(pcVar36 + 0x75834))(iVar23,0x20);" (call_expression "(**(code **)(pcVar36 + 0x75834))(iVar23,0x20)" (parenthesized_expression "(**(code **)(pcVar36 + 0x75834))" ( (pointer_expression "**(code **)(pcVar36 + 0x75834)" * (pointer_expression "*(code **)(pcVar36 + 0x75834)" * (cast_expression "(code **)(pcVar36 + 0x75834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75834)" ( (binary_expression "pcVar36 + 0x75834" identifier + number_literal) ))))) )) (argument_list "(iVar23,0x20)" ( identifier , number_literal ))) ;) }))) (expression_statement "iVar34 = iVar34 + 1;" (assignment_expression "iVar34 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar34 != (int)pbVar25 + 2U)" ( (binary_expression "iVar34 != (int)pbVar25 + 2U" identifier != (binary_expression "(int)pbVar25 + 2U" (cast_expression "(int)pbVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) ;) })) (expression_statement "CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1]);" (assignment_expression "CVar13 = InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1])" identifier = (call_expression "InadequacyList__getShiftContributionIndex((InadequacyList *)piVar3[1])" identifier (argument_list "((InadequacyList *)piVar3[1])" ( (cast_expression "(InadequacyList *)piVar3[1]" ( (type_descriptor "InadequacyList *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (CVar13 != i) {\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }" if (parenthesized_expression "(CVar13 != i)" ( (binary_expression "CVar13 != i" identifier != identifier) )) (compound_statement "{\n            (**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);\n            if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }\n            iVar7 = 0x252;\n            pcVar37 = *(code **)(pcVar36 + 0x757e0);\n            uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);\n            (*pcVar37)();\n            (**(code **)(pcVar37 + 0x74da0))(iVar7);\n            if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }\n            uVar30 = uVar29 + 7 >> 3;\n            goto LAB_00018a68;\n          }" { (expression_statement "(**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33);" (call_expression "(**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar7 + 0x124c,sVar33)" (parenthesized_expression "(**(code **)(pcVar36 + 0x75818))" ( (pointer_expression "**(code **)(pcVar36 + 0x75818)" * (pointer_expression "*(code **)(pcVar36 + 0x75818)" * (cast_expression "(code **)(pcVar36 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75818)" ( (binary_expression "pcVar36 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar20,1,iVar7 + 0x124c,sVar33)" ( (pointer_expression "*piVar20" * identifier) , number_literal , (binary_expression "iVar7 + 0x124c" identifier + number_literal) , identifier ))) ;) (if_statement "if (iVar21 != -1) {\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }" if (parenthesized_expression "(iVar21 != -1)" ( (binary_expression "iVar21 != -1" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));\n              CVar13 = iVar21 + 1;\n              self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);\n              iVar21 = (**(code **)(pcVar36 + 0x75114))();\n              if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }\n              AnnotationList__isContributionAlways(self_00,CVar13);\n            }" { (expression_statement "(**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4));" (call_expression "(**(code **)(pcVar36 + 0x75818))\n                        (*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4))" (parenthesized_expression "(**(code **)(pcVar36 + 0x75818))" ( (pointer_expression "**(code **)(pcVar36 + 0x75818)" * (pointer_expression "*(code **)(pcVar36 + 0x75818)" * (cast_expression "(code **)(pcVar36 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75818)" ( (binary_expression "pcVar36 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar20,1,iVar9 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4))" ( (pointer_expression "*piVar20" * identifier) , number_literal , (binary_expression "iVar9 + 0x1280" identifier + number_literal) , (pointer_expression "*(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4)" * (cast_expression "(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4)" ( (binary_expression "*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4) +\n                          4" (pointer_expression "*(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4)" * (cast_expression "(int *)(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4)" ( (binary_expression "*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc) + (iVar21 + 2) * 4" (pointer_expression "*(int *)(*(int *)(piVar3[1] + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(piVar3[1] + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar3[1] + 0x10) + 0xc)" ( (binary_expression "*(int *)(piVar3[1] + 0x10) + 0xc" (pointer_expression "*(int *)(piVar3[1] + 0x10)" * (cast_expression "(int *)(piVar3[1] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x10)" ( (binary_expression "piVar3[1] + 0x10" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) )))) + number_literal) )))) + (binary_expression "(iVar21 + 2) * 4" (parenthesized_expression "(iVar21 + 2)" ( (binary_expression "iVar21 + 2" identifier + number_literal) )) * number_literal)) )))) + number_literal) )))) ))) ;) (expression_statement "CVar13 = iVar21 + 1;" (assignment_expression "CVar13 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "self_00 = *(AnnotationList **)(piVar3[1] + 0x1c);" (assignment_expression "self_00 = *(AnnotationList **)(piVar3[1] + 0x1c)" identifier = (pointer_expression "*(AnnotationList **)(piVar3[1] + 0x1c)" * (cast_expression "(AnnotationList **)(piVar3[1] + 0x1c)" ( (type_descriptor "AnnotationList **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar3[1] + 0x1c)" ( (binary_expression "piVar3[1] + 0x1c" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar21 = (**(code **)(pcVar36 + 0x75114))();" (assignment_expression "iVar21 = (**(code **)(pcVar36 + 0x75114))()" identifier = (call_expression "(**(code **)(pcVar36 + 0x75114))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x75114))" ( (pointer_expression "**(code **)(pcVar36 + 0x75114)" * (pointer_expression "*(code **)(pcVar36 + 0x75114)" * (cast_expression "(code **)(pcVar36 + 0x75114)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75114)" ( (binary_expression "pcVar36 + 0x75114" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (i < *(int *)(piVar3[1] + 0x14)) {\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }" if (parenthesized_expression "(i < *(int *)(piVar3[1] + 0x14))" ( (binary_expression "i < *(int *)(piVar3[1] + 0x14)" identifier < (pointer_expression "*(int *)(piVar3[1] + 0x14)" * (cast_expression "(int *)(piVar3[1] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[1] + 0x14)" ( (binary_expression "piVar3[1] + 0x14" (subscript_expression "piVar3[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }\n                (**(code **)(pcVar36 + 0x75830))(10,*piVar20);\n                goto LAB_000188d8;\n              }" { (if_statement "if (*piVar31 == 0) {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }\n                else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }" if (parenthesized_expression "(*piVar31 == 0)" ( (binary_expression "*piVar31 == 0" (pointer_expression "*piVar31" * identifier) == number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);\n                }" { (expression_statement "(**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20);" (call_expression "(**(code **)(pcVar36 + 0x758f4))(iVar11 + 0x12a0,1,8,*piVar20)" (parenthesized_expression "(**(code **)(pcVar36 + 0x758f4))" ( (pointer_expression "**(code **)(pcVar36 + 0x758f4)" * (pointer_expression "*(code **)(pcVar36 + 0x758f4)" * (cast_expression "(code **)(pcVar36 + 0x758f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x758f4)" ( (binary_expression "pcVar36 + 0x758f4" identifier + number_literal) ))))) )) (argument_list "(iVar11 + 0x12a0,1,8,*piVar20)" ( (binary_expression "iVar11 + 0x12a0" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*piVar20" * identifier) ))) ;) }) (else_clause "else {\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }" else (compound_statement "{\n                  (**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);\n                  Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);\n                }" { (expression_statement "(**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9);" (call_expression "(**(code **)(pcVar36 + 0x758f4))(iVar10 + 0x12ac,1,9)" (parenthesized_expression "(**(code **)(pcVar36 + 0x758f4))" ( (pointer_expression "**(code **)(pcVar36 + 0x758f4)" * (pointer_expression "*(code **)(pcVar36 + 0x758f4)" * (cast_expression "(code **)(pcVar36 + 0x758f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x758f4)" ( (binary_expression "pcVar36 + 0x758f4" identifier + number_literal) ))))) )) (argument_list "(iVar10 + 0x12ac,1,9)" ( (binary_expression "iVar10 + 0x12ac" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20);" (call_expression "Sbitset__fprint((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20)" identifier (argument_list "((Sbitset)*piVar31,(Sbitset__Index)nbits,(FILE *)*piVar20)" ( (binary_expression "(Sbitset)*piVar31" (parenthesized_expression "(Sbitset)" ( identifier )) * identifier) , (cast_expression "(Sbitset__Index)nbits" ( (type_descriptor "Sbitset__Index" type_identifier) ) identifier) , (cast_expression "(FILE *)*piVar20" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier)) ))) ;) }))) (expression_statement "(**(code **)(pcVar36 + 0x75830))(10,*piVar20);" (call_expression "(**(code **)(pcVar36 + 0x75830))(10,*piVar20)" (parenthesized_expression "(**(code **)(pcVar36 + 0x75830))" ( (pointer_expression "**(code **)(pcVar36 + 0x75830)" * (pointer_expression "*(code **)(pcVar36 + 0x75830)" * (cast_expression "(code **)(pcVar36 + 0x75830)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75830)" ( (binary_expression "pcVar36 + 0x75830" identifier + number_literal) ))))) )) (argument_list "(10,*piVar20)" ( number_literal , (pointer_expression "*piVar20" * identifier) ))) ;) (goto_statement "goto LAB_000188d8;" goto statement_identifier ;) })) (expression_statement "AnnotationList__isContributionAlways(self_00,CVar13);" (call_expression "AnnotationList__isContributionAlways(self_00,CVar13)" identifier (argument_list "(self_00,CVar13)" ( identifier , identifier ))) ;) })) (expression_statement "iVar7 = 0x252;" (assignment_expression "iVar7 = 0x252" identifier = number_literal) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x757e0);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x757e0)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x757e0)" * (cast_expression "(code **)(pcVar36 + 0x757e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x757e0)" ( (binary_expression "pcVar36 + 0x757e0" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4;" (assignment_expression "uVar29 = *(int *)(pcVar36 + 0x74fd8) + 0x11b4" identifier = (binary_expression "*(int *)(pcVar36 + 0x74fd8) + 0x11b4" (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264);" (assignment_expression "piStackY_1110 = (int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264)" identifier = (cast_expression "(int *)(*(int *)(pcVar36 + 0x74fd8) + 0x1264)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x74fd8) + 0x1264)" ( (binary_expression "*(int *)(pcVar36 + 0x74fd8) + 0x1264" (pointer_expression "*(int *)(pcVar36 + 0x74fd8)" * (cast_expression "(int *)(pcVar36 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x74fd8)" ( (binary_expression "pcVar36 + 0x74fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar37 + 0x74da0))(iVar7);" (call_expression "(**(code **)(pcVar37 + 0x74da0))(iVar7)" (parenthesized_expression "(**(code **)(pcVar37 + 0x74da0))" ( (pointer_expression "**(code **)(pcVar37 + 0x74da0)" * (pointer_expression "*(code **)(pcVar37 + 0x74da0)" * (cast_expression "(code **)(pcVar37 + 0x74da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x74da0)" ( (binary_expression "pcVar37 + 0x74da0" identifier + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if (piStackY_1110 == (int *)0x0) {\n              return false;\n            }" if (parenthesized_expression "(piStackY_1110 == (int *)0x0)" ( (binary_expression "piStackY_1110 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar30 = uVar29 + 7 >> 3;" (assignment_expression "uVar30 = uVar29 + 7 >> 3" identifier = (binary_expression "uVar29 + 7 >> 3" (binary_expression "uVar29 + 7" identifier + number_literal) >> number_literal)) ;) (goto_statement "goto LAB_00018a68;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33);" (call_expression "(**(code **)(pcVar36 + 0x75818))(*piVar20,1,iVar12 + 0x122c,sVar33)" (parenthesized_expression "(**(code **)(pcVar36 + 0x75818))" ( (pointer_expression "**(code **)(pcVar36 + 0x75818)" * (pointer_expression "*(code **)(pcVar36 + 0x75818)" * (cast_expression "(code **)(pcVar36 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x75818)" ( (binary_expression "pcVar36 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar20,1,iVar12 + 0x122c,sVar33)" ( (pointer_expression "*piVar20" * identifier) , number_literal , (binary_expression "iVar12 + 0x122c" identifier + number_literal) , identifier ))) ;) (labeled_statement "LAB_000188d8:\n          pIVar22 = (InadequacyList *)piVar3[1];" statement_identifier : (expression_statement "pIVar22 = (InadequacyList *)piVar3[1];" (assignment_expression "pIVar22 = (InadequacyList *)piVar3[1]" identifier = (cast_expression "(InadequacyList *)piVar3[1]" ( (type_descriptor "InadequacyList *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ]))) ;)) (expression_statement "i = i + 1;" (assignment_expression "i = i + 1" identifier = (binary_expression "i + 1" identifier + number_literal)) ;) (expression_statement "piVar31 = piVar31 + 1;" (assignment_expression "piVar31 = piVar31 + 1" identifier = (binary_expression "piVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(i < pIVar22->contributionCount)" ( (binary_expression "i < pIVar22->contributionCount" identifier < (field_expression "pIVar22->contributionCount" identifier -> field_identifier)) )) ;) })) (expression_statement "piVar3 = (int *)*piVar3;" (assignment_expression "piVar3 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "iStack_10d8 = iStack_10d8 + 1;" (assignment_expression "iStack_10d8 = iStack_10d8 + 1" identifier = (binary_expression "iStack_10d8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return SUB41(iStack_10d8,0);" return (call_expression "SUB41(iStack_10d8,0)" identifier (argument_list "(iStack_10d8,0)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_00018a68:\n  pIVar22 = (InadequacyList *)piStackY_1110[1];" statement_identifier : (expression_statement "pIVar22 = (InadequacyList *)piStackY_1110[1];" (assignment_expression "pIVar22 = (InadequacyList *)piStackY_1110[1]" identifier = (cast_expression "(InadequacyList *)piStackY_1110[1]" ( (type_descriptor "InadequacyList *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piStackY_1110[1]" identifier [ number_literal ]))) ;)) (if_statement "if (0 < pIVar22->contributionCount) {\n    iVar8 = 0;\n    piVar3 = piStackY_1110 + 2;\n    do {\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    } while (iVar8 < pIVar22->contributionCount);\n  }" if (parenthesized_expression "(0 < pIVar22->contributionCount)" ( (binary_expression "0 < pIVar22->contributionCount" number_literal < (field_expression "pIVar22->contributionCount" identifier -> field_identifier)) )) (compound_statement "{\n    iVar8 = 0;\n    piVar3 = piStackY_1110 + 2;\n    do {\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    } while (iVar8 < pIVar22->contributionCount);\n  }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "piVar3 = piStackY_1110 + 2;" (assignment_expression "piVar3 = piStackY_1110 + 2" identifier = (binary_expression "piStackY_1110 + 2" identifier + number_literal)) ;) (do_statement "do {\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    } while (iVar8 < pIVar22->contributionCount);" do (compound_statement "{\n      while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }\n      psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);\n      pbVar18 = (byte *)*piVar3;\n      pbVar24 = pbVar18 + uVar30;\n      uVar2 = psVar1->content->number;\n      if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }\nLAB_00018bb4:\n      iVar8 = iVar8 + 1;\n      pIVar22 = (InadequacyList *)piStackY_1110[1];\n      piVar3 = piVar3 + 1;\n    }" { (while_statement "while (*piVar3 == 0) {\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }" while (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n        iVar8 = iVar8 + 1;\n        piVar3 = piVar3 + 1;\n        if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;\n      }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (if_statement "if (pIVar22->contributionCount <= iVar8) goto LAB_00018bd0;" if (parenthesized_expression "(pIVar22->contributionCount <= iVar8)" ( (binary_expression "pIVar22->contributionCount <= iVar8" (field_expression "pIVar22->contributionCount" identifier -> field_identifier) <= identifier) )) (goto_statement "goto LAB_00018bd0;" goto statement_identifier ;)) })) (expression_statement "psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8);" (assignment_expression "psVar1 = InadequacyList__getContributionToken(pIVar22,iVar8)" identifier = (call_expression "InadequacyList__getContributionToken(pIVar22,iVar8)" identifier (argument_list "(pIVar22,iVar8)" ( identifier , identifier )))) ;) (expression_statement "pbVar18 = (byte *)*piVar3;" (assignment_expression "pbVar18 = (byte *)*piVar3" identifier = (cast_expression "(byte *)*piVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "pbVar24 = pbVar18 + uVar30;" (assignment_expression "pbVar24 = pbVar18 + uVar30" identifier = (binary_expression "pbVar18 + uVar30" identifier + identifier)) ;) (expression_statement "uVar2 = psVar1->content->number;" (assignment_expression "uVar2 = psVar1->content->number" identifier = (field_expression "psVar1->content->number" (field_expression "psVar1->content" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (pbVar18 < pbVar24) {\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }" if (parenthesized_expression "(pbVar18 < pbVar24)" ( (binary_expression "pbVar18 < pbVar24" identifier < identifier) )) (compound_statement "{\n        pbVar28 = pbVar18;\n        do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);\n      }" { (expression_statement "pbVar28 = pbVar18;" (assignment_expression "pbVar28 = pbVar18" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        } while (pbVar32 < pbVar24);" do (compound_statement "{\n          while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }\n          uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;\n          if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }\n          pbVar24 = pbVar18 + uVar30;\n          pbVar28 = pbVar32;\n        }" { (while_statement "while( true ) {\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar26 = (uint)*pbVar28;\n            pbVar32 = pbVar28 + 1;\n            if (uVar26 != 0) break;\nLAB_00018ae4:\n            pbVar28 = pbVar32;\n            if (pbVar24 <= pbVar32) goto LAB_00018bb4;\n          }" { (expression_statement "uVar26 = (uint)*pbVar28;" (assignment_expression "uVar26 = (uint)*pbVar28" identifier = (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar32 = pbVar28 + 1;" (assignment_expression "pbVar32 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018ae4:\n            pbVar28 = pbVar32;" statement_identifier : (expression_statement "pbVar28 = pbVar32;" (assignment_expression "pbVar28 = pbVar32" identifier = identifier) ;)) (if_statement "if (pbVar24 <= pbVar32) goto LAB_00018bb4;" if (parenthesized_expression "(pbVar24 <= pbVar32)" ( (binary_expression "pbVar24 <= pbVar32" identifier <= identifier) )) (goto_statement "goto LAB_00018bb4;" goto statement_identifier ;)) })) (expression_statement "uVar27 = ((int)pbVar28 - (int)pbVar18) * 8;" (assignment_expression "uVar27 = ((int)pbVar28 - (int)pbVar18) * 8" identifier = (binary_expression "((int)pbVar28 - (int)pbVar18) * 8" (parenthesized_expression "((int)pbVar28 - (int)pbVar18)" ( (binary_expression "(int)pbVar28 - (int)pbVar18" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if ((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))) goto LAB_00018ae4;" if (parenthesized_expression "((uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff)))" ( (binary_expression "(uVar29 <= uVar27) ||\n             (pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))" (parenthesized_expression "(uVar29 <= uVar27)" ( (binary_expression "uVar29 <= uVar27" identifier <= identifier) )) || (parenthesized_expression "(pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff))" ( (binary_expression "pbVar32 <= pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff)" identifier <= (binary_expression "pbVar18 + ((int)pbVar28 - (int)pbVar18 & 0x1fffffff)" identifier + (parenthesized_expression "((int)pbVar28 - (int)pbVar18 & 0x1fffffff)" ( (binary_expression "(int)pbVar28 - (int)pbVar18 & 0x1fffffff" (binary_expression "(int)pbVar28 - (int)pbVar18" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal) )))) ))) )) (goto_statement "goto LAB_00018ae4;" goto statement_identifier ;)) (while_statement "while( true ) {\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar27 = uVar27 + 1;\n            if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }\n            if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;\n            uVar26 = (uint)*pbVar28;\n          }" { (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (if_statement "if (((int)uVar26 >> (-uVar27 & 7) & 1U) != 0) {\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }" if (parenthesized_expression "(((int)uVar26 >> (-uVar27 & 7) & 1U) != 0)" ( (binary_expression "((int)uVar26 >> (-uVar27 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar26 >> (-uVar27 & 7) & 1U)" ( (binary_expression "(int)uVar26 >> (-uVar27 & 7) & 1U" (binary_expression "(int)uVar26 >> (-uVar27 & 7)" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(-uVar27 & 7)" ( (binary_expression "-uVar27 & 7" (unary_expression "-uVar27" - identifier) & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);\n              uVar26 = (uVar2 >> 5) - puVar17[1];\n              if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }\n            }" { (expression_statement "puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4);" (assignment_expression "puVar17 = *(undefined4 **)(iVar7 + uVar27 * 4 + -4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + uVar27 * 4 + -4)" * (cast_expression "(undefined4 **)(iVar7 + uVar27 * 4 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + uVar27 * 4 + -4)" ( (binary_expression "iVar7 + uVar27 * 4 + -4" (binary_expression "iVar7 + uVar27 * 4" identifier + (binary_expression "uVar27 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar26 = (uVar2 >> 5) - puVar17[1];" (assignment_expression "uVar26 = (uVar2 >> 5) - puVar17[1]" identifier = (binary_expression "(uVar2 >> 5) - puVar17[1]" (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) )) - (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar26 < (uint)puVar17[2]) {\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }" if (parenthesized_expression "(uVar26 < (uint)puVar17[2])" ( (binary_expression "uVar26 < (uint)puVar17[2]" identifier < (cast_expression "(uint)puVar17[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar17[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                puVar14 = (uint *)(puVar17[3] + uVar26 * 4);\n                *puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);\n              }" { (expression_statement "puVar14 = (uint *)(puVar17[3] + uVar26 * 4);" (assignment_expression "puVar14 = (uint *)(puVar17[3] + uVar26 * 4)" identifier = (cast_expression "(uint *)(puVar17[3] + uVar26 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17[3] + uVar26 * 4)" ( (binary_expression "puVar17[3] + uVar26 * 4" (subscript_expression "puVar17[3]" identifier [ number_literal ]) + (binary_expression "uVar26 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar14 = *puVar14 | 1 << (uVar2 & 0x1f);" (assignment_expression "*puVar14 = *puVar14 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar14" * identifier) = (binary_expression "*puVar14 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar14" * identifier) | (binary_expression "1 << (uVar2 & 0x1f)" number_literal << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))))) ;) }) (else_clause "else {\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }" else (compound_statement "{\n                (**(code **)*puVar17)(puVar17,uVar2);\n                pbVar18 = (byte *)*piVar3;\n              }" { (expression_statement "(**(code **)*puVar17)(puVar17,uVar2);" (call_expression "(**(code **)*puVar17)(puVar17,uVar2)" (parenthesized_expression "(**(code **)*puVar17)" ( (pointer_expression "**(code **)*puVar17" * (pointer_expression "*(code **)*puVar17" * (cast_expression "(code **)*puVar17" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar17" * identifier)))) )) (argument_list "(puVar17,uVar2)" ( identifier , identifier ))) ;) (expression_statement "pbVar18 = (byte *)*piVar3;" (assignment_expression "pbVar18 = (byte *)*piVar3" identifier = (cast_expression "(byte *)*piVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) }))) })) (if_statement "if ((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))) break;" if (parenthesized_expression "((uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3)))" ( (binary_expression "(uVar29 == uVar27) || (pbVar32 <= pbVar18 + (uVar27 >> 3))" (parenthesized_expression "(uVar29 == uVar27)" ( (binary_expression "uVar29 == uVar27" identifier == identifier) )) || (parenthesized_expression "(pbVar32 <= pbVar18 + (uVar27 >> 3))" ( (binary_expression "pbVar32 <= pbVar18 + (uVar27 >> 3)" identifier <= (binary_expression "pbVar18 + (uVar27 >> 3)" identifier + (parenthesized_expression "(uVar27 >> 3)" ( (binary_expression "uVar27 >> 3" identifier >> number_literal) )))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar26 = (uint)*pbVar28;" (assignment_expression "uVar26 = (uint)*pbVar28" identifier = (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar24 = pbVar18 + uVar30;" (assignment_expression "pbVar24 = pbVar18 + uVar30" identifier = (binary_expression "pbVar18 + uVar30" identifier + identifier)) ;) (expression_statement "pbVar28 = pbVar32;" (assignment_expression "pbVar28 = pbVar32" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar32 < pbVar24)" ( (binary_expression "pbVar32 < pbVar24" identifier < identifier) )) ;) })) (labeled_statement "LAB_00018bb4:\n      iVar8 = iVar8 + 1;" statement_identifier : (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;)) (expression_statement "pIVar22 = (InadequacyList *)piStackY_1110[1];" (assignment_expression "pIVar22 = (InadequacyList *)piStackY_1110[1]" identifier = (cast_expression "(InadequacyList *)piStackY_1110[1]" ( (type_descriptor "InadequacyList *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piStackY_1110[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < pIVar22->contributionCount)" ( (binary_expression "iVar8 < pIVar22->contributionCount" identifier < (field_expression "pIVar22->contributionCount" identifier -> field_identifier)) )) ;) })) (labeled_statement "LAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;" statement_identifier : (expression_statement "piStackY_1110 = (int *)*piStackY_1110;" (assignment_expression "piStackY_1110 = (int *)*piStackY_1110" identifier = (cast_expression "(int *)*piStackY_1110" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStackY_1110" * identifier))) ;)) (if_statement "if (piStackY_1110 == (int *)0x0) {\n    return false;\n  }" if (parenthesized_expression "(piStackY_1110 == (int *)0x0)" ( (binary_expression "piStackY_1110 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00018a68;" goto statement_identifier ;) })))
(translation_unit "uint FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}\n\n" (function_definition "uint FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}" type_identifier (function_declarator "FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)" identifier (parameter_list "(undefined4 *param_1,uint param_2,uint *param_3,int param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "undefined4 uVar28;" type_identifier identifier ;) (declaration "undefined *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "int *piStackY_1110;" primitive_type (pointer_declarator "*piStackY_1110" * identifier) ;) (declaration "uint uStack_10d8;" type_identifier identifier ;) (declaration "uint auStack_1078 [1024];" type_identifier (array_declarator "auStack_1078 [1024]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_78;" type_identifier identifier ;) (declaration "uint uStack_74;" type_identifier identifier ;) (declaration "uint uStack_70;" type_identifier identifier ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "undefined4 uStack_2c;" type_identifier identifier ;) (if_statement "if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }" if (parenthesized_expression "((int)param_3 < *(int *)(param_1[1] + 0x14))" ( (binary_expression "(int)param_3 < *(int *)(param_1[1] + 0x14)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_1[1] + 0x14)" * (cast_expression "(int *)(param_1[1] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 0x14)" ( (binary_expression "param_1[1] + 0x14" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }" { (if_statement "if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }" if (parenthesized_expression "(param_1[(int)param_3 + 2] == 0)" ( (binary_expression "param_1[(int)param_3 + 2] == 0" (subscript_expression "param_1[(int)param_3 + 2]" identifier [ (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }" { (expression_statement "iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);" (assignment_expression "iVar1 = InadequacyList__getContributionToken(param_1[1],param_3)" identifier = (call_expression "InadequacyList__getContributionToken(param_1[1],param_3)" identifier (argument_list "(param_1[1],param_3)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "pbVar17 = (byte *)param_1[(int)param_3 + 2];" (assignment_expression "pbVar17 = (byte *)param_1[(int)param_3 + 2]" identifier = (cast_expression "(byte *)param_1[(int)param_3 + 2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[(int)param_3 + 2]" identifier [ (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]))) ;) (expression_statement "uVar25 = param_2 + 7 >> 3;" (assignment_expression "uVar25 = param_2 + 7 >> 3" identifier = (binary_expression "param_2 + 7 >> 3" (binary_expression "param_2 + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "pbVar11 = pbVar17 + uVar25;" (assignment_expression "pbVar11 = pbVar17 + uVar25" identifier = (binary_expression "pbVar17 + uVar25" identifier + identifier)) ;) (expression_statement "uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);" (assignment_expression "uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" * (cast_expression "(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar1 + 0x28) + 0x80)" ( (binary_expression "*(int *)(iVar1 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar1 + 0x28)" * (cast_expression "(int *)(iVar1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x28)" ( (binary_expression "iVar1 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }" if (parenthesized_expression "(pbVar17 < pbVar11)" ( (binary_expression "pbVar17 < pbVar11" identifier < identifier) )) (compound_statement "{\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }" { (expression_statement "pbVar21 = pbVar17;" (assignment_expression "pbVar21 = pbVar17" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);" do (compound_statement "{\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        }" { (while_statement "while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }" { (expression_statement "uVar2 = (uint)*pbVar21;" (assignment_expression "uVar2 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar27 = pbVar21 + 1;" (assignment_expression "pbVar27 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 != 0) break;" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000182bc:\n            pbVar21 = pbVar27;" statement_identifier : (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;)) (if_statement "if (pbVar11 <= pbVar27) {\n              return 0;\n            }" if (parenthesized_expression "(pbVar11 <= pbVar27)" ( (binary_expression "pbVar11 <= pbVar27" identifier <= identifier) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;" (assignment_expression "uVar20 = ((int)pbVar21 - (int)pbVar17) * 8" identifier = (binary_expression "((int)pbVar21 - (int)pbVar17) * 8" (parenthesized_expression "((int)pbVar21 - (int)pbVar17)" ( (binary_expression "(int)pbVar21 - (int)pbVar17" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;" if (parenthesized_expression "((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)))" ( (binary_expression "(param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))" (parenthesized_expression "(param_2 <= uVar20)" ( (binary_expression "param_2 <= uVar20" identifier <= identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))" ( (binary_expression "pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" identifier <= (binary_expression "pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" identifier + (parenthesized_expression "((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" ( (binary_expression "(int)pbVar21 - (int)pbVar17 & 0x1fffffff" (binary_expression "(int)pbVar21 - (int)pbVar17" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal) )))) ))) )) (goto_statement "goto LAB_000182bc;" goto statement_identifier ;)) (while_statement "while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }" { (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;) (if_statement "if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }" if (parenthesized_expression "((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0))" ( (binary_expression "(((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)" (parenthesized_expression "(((int)uVar2 >> (-uVar20 & 7) & 1U) != 0)" ( (binary_expression "((int)uVar2 >> (-uVar20 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar2 >> (-uVar20 & 7) & 1U)" ( (binary_expression "(int)uVar2 >> (-uVar20 & 7) & 1U" (binary_expression "(int)uVar2 >> (-uVar20 & 7)" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(-uVar20 & 7)" ( (binary_expression "-uVar20 & 7" (unary_expression "-uVar20" - identifier) & number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)" ( (comma_expression "piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0" (assignment_expression "piVar12 = *(int **)(param_4 + uVar20 * 4 + -4)" identifier = (pointer_expression "*(int **)(param_4 + uVar20 * 4 + -4)" * (cast_expression "(int **)(param_4 + uVar20 * 4 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + uVar20 * 4 + -4)" ( (binary_expression "param_4 + uVar20 * 4 + -4" (binary_expression "param_4 + uVar20 * 4" identifier + (binary_expression "uVar20 * 4" identifier * number_literal)) + number_literal) ))))) , (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }" { (expression_statement "uVar2 = (uVar23 >> 5) - piVar12[1];" (assignment_expression "uVar2 = (uVar23 >> 5) - piVar12[1]" identifier = (binary_expression "(uVar23 >> 5) - piVar12[1]" (parenthesized_expression "(uVar23 >> 5)" ( (binary_expression "uVar23 >> 5" identifier >> number_literal) )) - (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" if (parenthesized_expression "(uVar2 < (uint)piVar12[2])" ( (binary_expression "uVar2 < (uint)piVar12[2]" identifier < (cast_expression "(uint)piVar12[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }" { (expression_statement "uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;" (assignment_expression "uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1" identifier = (binary_expression "*(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1" (binary_expression "*(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f)" (pointer_expression "*(uint *)(piVar12[3] + uVar2 * 4)" * (cast_expression "(uint *)(piVar12[3] + uVar2 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[3] + uVar2 * 4)" ( (binary_expression "piVar12[3] + uVar2 * 4" (subscript_expression "piVar12[3]" identifier [ number_literal ]) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) >> (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) & number_literal)) ;) }) (else_clause "else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" else (compound_statement "{\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" { (expression_statement "uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);" (assignment_expression "uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23)" identifier = (call_expression "(**(code **)(*piVar12 + 0xc))(piVar12,uVar23)" (parenthesized_expression "(**(code **)(*piVar12 + 0xc))" ( (pointer_expression "**(code **)(*piVar12 + 0xc)" * (pointer_expression "*(code **)(*piVar12 + 0xc)" * (cast_expression "(code **)(*piVar12 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0xc)" ( (binary_expression "*piVar12 + 0xc" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,uVar23)" ( identifier , identifier )))) ;) }))) (if_statement "if (uVar2 != 0) {\n                return 1;\n              }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pbVar17 = (byte *)param_1[(int)param_3 + 2];" (assignment_expression "pbVar17 = (byte *)param_1[(int)param_3 + 2]" identifier = (cast_expression "(byte *)param_1[(int)param_3 + 2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[(int)param_3 + 2]" identifier [ (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]))) ;) })) (if_statement "if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;" if (parenthesized_expression "((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3)))" ( (binary_expression "(param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))" (parenthesized_expression "(param_2 == uVar20)" ( (binary_expression "param_2 == uVar20" identifier == identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar17 + (uVar20 >> 3))" ( (binary_expression "pbVar27 <= pbVar17 + (uVar20 >> 3)" identifier <= (binary_expression "pbVar17 + (uVar20 >> 3)" identifier + (parenthesized_expression "(uVar20 >> 3)" ( (binary_expression "uVar20 >> 3" identifier >> number_literal) )))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = (uint)*pbVar21;" (assignment_expression "uVar2 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar11 = pbVar17 + uVar25;" (assignment_expression "pbVar11 = pbVar17 + uVar25" identifier = (binary_expression "pbVar17 + uVar25" identifier + identifier)) ;) (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar27 < pbVar11)" ( (binary_expression "pbVar27 < pbVar11" identifier < identifier) )) ;) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar29 = PTR_0008d624 + 0x7fd0;" (assignment_expression "puVar29 = PTR_0008d624 + 0x7fd0" identifier = (binary_expression "PTR_0008d624 + 0x7fd0" identifier + number_literal)) ;) (expression_statement "FUN_00017fd0();" (call_expression "FUN_00017fd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(puVar29 + 0x75b74);" (assignment_expression "piVar12 = *(int **)(puVar29 + 0x75b74)" identifier = (pointer_expression "*(int **)(puVar29 + 0x75b74)" * (cast_expression "(int **)(puVar29 + 0x75b74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x75b74)" ( (binary_expression "puVar29 + 0x75b74" identifier + number_literal) ))))) ;) (expression_statement "piStack_6c = (int *)*piVar12;" (assignment_expression "piStack_6c = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "puVar19 = param_3;" (assignment_expression "puVar19 = param_3" identifier = identifier) ;) (expression_statement "iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));" (assignment_expression "iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80))" identifier = (call_expression "map_goto(*param_1,*(undefined4 *)(param_2 + 0x80))" identifier (argument_list "(*param_1,*(undefined4 *)(param_2 + 0x80))" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*(undefined4 *)(param_2 + 0x80)" * (cast_expression "(undefined4 *)(param_2 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x80)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) )))) )))) ;) (expression_statement "piVar13 = *(int **)(&_gp_1 + iVar1 * 4);" (assignment_expression "piVar13 = *(int **)(&_gp_1 + iVar1 * 4)" identifier = (pointer_expression "*(int **)(&_gp_1 + iVar1 * 4)" * (cast_expression "(int **)(&_gp_1 + iVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&_gp_1 + iVar1 * 4)" ( (binary_expression "&_gp_1 + iVar1 * 4" (pointer_expression "&_gp_1" & identifier) + (binary_expression "iVar1 * 4" identifier * number_literal)) ))))) ;) (expression_statement "puVar18 = (uint *)piVar13[2];" (assignment_expression "puVar18 = (uint *)piVar13[2]" identifier = (cast_expression "(uint *)piVar13[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);" (assignment_expression "puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1])" identifier = (cast_expression "(uint *)(((uint)param_3 >> 5) - piVar13[1])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)param_3 >> 5) - piVar13[1])" ( (binary_expression "((uint)param_3 >> 5) - piVar13[1]" (parenthesized_expression "((uint)param_3 >> 5)" ( (binary_expression "(uint)param_3 >> 5" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - (subscript_expression "piVar13[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" if (parenthesized_expression "(puVar3 < puVar18)" ( (binary_expression "puVar3 < puVar18" identifier < identifier) )) (compound_statement "{\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }" { (expression_statement "uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;" (assignment_expression "uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1" identifier = (binary_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1" (binary_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f)" (pointer_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4)" * (cast_expression "(uint *)(piVar13[3] + (int)puVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13[3] + (int)puVar3 * 4)" ( (binary_expression "piVar13[3] + (int)puVar3 * 4" (subscript_expression "piVar13[3]" identifier [ number_literal ]) + (binary_expression "(int)puVar3 * 4" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) >> (parenthesized_expression "((uint)param_3 & 0x1f)" ( (binary_expression "(uint)param_3 & 0x1f" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal)) ;) }) (else_clause "else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" else (compound_statement "{\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" { (expression_statement "puVar18 = param_3;" (assignment_expression "puVar18 = param_3" identifier = identifier) ;) (expression_statement "uVar23 = (**(code **)(*piVar13 + 0xc))();" (assignment_expression "uVar23 = (**(code **)(*piVar13 + 0xc))()" identifier = (call_expression "(**(code **)(*piVar13 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar13 + 0xc))" ( (pointer_expression "**(code **)(*piVar13 + 0xc)" * (pointer_expression "*(code **)(*piVar13 + 0xc)" * (cast_expression "(code **)(*piVar13 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0xc)" ( (binary_expression "*piVar13 + 0xc" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" { (expression_statement "iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);" (assignment_expression "iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2)" identifier = (call_expression "Sbitset__new_on_obstack(param_1[9],unaff_s2)" identifier (argument_list "(param_1[9],unaff_s2)" ( (subscript_expression "param_1[9]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "*unaff_s1 = iVar4;" (assignment_expression "*unaff_s1 = iVar4" (pointer_expression "*unaff_s1" * identifier) = identifier) ;) (expression_statement "uStack_78 = 0;" (assignment_expression "uStack_78 = 0" identifier = number_literal) ;) (expression_statement "uStack_74 = 0x400;" (assignment_expression "uStack_74 = 0x400" identifier = number_literal) ;) (do_statement "do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);" do (compound_statement "{\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    }" { (expression_statement "puVar19 = (uint *)0x400;" (assignment_expression "puVar19 = (uint *)0x400" identifier = (cast_expression "(uint *)0x400" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar13 = *(int **)(param_4 + iVar1 * 4);" (assignment_expression "piVar13 = *(int **)(param_4 + iVar1 * 4)" identifier = (pointer_expression "*(int **)(param_4 + iVar1 * 4)" * (cast_expression "(int **)(param_4 + iVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + iVar1 * 4)" ( (binary_expression "param_4 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) ))))) ;) (expression_statement "puVar18 = auStack_1078;" (assignment_expression "puVar18 = auStack_1078" identifier = identifier) ;) (expression_statement "uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);" (assignment_expression "uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78)" identifier = (call_expression "(**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78)" (parenthesized_expression "(**(code **)(*piVar13 + 0x74))" ( (pointer_expression "**(code **)(*piVar13 + 0x74)" * (pointer_expression "*(code **)(*piVar13 + 0x74)" * (cast_expression "(code **)(*piVar13 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0x74)" ( (binary_expression "*piVar13 + 0x74" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "(piVar13,auStack_1078,0x400,&uStack_78)" ( identifier , identifier , number_literal , (pointer_expression "&uStack_78" & identifier) )))) ;) (if_statement "if (uStack_74 == 0) break;" if (parenthesized_expression "(uStack_74 == 0)" ( (binary_expression "uStack_74 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" identifier = number_literal) ;) (do_statement "do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);" do (compound_statement "{\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      }" { (expression_statement "puVar18 = (uint *)0x0;" (assignment_expression "puVar18 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar3 = (uint *)auStack_1078[uStack_70];" (assignment_expression "puVar3 = (uint *)auStack_1078[uStack_70]" identifier = (cast_expression "(uint *)auStack_1078[uStack_70]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "auStack_1078[uStack_70]" identifier [ identifier ]))) ;) (expression_statement "puVar19 = puVar3;" (assignment_expression "puVar19 = puVar3" identifier = identifier) ;) (expression_statement "iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);" (assignment_expression "iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" identifier = (call_expression "ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" identifier (argument_list "(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" ( identifier , number_literal , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }" { (expression_statement "pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));" (assignment_expression "pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3))" identifier = (cast_expression "(byte *)(*unaff_s1 + ((uint)puVar3 >> 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*unaff_s1 + ((uint)puVar3 >> 3))" ( (binary_expression "*unaff_s1 + ((uint)puVar3 >> 3)" (pointer_expression "*unaff_s1" * identifier) + (parenthesized_expression "((uint)puVar3 >> 3)" ( (binary_expression "(uint)puVar3 >> 3" (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (expression_statement "*pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;" (assignment_expression "*pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11" (pointer_expression "*pbVar11" * identifier) = (binary_expression "(byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11" (call_expression "(byte)(1 << (~(uint)puVar3 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (~(uint)puVar3 & 7))" ( (binary_expression "1 << (~(uint)puVar3 & 7)" number_literal << (parenthesized_expression "(~(uint)puVar3 & 7)" ( (binary_expression "~(uint)puVar3 & 7" (unary_expression "~(uint)puVar3" ~ (cast_expression "(uint)puVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) & number_literal) ))) ))) | (pointer_expression "*pbVar11" * identifier))) ;) })) (expression_statement "uStack_70 = uStack_70 + 1;" (assignment_expression "uStack_70 = uStack_70 + 1" identifier = (binary_expression "uStack_70 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uStack_70 < uStack_74)" ( (binary_expression "uStack_70 < uStack_74" identifier < identifier) )) ;) }) while (parenthesized_expression "(uStack_74 == 0x400)" ( (binary_expression "uStack_74 == 0x400" identifier == number_literal) )) ;) })) (if_statement "if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }" if (parenthesized_expression "(piStack_6c == (int *)*piVar12)" ( (binary_expression "piStack_6c == (int *)*piVar12" identifier == (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) )) (compound_statement "{\n    return uVar23;\n  }" { (return_statement "return uVar23;" return identifier ;) })) (expression_statement "pcVar30 = *(code **)(puVar29 + 0x75b50);" (assignment_expression "pcVar30 = *(code **)(puVar29 + 0x75b50)" identifier = (pointer_expression "*(code **)(puVar29 + 0x75b50)" * (cast_expression "(code **)(puVar29 + 0x75b50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x75b50)" ( (binary_expression "puVar29 + 0x75b50" identifier + number_literal) ))))) ;) (expression_statement "piVar12 = piStack_6c;" (assignment_expression "piVar12 = piStack_6c" identifier = identifier) ;) (expression_statement "uStack_10d8 = (*pcVar30)();" (assignment_expression "uStack_10d8 = (*pcVar30)()" identifier = (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }" { (expression_statement "iVar1 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar1 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = *(int **)(pcVar30 + 0x75964);" (assignment_expression "piVar13 = *(int **)(pcVar30 + 0x75964)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x75964)" * (cast_expression "(int **)(pcVar30 + 0x75964)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75964)" ( (binary_expression "pcVar30 + 0x75964" identifier + number_literal) ))))) ;) (expression_statement "uStack_10d8 = 0;" (assignment_expression "uStack_10d8 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar4 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar5 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar6 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar7 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar8 = *(int *)(pcVar30 + 0x74fd8)" identifier = (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) ))))) ;) (do_statement "do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);" do (compound_statement "{\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    }" { (if_statement "if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }" if (parenthesized_expression "(0 < (int)puVar19)" ( (binary_expression "0 < (int)puVar19" number_literal < (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }" { (expression_statement "puVar3 = (uint *)0x0;" (assignment_expression "puVar3 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);" do (compound_statement "{\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        }" { (expression_statement "iVar14 = *piVar13;" (assignment_expression "iVar14 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "puVar9 = *(undefined1 **)(iVar14 + 0x14);" (assignment_expression "puVar9 = *(undefined1 **)(iVar14 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar14 + 0x14)" * (cast_expression "(undefined1 **)(iVar14 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" if (parenthesized_expression "(puVar9 < *(undefined1 **)(iVar14 + 0x18))" ( (binary_expression "puVar9 < *(undefined1 **)(iVar14 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar14 + 0x18)" * (cast_expression "(undefined1 **)(iVar14 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x18)" ( (binary_expression "iVar14 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }" { (expression_statement "*(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;" (assignment_expression "*(undefined1 **)(iVar14 + 0x14) = puVar9 + 1" (pointer_expression "*(undefined1 **)(iVar14 + 0x14)" * (cast_expression "(undefined1 **)(iVar14 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "*puVar9 = 0x20;" (assignment_expression "*puVar9 = 0x20" (pointer_expression "*puVar9" * identifier) = number_literal) ;) }) (else_clause "else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" else (compound_statement "{\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" { (expression_statement "(**(code **)(pcVar30 + 0x75834))(iVar14,0x20);" (call_expression "(**(code **)(pcVar30 + 0x75834))(iVar14,0x20)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75834))" ( (pointer_expression "**(code **)(pcVar30 + 0x75834)" * (pointer_expression "*(code **)(pcVar30 + 0x75834)" * (cast_expression "(code **)(pcVar30 + 0x75834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75834)" ( (binary_expression "pcVar30 + 0x75834" identifier + number_literal) ))))) )) (argument_list "(iVar14,0x20)" ( identifier , number_literal ))) ;) }))) (expression_statement "puVar3 = (uint *)((int)puVar3 + 1);" (assignment_expression "puVar3 = (uint *)((int)puVar3 + 1)" identifier = (cast_expression "(uint *)((int)puVar3 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + 1)" ( (binary_expression "(int)puVar3 + 1" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(puVar19 != puVar3)" ( (binary_expression "puVar19 != puVar3" identifier != identifier) )) ;) })) (expression_statement "(**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));" (call_expression "(**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10))" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10))" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar4 + 0x1204" identifier + number_literal) , identifier , (pointer_expression "**(undefined4 **)(piVar12[1] + 0x10)" * (pointer_expression "*(undefined4 **)(piVar12[1] + 0x10)" * (cast_expression "(undefined4 **)(piVar12[1] + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[1] + 0x10)" ( (binary_expression "piVar12[1] + 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) ))))) ))) ;) (expression_statement "iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));" (assignment_expression "iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c))" identifier = (call_expression "(**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c))" (parenthesized_expression "(**(code **)(pcVar30 + 0x7510c))" ( (pointer_expression "**(code **)(pcVar30 + 0x7510c)" * (pointer_expression "*(code **)(pcVar30 + 0x7510c)" * (cast_expression "(code **)(pcVar30 + 0x7510c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x7510c)" ( (binary_expression "pcVar30 + 0x7510c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(piVar12[1] + 0x1c))" ( (pointer_expression "*(undefined4 *)(piVar12[1] + 0x1c)" * (cast_expression "(undefined4 *)(piVar12[1] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x1c)" ( (binary_expression "piVar12[1] + 0x1c" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (expression_statement "iVar15 = piVar12[1];" (assignment_expression "iVar15 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }" if (parenthesized_expression "(0 < *(int *)(iVar15 + 0x14))" ( (binary_expression "0 < *(int *)(iVar15 + 0x14)" number_literal < (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }" { (expression_statement "piVar26 = piVar12 + 2;" (assignment_expression "piVar26 = piVar12 + 2" identifier = (binary_expression "piVar12 + 2" identifier + number_literal)) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));" do (compound_statement "{\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        }" { (expression_statement "iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);" (assignment_expression "iVar15 = InadequacyList__getContributionToken(iVar15,iVar24)" identifier = (call_expression "InadequacyList__getContributionToken(iVar15,iVar24)" identifier (argument_list "(iVar15,iVar24)" ( identifier , identifier )))) ;) (expression_statement "uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);" (assignment_expression "uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" * (cast_expression "(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar15 + 0x28) + 0x80)" ( (binary_expression "*(int *)(iVar15 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar15 + 0x28)" * (cast_expression "(int *)(iVar15 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x28)" ( (binary_expression "iVar15 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }" if (parenthesized_expression "(-2 < (int)puVar19)" ( (binary_expression "-2 < (int)puVar19" number_literal < (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);" do (compound_statement "{\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            }" { (expression_statement "iVar16 = *piVar13;" (assignment_expression "iVar16 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "puVar9 = *(undefined1 **)(iVar16 + 0x14);" (assignment_expression "puVar9 = *(undefined1 **)(iVar16 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(iVar16 + 0x14)" * (cast_expression "(undefined1 **)(iVar16 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" if (parenthesized_expression "(puVar9 < *(undefined1 **)(iVar16 + 0x18))" ( (binary_expression "puVar9 < *(undefined1 **)(iVar16 + 0x18)" identifier < (pointer_expression "*(undefined1 **)(iVar16 + 0x18)" * (cast_expression "(undefined1 **)(iVar16 + 0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }" { (expression_statement "*(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;" (assignment_expression "*(undefined1 **)(iVar16 + 0x14) = puVar9 + 1" (pointer_expression "*(undefined1 **)(iVar16 + 0x14)" * (cast_expression "(undefined1 **)(iVar16 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "*puVar9 = 0x20;" (assignment_expression "*puVar9 = 0x20" (pointer_expression "*puVar9" * identifier) = number_literal) ;) }) (else_clause "else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" else (compound_statement "{\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" { (expression_statement "(**(code **)(pcVar30 + 0x75834))(iVar16,0x20);" (call_expression "(**(code **)(pcVar30 + 0x75834))(iVar16,0x20)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75834))" ( (pointer_expression "**(code **)(pcVar30 + 0x75834)" * (pointer_expression "*(code **)(pcVar30 + 0x75834)" * (cast_expression "(code **)(pcVar30 + 0x75834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75834)" ( (binary_expression "pcVar30 + 0x75834" identifier + number_literal) ))))) )) (argument_list "(iVar16,0x20)" ( identifier , number_literal ))) ;) }))) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != (int)puVar19 + 2U)" ( (binary_expression "iVar15 != (int)puVar19 + 2U" identifier != (binary_expression "(int)puVar19 + 2U" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) )) ;) })) (expression_statement "iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);" (assignment_expression "iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1])" identifier = (call_expression "InadequacyList__getShiftContributionIndex(piVar12[1])" identifier (argument_list "(piVar12[1])" ( (subscript_expression "piVar12[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }" if (parenthesized_expression "(iVar15 != iVar24)" ( (binary_expression "iVar15 != iVar24" identifier != identifier) )) (compound_statement "{\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }" { (expression_statement "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);" (call_expression "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar1 + 0x124c,uVar28)" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar1 + 0x124c" identifier + number_literal) , identifier ))) ;) (if_statement "if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }" if (parenthesized_expression "(iVar14 != -1)" ( (binary_expression "iVar14 != -1" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }" { (expression_statement "(**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));" (call_expression "(**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4))" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4))" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar5 + 0x1280" identifier + number_literal) , (pointer_expression "*(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" * (cast_expression "(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" ( (binary_expression "*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4" (pointer_expression "*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" * (cast_expression "(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" ( (binary_expression "*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4" (pointer_expression "*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(piVar12[1] + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar12[1] + 0x10) + 0xc)" ( (binary_expression "*(int *)(piVar12[1] + 0x10) + 0xc" (pointer_expression "*(int *)(piVar12[1] + 0x10)" * (cast_expression "(int *)(piVar12[1] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x10)" ( (binary_expression "piVar12[1] + 0x10" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) + number_literal) )))) + (binary_expression "(iVar14 + 2) * 4" (parenthesized_expression "(iVar14 + 2)" ( (binary_expression "iVar14 + 2" identifier + number_literal) )) * number_literal)) )))) + number_literal) )))) ))) ;) (expression_statement "iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);" (assignment_expression "iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" identifier = (call_expression "(**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75114))" ( (pointer_expression "**(code **)(pcVar30 + 0x75114)" * (pointer_expression "*(code **)(pcVar30 + 0x75114)" * (cast_expression "(code **)(pcVar30 + 0x75114)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75114)" ( (binary_expression "pcVar30 + 0x75114" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" ( (pointer_expression "*(undefined4 *)(piVar12[1] + 0x1c)" * (cast_expression "(undefined4 *)(piVar12[1] + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x1c)" ( (binary_expression "piVar12[1] + 0x1c" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) )))) , (binary_expression "iVar14 + 1" identifier + number_literal) )))) ;) (if_statement "if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }" if (parenthesized_expression "(iVar24 < *(int *)(piVar12[1] + 0x14))" ( (binary_expression "iVar24 < *(int *)(piVar12[1] + 0x14)" identifier < (pointer_expression "*(int *)(piVar12[1] + 0x14)" * (cast_expression "(int *)(piVar12[1] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[1] + 0x14)" ( (binary_expression "piVar12[1] + 0x14" (subscript_expression "piVar12[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }" { (if_statement "if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" if (parenthesized_expression "(*piVar26 == 0)" ( (binary_expression "*piVar26 == 0" (pointer_expression "*piVar26" * identifier) == number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }" { (expression_statement "(**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);" (call_expression "(**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13)" (parenthesized_expression "(**(code **)(pcVar30 + 0x758f4))" ( (pointer_expression "**(code **)(pcVar30 + 0x758f4)" * (pointer_expression "*(code **)(pcVar30 + 0x758f4)" * (cast_expression "(code **)(pcVar30 + 0x758f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x758f4)" ( (binary_expression "pcVar30 + 0x758f4" identifier + number_literal) ))))) )) (argument_list "(iVar7 + 0x12a0,1,8,*piVar13)" ( (binary_expression "iVar7 + 0x12a0" identifier + number_literal) , number_literal , number_literal , (pointer_expression "*piVar13" * identifier) ))) ;) }) (else_clause "else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" else (compound_statement "{\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" { (expression_statement "(**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);" (call_expression "(**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9)" (parenthesized_expression "(**(code **)(pcVar30 + 0x758f4))" ( (pointer_expression "**(code **)(pcVar30 + 0x758f4)" * (pointer_expression "*(code **)(pcVar30 + 0x758f4)" * (cast_expression "(code **)(pcVar30 + 0x758f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x758f4)" ( (binary_expression "pcVar30 + 0x758f4" identifier + number_literal) ))))) )) (argument_list "(iVar6 + 0x12ac,1,9)" ( (binary_expression "iVar6 + 0x12ac" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "Sbitset__fprint(*piVar26,puVar18,*piVar13);" (call_expression "Sbitset__fprint(*piVar26,puVar18,*piVar13)" identifier (argument_list "(*piVar26,puVar18,*piVar13)" ( (pointer_expression "*piVar26" * identifier) , identifier , (pointer_expression "*piVar13" * identifier) ))) ;) }))) (expression_statement "(**(code **)(pcVar30 + 0x75830))(10,*piVar13);" (call_expression "(**(code **)(pcVar30 + 0x75830))(10,*piVar13)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75830))" ( (pointer_expression "**(code **)(pcVar30 + 0x75830)" * (pointer_expression "*(code **)(pcVar30 + 0x75830)" * (cast_expression "(code **)(pcVar30 + 0x75830)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75830)" ( (binary_expression "pcVar30 + 0x75830" identifier + number_literal) ))))) )) (argument_list "(10,*piVar13)" ( number_literal , (pointer_expression "*piVar13" * identifier) ))) ;) (goto_statement "goto LAB_000188d8;" goto statement_identifier ;) })) (expression_statement "FUN_00017fd0();" (call_expression "FUN_00017fd0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar1 = 0x252;" (assignment_expression "iVar1 = 0x252" identifier = number_literal) ;) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x757e0);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x757e0)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x757e0)" * (cast_expression "(code **)(pcVar30 + 0x757e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x757e0)" ( (binary_expression "pcVar30 + 0x757e0" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;" (assignment_expression "uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4" identifier = (binary_expression "*(int *)(pcVar30 + 0x74fd8) + 0x11b4" (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);" (assignment_expression "piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" identifier = (cast_expression "(int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" ( (binary_expression "*(int *)(pcVar30 + 0x74fd8) + 0x1264" (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" * (cast_expression "(int *)(pcVar30 + 0x74fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x74fd8)" ( (binary_expression "pcVar30 + 0x74fd8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar31 + 0x74da0))(iVar1);" (call_expression "(**(code **)(pcVar31 + 0x74da0))(iVar1)" (parenthesized_expression "(**(code **)(pcVar31 + 0x74da0))" ( (pointer_expression "**(code **)(pcVar31 + 0x74da0)" * (pointer_expression "*(code **)(pcVar31 + 0x74da0)" * (cast_expression "(code **)(pcVar31 + 0x74da0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x74da0)" ( (binary_expression "pcVar31 + 0x74da0" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (if_statement "if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }" if (parenthesized_expression "(piStackY_1110 == (int *)0x0)" ( (binary_expression "piStackY_1110 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar25 = uVar23 + 7 >> 3;" (assignment_expression "uVar25 = uVar23 + 7 >> 3" identifier = (binary_expression "uVar23 + 7 >> 3" (binary_expression "uVar23 + 7" identifier + number_literal) >> number_literal)) ;) (goto_statement "goto LAB_00018a68;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);" (call_expression "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" ( (pointer_expression "**(code **)(pcVar30 + 0x75818)" * (pointer_expression "*(code **)(pcVar30 + 0x75818)" * (cast_expression "(code **)(pcVar30 + 0x75818)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x75818)" ( (binary_expression "pcVar30 + 0x75818" identifier + number_literal) ))))) )) (argument_list "(*piVar13,1,iVar8 + 0x122c,uVar28)" ( (pointer_expression "*piVar13" * identifier) , number_literal , (binary_expression "iVar8 + 0x122c" identifier + number_literal) , identifier ))) ;) (labeled_statement "LAB_000188d8:\n          iVar15 = piVar12[1];" statement_identifier : (expression_statement "iVar15 = piVar12[1];" (assignment_expression "iVar15 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ;)) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 < *(int *)(iVar15 + 0x14))" ( (binary_expression "iVar24 < *(int *)(iVar15 + 0x14)" identifier < (pointer_expression "*(int *)(iVar15 + 0x14)" * (cast_expression "(int *)(iVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x14)" ( (binary_expression "iVar15 + 0x14" identifier + number_literal) ))))) )) ;) })) (expression_statement "piVar12 = (int *)*piVar12;" (assignment_expression "piVar12 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "uStack_10d8 = uStack_10d8 + 1;" (assignment_expression "uStack_10d8 = uStack_10d8 + 1" identifier = (binary_expression "uStack_10d8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return uStack_10d8;" return identifier ;) (labeled_statement "LAB_00018a68:\n  iVar4 = piStackY_1110[1];" statement_identifier : (expression_statement "iVar4 = piStackY_1110[1];" (assignment_expression "iVar4 = piStackY_1110[1]" identifier = (subscript_expression "piStackY_1110[1]" identifier [ number_literal ])) ;)) (if_statement "if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }" if (parenthesized_expression "(0 < *(int *)(iVar4 + 0x14))" ( (binary_expression "0 < *(int *)(iVar4 + 0x14)" number_literal < (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "piVar12 = piStackY_1110 + 2;" (assignment_expression "piVar12 = piStackY_1110 + 2" identifier = (binary_expression "piStackY_1110 + 2" identifier + number_literal)) ;) (do_statement "do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));" do (compound_statement "{\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    }" { (while_statement "while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }" while (parenthesized_expression "(*piVar12 == 0)" ( (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" * identifier) == number_literal) )) (compound_statement "{\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;" if (parenthesized_expression "(*(int *)(iVar4 + 0x14) <= iVar5)" ( (binary_expression "*(int *)(iVar4 + 0x14) <= iVar5" (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00018bd0;" goto statement_identifier ;)) })) (expression_statement "iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);" (assignment_expression "iVar4 = InadequacyList__getContributionToken(iVar4,iVar5)" identifier = (call_expression "InadequacyList__getContributionToken(iVar4,iVar5)" identifier (argument_list "(iVar4,iVar5)" ( identifier , identifier )))) ;) (expression_statement "pbVar11 = (byte *)*piVar12;" (assignment_expression "pbVar11 = (byte *)*piVar12" identifier = (cast_expression "(byte *)*piVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "pbVar17 = pbVar11 + uVar25;" (assignment_expression "pbVar17 = pbVar11 + uVar25" identifier = (binary_expression "pbVar11 + uVar25" identifier + identifier)) ;) (expression_statement "uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);" (assignment_expression "uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" * (cast_expression "(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x28) + 0x80)" ( (binary_expression "*(int *)(iVar4 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }" if (parenthesized_expression "(pbVar11 < pbVar17)" ( (binary_expression "pbVar11 < pbVar17" identifier < identifier) )) (compound_statement "{\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }" { (expression_statement "pbVar21 = pbVar11;" (assignment_expression "pbVar21 = pbVar11" identifier = identifier) ;) (do_statement "do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);" do (compound_statement "{\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        }" { (while_statement "while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }" { (expression_statement "uVar20 = (uint)*pbVar21;" (assignment_expression "uVar20 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar27 = pbVar21 + 1;" (assignment_expression "pbVar27 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 != 0) break;" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00018ae4:\n            pbVar21 = pbVar27;" statement_identifier : (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;)) (if_statement "if (pbVar17 <= pbVar27) goto LAB_00018bb4;" if (parenthesized_expression "(pbVar17 <= pbVar27)" ( (binary_expression "pbVar17 <= pbVar27" identifier <= identifier) )) (goto_statement "goto LAB_00018bb4;" goto statement_identifier ;)) })) (expression_statement "uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;" (assignment_expression "uVar22 = ((int)pbVar21 - (int)pbVar11) * 8" identifier = (binary_expression "((int)pbVar21 - (int)pbVar11) * 8" (parenthesized_expression "((int)pbVar21 - (int)pbVar11)" ( (binary_expression "(int)pbVar21 - (int)pbVar11" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal)) ;) (if_statement "if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;" if (parenthesized_expression "((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)))" ( (binary_expression "(uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))" (parenthesized_expression "(uVar23 <= uVar22)" ( (binary_expression "uVar23 <= uVar22" identifier <= identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))" ( (binary_expression "pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" identifier <= (binary_expression "pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" identifier + (parenthesized_expression "((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" ( (binary_expression "(int)pbVar21 - (int)pbVar11 & 0x1fffffff" (binary_expression "(int)pbVar21 - (int)pbVar11" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal) )))) ))) )) (goto_statement "goto LAB_00018ae4;" goto statement_identifier ;)) (while_statement "while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }" { (expression_statement "uVar22 = uVar22 + 1;" (assignment_expression "uVar22 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }" if (parenthesized_expression "(((int)uVar20 >> (-uVar22 & 7) & 1U) != 0)" ( (binary_expression "((int)uVar20 >> (-uVar22 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar20 >> (-uVar22 & 7) & 1U)" ( (binary_expression "(int)uVar20 >> (-uVar22 & 7) & 1U" (binary_expression "(int)uVar20 >> (-uVar22 & 7)" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "(-uVar22 & 7)" ( (binary_expression "-uVar22 & 7" (unary_expression "-uVar22" - identifier) & number_literal) ))) & number_literal) )) != number_literal) )) (compound_statement "{\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }" { (expression_statement "puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);" (assignment_expression "puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4)" identifier = (pointer_expression "*(undefined4 **)(iVar1 + uVar22 * 4 + -4)" * (cast_expression "(undefined4 **)(iVar1 + uVar22 * 4 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + uVar22 * 4 + -4)" ( (binary_expression "iVar1 + uVar22 * 4 + -4" (binary_expression "iVar1 + uVar22 * 4" identifier + (binary_expression "uVar22 * 4" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar20 = (uVar2 >> 5) - puVar10[1];" (assignment_expression "uVar20 = (uVar2 >> 5) - puVar10[1]" identifier = (binary_expression "(uVar2 >> 5) - puVar10[1]" (parenthesized_expression "(uVar2 >> 5)" ( (binary_expression "uVar2 >> 5" identifier >> number_literal) )) - (subscript_expression "puVar10[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" if (parenthesized_expression "(uVar20 < (uint)puVar10[2])" ( (binary_expression "uVar20 < (uint)puVar10[2]" identifier < (cast_expression "(uint)puVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) )) (compound_statement "{\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }" { (expression_statement "puVar18 = (uint *)(puVar10[3] + uVar20 * 4);" (assignment_expression "puVar18 = (uint *)(puVar10[3] + uVar20 * 4)" identifier = (cast_expression "(uint *)(puVar10[3] + uVar20 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10[3] + uVar20 * 4)" ( (binary_expression "puVar10[3] + uVar20 * 4" (subscript_expression "puVar10[3]" identifier [ number_literal ]) + (binary_expression "uVar20 * 4" identifier * number_literal)) )))) ;) (expression_statement "*puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);" (assignment_expression "*puVar18 = *puVar18 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar18" * identifier) = (binary_expression "*puVar18 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar18" * identifier) | (binary_expression "1 << (uVar2 & 0x1f)" number_literal << (parenthesized_expression "(uVar2 & 0x1f)" ( (binary_expression "uVar2 & 0x1f" identifier & number_literal) ))))) ;) }) (else_clause "else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" else (compound_statement "{\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" { (expression_statement "(**(code **)*puVar10)(puVar10,uVar2);" (call_expression "(**(code **)*puVar10)(puVar10,uVar2)" (parenthesized_expression "(**(code **)*puVar10)" ( (pointer_expression "**(code **)*puVar10" * (pointer_expression "*(code **)*puVar10" * (cast_expression "(code **)*puVar10" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar10" * identifier)))) )) (argument_list "(puVar10,uVar2)" ( identifier , identifier ))) ;) (expression_statement "pbVar11 = (byte *)*piVar12;" (assignment_expression "pbVar11 = (byte *)*piVar12" identifier = (cast_expression "(byte *)*piVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) }))) })) (if_statement "if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;" if (parenthesized_expression "((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3)))" ( (binary_expression "(uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))" (parenthesized_expression "(uVar23 == uVar22)" ( (binary_expression "uVar23 == uVar22" identifier == identifier) )) || (parenthesized_expression "(pbVar27 <= pbVar11 + (uVar22 >> 3))" ( (binary_expression "pbVar27 <= pbVar11 + (uVar22 >> 3)" identifier <= (binary_expression "pbVar11 + (uVar22 >> 3)" identifier + (parenthesized_expression "(uVar22 >> 3)" ( (binary_expression "uVar22 >> 3" identifier >> number_literal) )))) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = (uint)*pbVar21;" (assignment_expression "uVar20 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar17 = pbVar11 + uVar25;" (assignment_expression "pbVar17 = pbVar11 + uVar25" identifier = (binary_expression "pbVar11 + uVar25" identifier + identifier)) ;) (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar27 < pbVar17)" ( (binary_expression "pbVar27 < pbVar17" identifier < identifier) )) ;) })) (labeled_statement "LAB_00018bb4:\n      iVar5 = iVar5 + 1;" statement_identifier : (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;)) (expression_statement "iVar4 = piStackY_1110[1];" (assignment_expression "iVar4 = piStackY_1110[1]" identifier = (subscript_expression "piStackY_1110[1]" identifier [ number_literal ])) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar4 + 0x14))" ( (binary_expression "iVar5 < *(int *)(iVar4 + 0x14)" identifier < (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;" statement_identifier : (expression_statement "piStackY_1110 = (int *)*piStackY_1110;" (assignment_expression "piStackY_1110 = (int *)*piStackY_1110" identifier = (cast_expression "(int *)*piStackY_1110" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piStackY_1110" * identifier))) ;)) (if_statement "if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(piStackY_1110 == (int *)0x0)" ( (binary_expression "piStackY_1110 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00018a68;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ]) == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT) )))) ))) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression (unary_expression - IDENT) & LIT) ))) & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ]))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) - (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT) ))) ))) | (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (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 *)) ) (parenthesized_expression ( (binary_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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression IDENT + LIT) , IDENT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , (pointer_expression * IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression * IDENT) ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (pointer_expression * IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT) )))) ))) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression (unary_expression - IDENT) & LIT) ))) & LIT) )) != 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 (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (labeled_statement statement_identifier : (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 { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}" (type_identifier "uint") (function_declarator "FUN_00018210(undefined4 *param_1,uint param_2,uint *param_3,int param_4)" (identifier "FUN_00018210") (parameter_list "(undefined4 *param_1,uint param_2,uint *param_3,int param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  int *piVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  byte *pbVar17;\n  uint *puVar18;\n  uint *puVar19;\n  undefined4 unaff_s0;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  int *unaff_s1;\n  uint uVar23;\n  int iVar24;\n  undefined4 unaff_s2;\n  uint uVar25;\n  int *piVar26;\n  byte *pbVar27;\n  undefined4 uVar28;\n  undefined *puVar29;\n  code *pcVar30;\n  code *pcVar31;\n  int *piStackY_1110;\n  uint uStack_10d8;\n  uint auStack_1078 [1024];\n  undefined4 uStack_78;\n  uint uStack_74;\n  uint uStack_70;\n  int *piStack_6c;\n  undefined4 uStack_2c;\n  \n  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }\n  puVar29 = PTR_0008d624 + 0x7fd0;\n  FUN_00017fd0();\n  piVar12 = *(int **)(puVar29 + 0x75b74);\n  piStack_6c = (int *)*piVar12;\n  puVar19 = param_3;\n  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));\n  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);\n  puVar18 = (uint *)piVar13[2];\n  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);\n  if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }\n  if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }\n  if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }\n  pcVar30 = *(code **)(puVar29 + 0x75b50);\n  piVar12 = piStack_6c;\n  uStack_10d8 = (*pcVar30)();\n  if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }\n  return uStack_10d8;\nLAB_00018a68:\n  iVar4 = piStackY_1110[1];\n  if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }\nLAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;\n  if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }\n  goto LAB_00018a68;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined4 unaff_s0;" (type_identifier "undefined4") (identifier "unaff_s0") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int *unaff_s1;" (primitive_type "int") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "undefined4 unaff_s2;" (type_identifier "undefined4") (identifier "unaff_s2") (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "int *piVar26;" (primitive_type "int") (pointer_declarator "*piVar26" (* "*") (identifier "piVar26")) (; ";")) (declaration "byte *pbVar27;" (type_identifier "byte") (pointer_declarator "*pbVar27" (* "*") (identifier "pbVar27")) (; ";")) (declaration "undefined4 uVar28;" (type_identifier "undefined4") (identifier "uVar28") (; ";")) (declaration "undefined *puVar29;" (type_identifier "undefined") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "code *pcVar30;" (type_identifier "code") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "code *pcVar31;" (type_identifier "code") (pointer_declarator "*pcVar31" (* "*") (identifier "pcVar31")) (; ";")) (declaration "int *piStackY_1110;" (primitive_type "int") (pointer_declarator "*piStackY_1110" (* "*") (identifier "piStackY_1110")) (; ";")) (declaration "uint uStack_10d8;" (type_identifier "uint") (identifier "uStack_10d8") (; ";")) (declaration "uint auStack_1078 [1024];" (type_identifier "uint") (array_declarator "auStack_1078 [1024]" (identifier "auStack_1078") ([ "[") (number_literal "1024") (] "]")) (; ";")) (declaration "undefined4 uStack_78;" (type_identifier "undefined4") (identifier "uStack_78") (; ";")) (declaration "uint uStack_74;" (type_identifier "uint") (identifier "uStack_74") (; ";")) (declaration "uint uStack_70;" (type_identifier "uint") (identifier "uStack_70") (; ";")) (declaration "int *piStack_6c;" (primitive_type "int") (pointer_declarator "*piStack_6c" (* "*") (identifier "piStack_6c")) (; ";")) (declaration "undefined4 uStack_2c;" (type_identifier "undefined4") (identifier "uStack_2c") (; ";")) (if_statement "if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }" (if "if") (parenthesized_expression "((int)param_3 < *(int *)(param_1[1] + 0x14))" (( "(") (binary_expression "(int)param_3 < *(int *)(param_1[1] + 0x14)" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (pointer_expression "*(int *)(param_1[1] + 0x14)" (* "*") (cast_expression "(int *)(param_1[1] + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 0x14)" (( "(") (binary_expression "param_1[1] + 0x14" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }\n    if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }\n    return 0;\n  }" ({ "{") (if_statement "if (param_1[(int)param_3 + 2] == 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_1[(int)param_3 + 2] == 0)" (( "(") (binary_expression "param_1[(int)param_3 + 2] == 0" (subscript_expression "param_1[(int)param_3 + 2]" (identifier "param_1") ([ "[") (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "2")) (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (param_4 != 0) {\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);\n      pbVar17 = (byte *)param_1[(int)param_3 + 2];\n      uVar25 = param_2 + 7 >> 3;\n      pbVar11 = pbVar17 + uVar25;\n      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);\n      if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }\n    }" ({ "{") (expression_statement "iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);" (assignment_expression "iVar1 = InadequacyList__getContributionToken(param_1[1],param_3)" (identifier "iVar1") (= "=") (call_expression "InadequacyList__getContributionToken(param_1[1],param_3)" (identifier "InadequacyList__getContributionToken") (argument_list "(param_1[1],param_3)" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "pbVar17 = (byte *)param_1[(int)param_3 + 2];" (assignment_expression "pbVar17 = (byte *)param_1[(int)param_3 + 2]" (identifier "pbVar17") (= "=") (cast_expression "(byte *)param_1[(int)param_3 + 2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[(int)param_3 + 2]" (identifier "param_1") ([ "[") (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "uVar25 = param_2 + 7 >> 3;" (assignment_expression "uVar25 = param_2 + 7 >> 3" (identifier "uVar25") (= "=") (binary_expression "param_2 + 7 >> 3" (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pbVar11 = pbVar17 + uVar25;" (assignment_expression "pbVar11 = pbVar17 + uVar25" (identifier "pbVar11") (= "=") (binary_expression "pbVar17 + uVar25" (identifier "pbVar17") (+ "+") (identifier "uVar25"))) (; ";")) (expression_statement "uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);" (assignment_expression "uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" (* "*") (cast_expression "(uint *)(*(int *)(iVar1 + 0x28) + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar1 + 0x28) + 0x80)" (( "(") (binary_expression "*(int *)(iVar1 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar1 + 0x28)" (* "*") (cast_expression "(int *)(iVar1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x28)" (( "(") (binary_expression "iVar1 + 0x28" (identifier "iVar1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if (pbVar17 < pbVar11) {\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }" (if "if") (parenthesized_expression "(pbVar17 < pbVar11)" (( "(") (binary_expression "pbVar17 < pbVar11" (identifier "pbVar17") (< "<") (identifier "pbVar11")) () ")")) (compound_statement "{\n        pbVar21 = pbVar17;\n        do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);\n      }" ({ "{") (expression_statement "pbVar21 = pbVar17;" (assignment_expression "pbVar21 = pbVar17" (identifier "pbVar21") (= "=") (identifier "pbVar17")) (; ";")) (do_statement "do {\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar11);" (do "do") (compound_statement "{\n          while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }\n          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;\n          if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;\n          while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }\n          pbVar11 = pbVar17 + uVar25;\n          pbVar21 = pbVar27;\n        }" ({ "{") (while_statement "while( true ) {\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar2 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar2 != 0) break;\nLAB_000182bc:\n            pbVar21 = pbVar27;\n            if (pbVar11 <= pbVar27) {\n              return 0;\n            }\n          }" ({ "{") (expression_statement "uVar2 = (uint)*pbVar21;" (assignment_expression "uVar2 = (uint)*pbVar21" (identifier "uVar2") (= "=") (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21"))) (; ";")) (expression_statement "pbVar27 = pbVar21 + 1;" (assignment_expression "pbVar27 = pbVar21 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar2 != 0) break;" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000182bc:\n            pbVar21 = pbVar27;" (statement_identifier "LAB_000182bc") (: ":") (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" (identifier "pbVar21") (= "=") (identifier "pbVar27")) (; ";"))) (if_statement "if (pbVar11 <= pbVar27) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(pbVar11 <= pbVar27)" (( "(") (binary_expression "pbVar11 <= pbVar27" (identifier "pbVar11") (<= "<=") (identifier "pbVar27")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;" (assignment_expression "uVar20 = ((int)pbVar21 - (int)pbVar17) * 8" (identifier "uVar20") (= "=") (binary_expression "((int)pbVar21 - (int)pbVar17) * 8" (parenthesized_expression "((int)pbVar21 - (int)pbVar17)" (( "(") (binary_expression "(int)pbVar21 - (int)pbVar17" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17"))) () ")")) (* "*") (number_literal "8"))) (; ";")) (if_statement "if ((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;" (if "if") (parenthesized_expression "((param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)))" (( "(") (binary_expression "(param_2 <= uVar20) ||\n             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))" (parenthesized_expression "(param_2 <= uVar20)" (( "(") (binary_expression "param_2 <= uVar20" (identifier "param_2") (<= "<=") (identifier "uVar20")) () ")")) (|| "||") (parenthesized_expression "(pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))" (( "(") (binary_expression "pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" (identifier "pbVar27") (<= "<=") (binary_expression "pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" (identifier "pbVar17") (+ "+") (parenthesized_expression "((int)pbVar21 - (int)pbVar17 & 0x1fffffff)" (( "(") (binary_expression "(int)pbVar21 - (int)pbVar17 & 0x1fffffff" (binary_expression "(int)pbVar21 - (int)pbVar17" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17"))) (& "&") (number_literal "0x1fffffff")) () ")")))) () ")"))) () ")")) (goto_statement "goto LAB_000182bc;" (goto "goto") (statement_identifier "LAB_000182bc") (; ";"))) (while_statement "while( true ) {\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar20 = uVar20 + 1;\n            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }\n            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;\n            uVar2 = (uint)*pbVar21;\n          }" ({ "{") (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" (identifier "uVar20") (= "=") (binary_expression "uVar20 + 1" (identifier "uVar20") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }" (if "if") (parenthesized_expression "((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0))" (( "(") (binary_expression "(((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&\n               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)" (parenthesized_expression "(((int)uVar2 >> (-uVar20 & 7) & 1U) != 0)" (( "(") (binary_expression "((int)uVar2 >> (-uVar20 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar2 >> (-uVar20 & 7) & 1U)" (( "(") (binary_expression "(int)uVar2 >> (-uVar20 & 7) & 1U" (binary_expression "(int)uVar2 >> (-uVar20 & 7)" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (>> ">>") (parenthesized_expression "(-uVar20 & 7)" (( "(") (binary_expression "-uVar20 & 7" (unary_expression "-uVar20" (- "-") (identifier "uVar20")) (& "&") (number_literal "7")) () ")"))) (& "&") (number_literal "1U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)" (( "(") (comma_expression "piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0" (assignment_expression "piVar12 = *(int **)(param_4 + uVar20 * 4 + -4)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(param_4 + uVar20 * 4 + -4)" (* "*") (cast_expression "(int **)(param_4 + uVar20 * 4 + -4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + uVar20 * 4 + -4)" (( "(") (binary_expression "param_4 + uVar20 * 4 + -4" (binary_expression "param_4 + uVar20 * 4" (identifier "param_4") (+ "+") (binary_expression "uVar20 * 4" (identifier "uVar20") (* "*") (number_literal "4"))) (+ "+") (number_literal "-4")) () ")"))))) (, ",") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              uVar2 = (uVar23 >> 5) - piVar12[1];\n              if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }\n              if (uVar2 != 0) {\n                return 1;\n              }\n              pbVar17 = (byte *)param_1[(int)param_3 + 2];\n            }" ({ "{") (expression_statement "uVar2 = (uVar23 >> 5) - piVar12[1];" (assignment_expression "uVar2 = (uVar23 >> 5) - piVar12[1]" (identifier "uVar2") (= "=") (binary_expression "(uVar23 >> 5) - piVar12[1]" (parenthesized_expression "(uVar23 >> 5)" (( "(") (binary_expression "uVar23 >> 5" (identifier "uVar23") (>> ">>") (number_literal "5")) () ")")) (- "-") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (uVar2 < (uint)piVar12[2]) {\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }\n              else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" (if "if") (parenthesized_expression "(uVar2 < (uint)piVar12[2])" (( "(") (binary_expression "uVar2 < (uint)piVar12[2]" (identifier "uVar2") (< "<") (cast_expression "(uint)piVar12[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;\n              }" ({ "{") (expression_statement "uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;" (assignment_expression "uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1" (identifier "uVar2") (= "=") (binary_expression "*(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1" (binary_expression "*(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f)" (pointer_expression "*(uint *)(piVar12[3] + uVar2 * 4)" (* "*") (cast_expression "(uint *)(piVar12[3] + uVar2 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[3] + uVar2 * 4)" (( "(") (binary_expression "piVar12[3] + uVar2 * 4" (subscript_expression "piVar12[3]" (identifier "piVar12") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" (else "else") (compound_statement "{\n                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);\n              }" ({ "{") (expression_statement "uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);" (assignment_expression "uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(*piVar12 + 0xc))(piVar12,uVar23)" (parenthesized_expression "(**(code **)(*piVar12 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar12 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar12 + 0xc)" (* "*") (cast_expression "(code **)(*piVar12 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar12 + 0xc)" (( "(") (binary_expression "*piVar12 + 0xc" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar12,uVar23)" (( "(") (identifier "piVar12") (, ",") (identifier "uVar23") () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar2 != 0) {\n                return 1;\n              }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                return 1;\n              }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pbVar17 = (byte *)param_1[(int)param_3 + 2];" (assignment_expression "pbVar17 = (byte *)param_1[(int)param_3 + 2]" (identifier "pbVar17") (= "=") (cast_expression "(byte *)param_1[(int)param_3 + 2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[(int)param_3 + 2]" (identifier "param_1") ([ "[") (binary_expression "(int)param_3 + 2" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "2")) (] "]")))) (; ";")) (} "}"))) (if_statement "if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;" (if "if") (parenthesized_expression "((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3)))" (( "(") (binary_expression "(param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))" (parenthesized_expression "(param_2 == uVar20)" (( "(") (binary_expression "param_2 == uVar20" (identifier "param_2") (== "==") (identifier "uVar20")) () ")")) (|| "||") (parenthesized_expression "(pbVar27 <= pbVar17 + (uVar20 >> 3))" (( "(") (binary_expression "pbVar27 <= pbVar17 + (uVar20 >> 3)" (identifier "pbVar27") (<= "<=") (binary_expression "pbVar17 + (uVar20 >> 3)" (identifier "pbVar17") (+ "+") (parenthesized_expression "(uVar20 >> 3)" (( "(") (binary_expression "uVar20 >> 3" (identifier "uVar20") (>> ">>") (number_literal "3")) () ")")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar2 = (uint)*pbVar21;" (assignment_expression "uVar2 = (uint)*pbVar21" (identifier "uVar2") (= "=") (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21"))) (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar17 + uVar25;" (assignment_expression "pbVar11 = pbVar17 + uVar25" (identifier "pbVar11") (= "=") (binary_expression "pbVar17 + uVar25" (identifier "pbVar17") (+ "+") (identifier "uVar25"))) (; ";")) (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" (identifier "pbVar21") (= "=") (identifier "pbVar27")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar27 < pbVar11)" (( "(") (binary_expression "pbVar27 < pbVar11" (identifier "pbVar27") (< "<") (identifier "pbVar11")) () ")")) (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar29 = PTR_0008d624 + 0x7fd0;" (assignment_expression "puVar29 = PTR_0008d624 + 0x7fd0" (identifier "puVar29") (= "=") (binary_expression "PTR_0008d624 + 0x7fd0" (identifier "PTR_0008d624") (+ "+") (number_literal "0x7fd0"))) (; ";")) (expression_statement "FUN_00017fd0();" (call_expression "FUN_00017fd0()" (identifier "FUN_00017fd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = *(int **)(puVar29 + 0x75b74);" (assignment_expression "piVar12 = *(int **)(puVar29 + 0x75b74)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(puVar29 + 0x75b74)" (* "*") (cast_expression "(int **)(puVar29 + 0x75b74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar29 + 0x75b74)" (( "(") (binary_expression "puVar29 + 0x75b74" (identifier "puVar29") (+ "+") (number_literal "0x75b74")) () ")"))))) (; ";")) (expression_statement "piStack_6c = (int *)*piVar12;" (assignment_expression "piStack_6c = (int *)*piVar12" (identifier "piStack_6c") (= "=") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (expression_statement "puVar19 = param_3;" (assignment_expression "puVar19 = param_3" (identifier "puVar19") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));" (assignment_expression "iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80))" (identifier "iVar1") (= "=") (call_expression "map_goto(*param_1,*(undefined4 *)(param_2 + 0x80))" (identifier "map_goto") (argument_list "(*param_1,*(undefined4 *)(param_2 + 0x80))" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x80)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x80)" (( "(") (binary_expression "param_2 + 0x80" (identifier "param_2") (+ "+") (number_literal "0x80")) () ")")))) () ")")))) (; ";")) (expression_statement "piVar13 = *(int **)(&_gp_1 + iVar1 * 4);" (assignment_expression "piVar13 = *(int **)(&_gp_1 + iVar1 * 4)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(&_gp_1 + iVar1 * 4)" (* "*") (cast_expression "(int **)(&_gp_1 + iVar1 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&_gp_1 + iVar1 * 4)" (( "(") (binary_expression "&_gp_1 + iVar1 * 4" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "puVar18 = (uint *)piVar13[2];" (assignment_expression "puVar18 = (uint *)piVar13[2]" (identifier "puVar18") (= "=") (cast_expression "(uint *)piVar13[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[2]" (identifier "piVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);" (assignment_expression "puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1])" (identifier "puVar3") (= "=") (cast_expression "(uint *)(((uint)param_3 >> 5) - piVar13[1])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uint)param_3 >> 5) - piVar13[1])" (( "(") (binary_expression "((uint)param_3 >> 5) - piVar13[1]" (parenthesized_expression "((uint)param_3 >> 5)" (( "(") (binary_expression "(uint)param_3 >> 5" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (>> ">>") (number_literal "5")) () ")")) (- "-") (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (if_statement "if (puVar3 < puVar18) {\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }\n  else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" (if "if") (parenthesized_expression "(puVar3 < puVar18)" (( "(") (binary_expression "puVar3 < puVar18" (identifier "puVar3") (< "<") (identifier "puVar18")) () ")")) (compound_statement "{\n    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;\n  }" ({ "{") (expression_statement "uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;" (assignment_expression "uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1" (identifier "uVar23") (= "=") (binary_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1" (binary_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f)" (pointer_expression "*(uint *)(piVar13[3] + (int)puVar3 * 4)" (* "*") (cast_expression "(uint *)(piVar13[3] + (int)puVar3 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar13[3] + (int)puVar3 * 4)" (( "(") (binary_expression "piVar13[3] + (int)puVar3 * 4" (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "(int)puVar3 * 4" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "((uint)param_3 & 0x1f)" (( "(") (binary_expression "(uint)param_3 & 0x1f" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" (else "else") (compound_statement "{\n    puVar18 = param_3;\n    uVar23 = (**(code **)(*piVar13 + 0xc))();\n  }" ({ "{") (expression_statement "puVar18 = param_3;" (assignment_expression "puVar18 = param_3" (identifier "puVar18") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar23 = (**(code **)(*piVar13 + 0xc))();" (assignment_expression "uVar23 = (**(code **)(*piVar13 + 0xc))()" (identifier "uVar23") (= "=") (call_expression "(**(code **)(*piVar13 + 0xc))()" (parenthesized_expression "(**(code **)(*piVar13 + 0xc))" (( "(") (pointer_expression "**(code **)(*piVar13 + 0xc)" (* "*") (pointer_expression "*(code **)(*piVar13 + 0xc)" (* "*") (cast_expression "(code **)(*piVar13 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar13 + 0xc)" (( "(") (binary_expression "*piVar13 + 0xc" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar23 == 0) {\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);\n    *unaff_s1 = iVar4;\n    uStack_78 = 0;\n    uStack_74 = 0x400;\n    do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);\n  }" ({ "{") (expression_statement "iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);" (assignment_expression "iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2)" (identifier "iVar4") (= "=") (call_expression "Sbitset__new_on_obstack(param_1[9],unaff_s2)" (identifier "Sbitset__new_on_obstack") (argument_list "(param_1[9],unaff_s2)" (( "(") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (, ",") (identifier "unaff_s2") () ")")))) (; ";")) (expression_statement "*unaff_s1 = iVar4;" (assignment_expression "*unaff_s1 = iVar4" (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uStack_78 = 0;" (assignment_expression "uStack_78 = 0" (identifier "uStack_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_74 = 0x400;" (assignment_expression "uStack_74 = 0x400" (identifier "uStack_74") (= "=") (number_literal "0x400")) (; ";")) (do_statement "do {\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    } while (uStack_74 == 0x400);" (do "do") (compound_statement "{\n      puVar19 = (uint *)0x400;\n      piVar13 = *(int **)(param_4 + iVar1 * 4);\n      puVar18 = auStack_1078;\n      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);\n      if (uStack_74 == 0) break;\n      uStack_70 = 0;\n      do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);\n    }" ({ "{") (expression_statement "puVar19 = (uint *)0x400;" (assignment_expression "puVar19 = (uint *)0x400" (identifier "puVar19") (= "=") (cast_expression "(uint *)0x400" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x400"))) (; ";")) (expression_statement "piVar13 = *(int **)(param_4 + iVar1 * 4);" (assignment_expression "piVar13 = *(int **)(param_4 + iVar1 * 4)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(param_4 + iVar1 * 4)" (* "*") (cast_expression "(int **)(param_4 + iVar1 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + iVar1 * 4)" (( "(") (binary_expression "param_4 + iVar1 * 4" (identifier "param_4") (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "puVar18 = auStack_1078;" (assignment_expression "puVar18 = auStack_1078" (identifier "puVar18") (= "=") (identifier "auStack_1078")) (; ";")) (expression_statement "uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);" (assignment_expression "uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78)" (identifier "uStack_74") (= "=") (call_expression "(**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78)" (parenthesized_expression "(**(code **)(*piVar13 + 0x74))" (( "(") (pointer_expression "**(code **)(*piVar13 + 0x74)" (* "*") (pointer_expression "*(code **)(*piVar13 + 0x74)" (* "*") (cast_expression "(code **)(*piVar13 + 0x74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar13 + 0x74)" (( "(") (binary_expression "*piVar13 + 0x74" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (+ "+") (number_literal "0x74")) () ")"))))) () ")")) (argument_list "(piVar13,auStack_1078,0x400,&uStack_78)" (( "(") (identifier "piVar13") (, ",") (identifier "auStack_1078") (, ",") (number_literal "0x400") (, ",") (pointer_expression "&uStack_78" (& "&") (identifier "uStack_78")) () ")")))) (; ";")) (if_statement "if (uStack_74 == 0) break;" (if "if") (parenthesized_expression "(uStack_74 == 0)" (( "(") (binary_expression "uStack_74 == 0" (identifier "uStack_74") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uStack_70 = 0;" (assignment_expression "uStack_70 = 0" (identifier "uStack_70") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      } while (uStack_70 < uStack_74);" (do "do") (compound_statement "{\n        puVar18 = (uint *)0x0;\n        puVar3 = (uint *)auStack_1078[uStack_70];\n        puVar19 = puVar3;\n        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);\n        if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }\n        uStack_70 = uStack_70 + 1;\n      }" ({ "{") (expression_statement "puVar18 = (uint *)0x0;" (assignment_expression "puVar18 = (uint *)0x0" (identifier "puVar18") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar3 = (uint *)auStack_1078[uStack_70];" (assignment_expression "puVar3 = (uint *)auStack_1078[uStack_70]" (identifier "puVar3") (= "=") (cast_expression "(uint *)auStack_1078[uStack_70]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "auStack_1078[uStack_70]" (identifier "auStack_1078") ([ "[") (identifier "uStack_70") (] "]")))) (; ";")) (expression_statement "puVar19 = puVar3;" (assignment_expression "puVar19 = puVar3" (identifier "puVar19") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);" (assignment_expression "iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" (identifier "iVar4") (= "=") (call_expression "ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" (identifier "ielr_item_has_lookahead") (argument_list "(param_1,0,puVar3,param_3,uStack_2c,unaff_s0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "puVar3") (, ",") (identifier "param_3") (, ",") (identifier "uStack_2c") (, ",") (identifier "unaff_s0") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));\n          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;\n        }" ({ "{") (expression_statement "pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));" (assignment_expression "pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3))" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(*unaff_s1 + ((uint)puVar3 >> 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*unaff_s1 + ((uint)puVar3 >> 3))" (( "(") (binary_expression "*unaff_s1 + ((uint)puVar3 >> 3)" (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")) (+ "+") (parenthesized_expression "((uint)puVar3 >> 3)" (( "(") (binary_expression "(uint)puVar3 >> 3" (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3")) (>> ">>") (number_literal "3")) () ")"))) () ")")))) (; ";")) (expression_statement "*pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;" (assignment_expression "*pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (binary_expression "(byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11" (call_expression "(byte)(1 << (~(uint)puVar3 & 7))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(1 << (~(uint)puVar3 & 7))" (( "(") (binary_expression "1 << (~(uint)puVar3 & 7)" (number_literal "1") (<< "<<") (parenthesized_expression "(~(uint)puVar3 & 7)" (( "(") (binary_expression "~(uint)puVar3 & 7" (unary_expression "~(uint)puVar3" (~ "~") (cast_expression "(uint)puVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar3"))) (& "&") (number_literal "7")) () ")"))) () ")"))) (| "|") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (} "}"))) (expression_statement "uStack_70 = uStack_70 + 1;" (assignment_expression "uStack_70 = uStack_70 + 1" (identifier "uStack_70") (= "=") (binary_expression "uStack_70 + 1" (identifier "uStack_70") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uStack_70 < uStack_74)" (( "(") (binary_expression "uStack_70 < uStack_74" (identifier "uStack_70") (< "<") (identifier "uStack_74")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uStack_74 == 0x400)" (( "(") (binary_expression "uStack_74 == 0x400" (identifier "uStack_74") (== "==") (number_literal "0x400")) () ")")) (; ";")) (} "}"))) (if_statement "if (piStack_6c == (int *)*piVar12) {\n    return uVar23;\n  }" (if "if") (parenthesized_expression "(piStack_6c == (int *)*piVar12)" (( "(") (binary_expression "piStack_6c == (int *)*piVar12" (identifier "piStack_6c") (== "==") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) () ")")) (compound_statement "{\n    return uVar23;\n  }" ({ "{") (return_statement "return uVar23;" (return "return") (identifier "uVar23") (; ";")) (} "}"))) (expression_statement "pcVar30 = *(code **)(puVar29 + 0x75b50);" (assignment_expression "pcVar30 = *(code **)(puVar29 + 0x75b50)" (identifier "pcVar30") (= "=") (pointer_expression "*(code **)(puVar29 + 0x75b50)" (* "*") (cast_expression "(code **)(puVar29 + 0x75b50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar29 + 0x75b50)" (( "(") (binary_expression "puVar29 + 0x75b50" (identifier "puVar29") (+ "+") (number_literal "0x75b50")) () ")"))))) (; ";")) (expression_statement "piVar12 = piStack_6c;" (assignment_expression "piVar12 = piStack_6c" (identifier "piVar12") (= "=") (identifier "piStack_6c")) (; ";")) (expression_statement "uStack_10d8 = (*pcVar30)();" (assignment_expression "uStack_10d8 = (*pcVar30)()" (identifier "uStack_10d8") (= "=") (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" (( "(") (pointer_expression "*pcVar30" (* "*") (identifier "pcVar30")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (piVar12 != (int *)0x0) {\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }" (if "if") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar1 = *(int *)(pcVar30 + 0x74fd8);\n    piVar13 = *(int **)(pcVar30 + 0x75964);\n    uStack_10d8 = 0;\n    iVar4 = *(int *)(pcVar30 + 0x74fd8);\n    iVar5 = *(int *)(pcVar30 + 0x74fd8);\n    iVar6 = *(int *)(pcVar30 + 0x74fd8);\n    iVar7 = *(int *)(pcVar30 + 0x74fd8);\n    iVar8 = *(int *)(pcVar30 + 0x74fd8);\n    do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar1 = *(int *)(pcVar30 + 0x74fd8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")"))))) (; ";")) (expression_statement "piVar13 = *(int **)(pcVar30 + 0x75964);" (assignment_expression "piVar13 = *(int **)(pcVar30 + 0x75964)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(pcVar30 + 0x75964)" (* "*") (cast_expression "(int **)(pcVar30 + 0x75964)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75964)" (( "(") (binary_expression "pcVar30 + 0x75964" (identifier "pcVar30") (+ "+") (number_literal "0x75964")) () ")"))))) (; ";")) (expression_statement "uStack_10d8 = 0;" (assignment_expression "uStack_10d8 = 0" (identifier "uStack_10d8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar4 = *(int *)(pcVar30 + 0x74fd8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar5 = *(int *)(pcVar30 + 0x74fd8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar6 = *(int *)(pcVar30 + 0x74fd8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar7 = *(int *)(pcVar30 + 0x74fd8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar30 + 0x74fd8);" (assignment_expression "iVar8 = *(int *)(pcVar30 + 0x74fd8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")"))))) (; ";")) (do_statement "do {\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    } while (piVar12 != (int *)0x0);" (do "do") (compound_statement "{\n      if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }\n      (**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));\n      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));\n      iVar15 = piVar12[1];\n      if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }\n      piVar12 = (int *)*piVar12;\n      uStack_10d8 = uStack_10d8 + 1;\n    }" ({ "{") (if_statement "if (0 < (int)puVar19) {\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }" (if "if") (parenthesized_expression "(0 < (int)puVar19)" (( "(") (binary_expression "0 < (int)puVar19" (number_literal "0") (< "<") (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19"))) () ")")) (compound_statement "{\n        puVar3 = (uint *)0x0;\n        do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);\n      }" ({ "{") (expression_statement "puVar3 = (uint *)0x0;" (assignment_expression "puVar3 = (uint *)0x0" (identifier "puVar3") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        } while (puVar19 != puVar3);" (do "do") (compound_statement "{\n          iVar14 = *piVar13;\n          puVar9 = *(undefined1 **)(iVar14 + 0x14);\n          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }\n          puVar3 = (uint *)((int)puVar3 + 1);\n        }" ({ "{") (expression_statement "iVar14 = *piVar13;" (assignment_expression "iVar14 = *piVar13" (identifier "iVar14") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "puVar9 = *(undefined1 **)(iVar14 + 0x14);" (assignment_expression "puVar9 = *(undefined1 **)(iVar14 + 0x14)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined1 **)(iVar14 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar14 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }\n          else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" (if "if") (parenthesized_expression "(puVar9 < *(undefined1 **)(iVar14 + 0x18))" (( "(") (binary_expression "puVar9 < *(undefined1 **)(iVar14 + 0x18)" (identifier "puVar9") (< "<") (pointer_expression "*(undefined1 **)(iVar14 + 0x18)" (* "*") (cast_expression "(undefined1 **)(iVar14 + 0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x18)" (( "(") (binary_expression "iVar14 + 0x18" (identifier "iVar14") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;\n            *puVar9 = 0x20;\n          }" ({ "{") (expression_statement "*(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;" (assignment_expression "*(undefined1 **)(iVar14 + 0x14) = puVar9 + 1" (pointer_expression "*(undefined1 **)(iVar14 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar14 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar9 = 0x20;" (assignment_expression "*puVar9 = 0x20" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0x20")) (; ";")) (} "}")) (else_clause "else {\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" (else "else") (compound_statement "{\n            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);\n          }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x75834))(iVar14,0x20);" (call_expression "(**(code **)(pcVar30 + 0x75834))(iVar14,0x20)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75834))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75834)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75834)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75834)" (( "(") (binary_expression "pcVar30 + 0x75834" (identifier "pcVar30") (+ "+") (number_literal "0x75834")) () ")"))))) () ")")) (argument_list "(iVar14,0x20)" (( "(") (identifier "iVar14") (, ",") (number_literal "0x20") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar3 = (uint *)((int)puVar3 + 1);" (assignment_expression "puVar3 = (uint *)((int)puVar3 + 1)" (identifier "puVar3") (= "=") (cast_expression "(uint *)((int)puVar3 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + 1)" (( "(") (binary_expression "(int)puVar3 + 1" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar19 != puVar3)" (( "(") (binary_expression "puVar19 != puVar3" (identifier "puVar19") (!= "!=") (identifier "puVar3")) () ")")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));" (call_expression "(**(code **)(pcVar30 + 0x75818))\n                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10))" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75818)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75818)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75818)" (( "(") (binary_expression "pcVar30 + 0x75818" (identifier "pcVar30") (+ "+") (number_literal "0x75818")) () ")"))))) () ")")) (argument_list "(*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10))" (( "(") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (, ",") (number_literal "1") (, ",") (binary_expression "iVar4 + 0x1204" (identifier "iVar4") (+ "+") (number_literal "0x1204")) (, ",") (identifier "uStack_10d8") (, ",") (pointer_expression "**(undefined4 **)(piVar12[1] + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(piVar12[1] + 0x10)" (* "*") (cast_expression "(undefined4 **)(piVar12[1] + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar12[1] + 0x10)" (( "(") (binary_expression "piVar12[1] + 0x10" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));" (assignment_expression "iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c))" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c))" (parenthesized_expression "(**(code **)(pcVar30 + 0x7510c))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x7510c)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x7510c)" (* "*") (cast_expression "(code **)(pcVar30 + 0x7510c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x7510c)" (( "(") (binary_expression "pcVar30 + 0x7510c" (identifier "pcVar30") (+ "+") (number_literal "0x7510c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(piVar12[1] + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(piVar12[1] + 0x1c)" (* "*") (cast_expression "(undefined4 *)(piVar12[1] + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 0x1c)" (( "(") (binary_expression "piVar12[1] + 0x1c" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar15 = piVar12[1];" (assignment_expression "iVar15 = piVar12[1]" (identifier "iVar15") (= "=") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (0 < *(int *)(iVar15 + 0x14)) {\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar15 + 0x14))" (( "(") (binary_expression "0 < *(int *)(iVar15 + 0x14)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar15 + 0x14)" (* "*") (cast_expression "(int *)(iVar15 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x14)" (( "(") (binary_expression "iVar15 + 0x14" (identifier "iVar15") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n        piVar26 = piVar12 + 2;\n        iVar24 = 0;\n        do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));\n      }" ({ "{") (expression_statement "piVar26 = piVar12 + 2;" (assignment_expression "piVar26 = piVar12 + 2" (identifier "piVar26") (= "=") (binary_expression "piVar12 + 2" (identifier "piVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        } while (iVar24 < *(int *)(iVar15 + 0x14));" (do "do") (compound_statement "{\n          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);\n          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);\n          if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }\n          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);\n          if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }\n          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);\nLAB_000188d8:\n          iVar15 = piVar12[1];\n          iVar24 = iVar24 + 1;\n          piVar26 = piVar26 + 1;\n        }" ({ "{") (expression_statement "iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);" (assignment_expression "iVar15 = InadequacyList__getContributionToken(iVar15,iVar24)" (identifier "iVar15") (= "=") (call_expression "InadequacyList__getContributionToken(iVar15,iVar24)" (identifier "InadequacyList__getContributionToken") (argument_list "(iVar15,iVar24)" (( "(") (identifier "iVar15") (, ",") (identifier "iVar24") () ")")))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);" (assignment_expression "uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar15 + 0x28) + 0x80)" (( "(") (binary_expression "*(int *)(iVar15 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar15 + 0x28)" (* "*") (cast_expression "(int *)(iVar15 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x28)" (( "(") (binary_expression "iVar15 + 0x28" (identifier "iVar15") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if (-2 < (int)puVar19) {\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }" (if "if") (parenthesized_expression "(-2 < (int)puVar19)" (( "(") (binary_expression "-2 < (int)puVar19" (number_literal "-2") (< "<") (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19"))) () ")")) (compound_statement "{\n            iVar15 = 0;\n            do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);\n          }" ({ "{") (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            } while (iVar15 != (int)puVar19 + 2U);" (do "do") (compound_statement "{\n              iVar16 = *piVar13;\n              puVar9 = *(undefined1 **)(iVar16 + 0x14);\n              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }\n              iVar15 = iVar15 + 1;\n            }" ({ "{") (expression_statement "iVar16 = *piVar13;" (assignment_expression "iVar16 = *piVar13" (identifier "iVar16") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "puVar9 = *(undefined1 **)(iVar16 + 0x14);" (assignment_expression "puVar9 = *(undefined1 **)(iVar16 + 0x14)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined1 **)(iVar16 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar16 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x14)" (( "(") (binary_expression "iVar16 + 0x14" (identifier "iVar16") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }\n              else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" (if "if") (parenthesized_expression "(puVar9 < *(undefined1 **)(iVar16 + 0x18))" (( "(") (binary_expression "puVar9 < *(undefined1 **)(iVar16 + 0x18)" (identifier "puVar9") (< "<") (pointer_expression "*(undefined1 **)(iVar16 + 0x18)" (* "*") (cast_expression "(undefined1 **)(iVar16 + 0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x18)" (( "(") (binary_expression "iVar16 + 0x18" (identifier "iVar16") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;\n                *puVar9 = 0x20;\n              }" ({ "{") (expression_statement "*(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;" (assignment_expression "*(undefined1 **)(iVar16 + 0x14) = puVar9 + 1" (pointer_expression "*(undefined1 **)(iVar16 + 0x14)" (* "*") (cast_expression "(undefined1 **)(iVar16 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + 0x14)" (( "(") (binary_expression "iVar16 + 0x14" (identifier "iVar16") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar9 = 0x20;" (assignment_expression "*puVar9 = 0x20" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (number_literal "0x20")) (; ";")) (} "}")) (else_clause "else {\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" (else "else") (compound_statement "{\n                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);\n              }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x75834))(iVar16,0x20);" (call_expression "(**(code **)(pcVar30 + 0x75834))(iVar16,0x20)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75834))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75834)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75834)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75834)" (( "(") (binary_expression "pcVar30 + 0x75834" (identifier "pcVar30") (+ "+") (number_literal "0x75834")) () ")"))))) () ")")) (argument_list "(iVar16,0x20)" (( "(") (identifier "iVar16") (, ",") (number_literal "0x20") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar15 != (int)puVar19 + 2U)" (( "(") (binary_expression "iVar15 != (int)puVar19 + 2U" (identifier "iVar15") (!= "!=") (binary_expression "(int)puVar19 + 2U" (cast_expression "(int)puVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar19")) (+ "+") (number_literal "2U"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);" (assignment_expression "iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1])" (identifier "iVar15") (= "=") (call_expression "InadequacyList__getShiftContributionIndex(piVar12[1])" (identifier "InadequacyList__getShiftContributionIndex") (argument_list "(piVar12[1])" (( "(") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar15 != iVar24) {\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }" (if "if") (parenthesized_expression "(iVar15 != iVar24)" (( "(") (binary_expression "iVar15 != iVar24" (identifier "iVar15") (!= "!=") (identifier "iVar24")) () ")")) (compound_statement "{\n            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);\n            if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }\n            iVar1 = 0x252;\n            pcVar31 = *(code **)(pcVar30 + 0x757e0);\n            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;\n            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);\n            (*pcVar31)();\n            (**(code **)(pcVar31 + 0x74da0))(iVar1);\n            if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }\n            uVar25 = uVar23 + 7 >> 3;\n            goto LAB_00018a68;\n          }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);" (call_expression "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75818)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75818)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75818)" (( "(") (binary_expression "pcVar30 + 0x75818" (identifier "pcVar30") (+ "+") (number_literal "0x75818")) () ")"))))) () ")")) (argument_list "(*piVar13,1,iVar1 + 0x124c,uVar28)" (( "(") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (, ",") (number_literal "1") (, ",") (binary_expression "iVar1 + 0x124c" (identifier "iVar1") (+ "+") (number_literal "0x124c")) (, ",") (identifier "uVar28") () ")"))) (; ";")) (if_statement "if (iVar14 != -1) {\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }" (if "if") (parenthesized_expression "(iVar14 != -1)" (( "(") (binary_expression "iVar14 != -1" (identifier "iVar14") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              (**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));\n              iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);\n              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }\n              FUN_00017fd0();\n            }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4));" (call_expression "(**(code **)(pcVar30 + 0x75818))\n                        (*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4))" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75818)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75818)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75818)" (( "(") (binary_expression "pcVar30 + 0x75818" (identifier "pcVar30") (+ "+") (number_literal "0x75818")) () ")"))))) () ")")) (argument_list "(*piVar13,1,iVar5 + 0x1280,\n                         *(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4))" (( "(") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (, ",") (number_literal "1") (, ",") (binary_expression "iVar5 + 0x1280" (identifier "iVar5") (+ "+") (number_literal "0x1280")) (, ",") (pointer_expression "*(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" (* "*") (cast_expression "(undefined4 *)\n                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4)" (( "(") (binary_expression "*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)\n                          + 4" (pointer_expression "*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)" (( "(") (binary_expression "*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4" (pointer_expression "*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(piVar12[1] + 0x10) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(piVar12[1] + 0x10) + 0xc)" (( "(") (binary_expression "*(int *)(piVar12[1] + 0x10) + 0xc" (pointer_expression "*(int *)(piVar12[1] + 0x10)" (* "*") (cast_expression "(int *)(piVar12[1] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 0x10)" (( "(") (binary_expression "piVar12[1] + 0x10" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (binary_expression "(iVar14 + 2) * 4" (parenthesized_expression "(iVar14 + 2)" (( "(") (binary_expression "iVar14 + 2" (identifier "iVar14") (+ "+") (number_literal "2")) () ")")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);" (assignment_expression "iVar14 = (**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar30 + 0x75114))\n                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75114))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75114)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75114)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75114)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75114)" (( "(") (binary_expression "pcVar30 + 0x75114" (identifier "pcVar30") (+ "+") (number_literal "0x75114")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1)" (( "(") (pointer_expression "*(undefined4 *)(piVar12[1] + 0x1c)" (* "*") (cast_expression "(undefined4 *)(piVar12[1] + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 0x1c)" (( "(") (binary_expression "piVar12[1] + 0x1c" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar24 < *(int *)(piVar12[1] + 0x14)) {\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }" (if "if") (parenthesized_expression "(iVar24 < *(int *)(piVar12[1] + 0x14))" (( "(") (binary_expression "iVar24 < *(int *)(piVar12[1] + 0x14)" (identifier "iVar24") (< "<") (pointer_expression "*(int *)(piVar12[1] + 0x14)" (* "*") (cast_expression "(int *)(piVar12[1] + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[1] + 0x14)" (( "(") (binary_expression "piVar12[1] + 0x14" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }\n                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);\n                goto LAB_000188d8;\n              }" ({ "{") (if_statement "if (*piVar26 == 0) {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }\n                else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" (if "if") (parenthesized_expression "(*piVar26 == 0)" (( "(") (binary_expression "*piVar26 == 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);\n                }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);" (call_expression "(**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13)" (parenthesized_expression "(**(code **)(pcVar30 + 0x758f4))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x758f4)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x758f4)" (* "*") (cast_expression "(code **)(pcVar30 + 0x758f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x758f4)" (( "(") (binary_expression "pcVar30 + 0x758f4" (identifier "pcVar30") (+ "+") (number_literal "0x758f4")) () ")"))))) () ")")) (argument_list "(iVar7 + 0x12a0,1,8,*piVar13)" (( "(") (binary_expression "iVar7 + 0x12a0" (identifier "iVar7") (+ "+") (number_literal "0x12a0")) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" (else "else") (compound_statement "{\n                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);\n                  Sbitset__fprint(*piVar26,puVar18,*piVar13);\n                }" ({ "{") (expression_statement "(**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);" (call_expression "(**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9)" (parenthesized_expression "(**(code **)(pcVar30 + 0x758f4))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x758f4)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x758f4)" (* "*") (cast_expression "(code **)(pcVar30 + 0x758f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x758f4)" (( "(") (binary_expression "pcVar30 + 0x758f4" (identifier "pcVar30") (+ "+") (number_literal "0x758f4")) () ")"))))) () ")")) (argument_list "(iVar6 + 0x12ac,1,9)" (( "(") (binary_expression "iVar6 + 0x12ac" (identifier "iVar6") (+ "+") (number_literal "0x12ac")) (, ",") (number_literal "1") (, ",") (number_literal "9") () ")"))) (; ";")) (expression_statement "Sbitset__fprint(*piVar26,puVar18,*piVar13);" (call_expression "Sbitset__fprint(*piVar26,puVar18,*piVar13)" (identifier "Sbitset__fprint") (argument_list "(*piVar26,puVar18,*piVar13)" (( "(") (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (, ",") (identifier "puVar18") (, ",") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) () ")"))) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar30 + 0x75830))(10,*piVar13);" (call_expression "(**(code **)(pcVar30 + 0x75830))(10,*piVar13)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75830))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75830)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75830)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75830)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75830)" (( "(") (binary_expression "pcVar30 + 0x75830" (identifier "pcVar30") (+ "+") (number_literal "0x75830")) () ")"))))) () ")")) (argument_list "(10,*piVar13)" (( "(") (number_literal "10") (, ",") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) () ")"))) (; ";")) (goto_statement "goto LAB_000188d8;" (goto "goto") (statement_identifier "LAB_000188d8") (; ";")) (} "}"))) (expression_statement "FUN_00017fd0();" (call_expression "FUN_00017fd0()" (identifier "FUN_00017fd0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = 0x252;" (assignment_expression "iVar1 = 0x252" (identifier "iVar1") (= "=") (number_literal "0x252")) (; ";")) (expression_statement "pcVar31 = *(code **)(pcVar30 + 0x757e0);" (assignment_expression "pcVar31 = *(code **)(pcVar30 + 0x757e0)" (identifier "pcVar31") (= "=") (pointer_expression "*(code **)(pcVar30 + 0x757e0)" (* "*") (cast_expression "(code **)(pcVar30 + 0x757e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x757e0)" (( "(") (binary_expression "pcVar30 + 0x757e0" (identifier "pcVar30") (+ "+") (number_literal "0x757e0")) () ")"))))) (; ";")) (expression_statement "uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;" (assignment_expression "uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4" (identifier "uVar23") (= "=") (binary_expression "*(int *)(pcVar30 + 0x74fd8) + 0x11b4" (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")")))) (+ "+") (number_literal "0x11b4"))) (; ";")) (expression_statement "piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);" (assignment_expression "piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" (identifier "piStackY_1110") (= "=") (cast_expression "(int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar30 + 0x74fd8) + 0x1264)" (( "(") (binary_expression "*(int *)(pcVar30 + 0x74fd8) + 0x1264" (pointer_expression "*(int *)(pcVar30 + 0x74fd8)" (* "*") (cast_expression "(int *)(pcVar30 + 0x74fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar30 + 0x74fd8)" (( "(") (binary_expression "pcVar30 + 0x74fd8" (identifier "pcVar30") (+ "+") (number_literal "0x74fd8")) () ")")))) (+ "+") (number_literal "0x1264")) () ")")))) (; ";")) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" (( "(") (pointer_expression "*pcVar31" (* "*") (identifier "pcVar31")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar31 + 0x74da0))(iVar1);" (call_expression "(**(code **)(pcVar31 + 0x74da0))(iVar1)" (parenthesized_expression "(**(code **)(pcVar31 + 0x74da0))" (( "(") (pointer_expression "**(code **)(pcVar31 + 0x74da0)" (* "*") (pointer_expression "*(code **)(pcVar31 + 0x74da0)" (* "*") (cast_expression "(code **)(pcVar31 + 0x74da0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar31 + 0x74da0)" (( "(") (binary_expression "pcVar31 + 0x74da0" (identifier "pcVar31") (+ "+") (number_literal "0x74da0")) () ")"))))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (if_statement "if (piStackY_1110 == (int *)0x0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(piStackY_1110 == (int *)0x0)" (( "(") (binary_expression "piStackY_1110 == (int *)0x0" (identifier "piStackY_1110") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar25 = uVar23 + 7 >> 3;" (assignment_expression "uVar25 = uVar23 + 7 >> 3" (identifier "uVar25") (= "=") (binary_expression "uVar23 + 7 >> 3" (binary_expression "uVar23 + 7" (identifier "uVar23") (+ "+") (number_literal "7")) (>> ">>") (number_literal "3"))) (; ";")) (goto_statement "goto LAB_00018a68;" (goto "goto") (statement_identifier "LAB_00018a68") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);" (call_expression "(**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28)" (parenthesized_expression "(**(code **)(pcVar30 + 0x75818))" (( "(") (pointer_expression "**(code **)(pcVar30 + 0x75818)" (* "*") (pointer_expression "*(code **)(pcVar30 + 0x75818)" (* "*") (cast_expression "(code **)(pcVar30 + 0x75818)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar30 + 0x75818)" (( "(") (binary_expression "pcVar30 + 0x75818" (identifier "pcVar30") (+ "+") (number_literal "0x75818")) () ")"))))) () ")")) (argument_list "(*piVar13,1,iVar8 + 0x122c,uVar28)" (( "(") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (, ",") (number_literal "1") (, ",") (binary_expression "iVar8 + 0x122c" (identifier "iVar8") (+ "+") (number_literal "0x122c")) (, ",") (identifier "uVar28") () ")"))) (; ";")) (labeled_statement "LAB_000188d8:\n          iVar15 = piVar12[1];" (statement_identifier "LAB_000188d8") (: ":") (expression_statement "iVar15 = piVar12[1];" (assignment_expression "iVar15 = piVar12[1]" (identifier "iVar15") (= "=") (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 1" (identifier "piVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 < *(int *)(iVar15 + 0x14))" (( "(") (binary_expression "iVar24 < *(int *)(iVar15 + 0x14)" (identifier "iVar24") (< "<") (pointer_expression "*(int *)(iVar15 + 0x14)" (* "*") (cast_expression "(int *)(iVar15 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x14)" (( "(") (binary_expression "iVar15 + 0x14" (identifier "iVar15") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "piVar12 = (int *)*piVar12;" (assignment_expression "piVar12 = (int *)*piVar12" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (expression_statement "uStack_10d8 = uStack_10d8 + 1;" (assignment_expression "uStack_10d8 = uStack_10d8 + 1" (identifier "uStack_10d8") (= "=") (binary_expression "uStack_10d8 + 1" (identifier "uStack_10d8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (return_statement "return uStack_10d8;" (return "return") (identifier "uStack_10d8") (; ";")) (labeled_statement "LAB_00018a68:\n  iVar4 = piStackY_1110[1];" (statement_identifier "LAB_00018a68") (: ":") (expression_statement "iVar4 = piStackY_1110[1];" (assignment_expression "iVar4 = piStackY_1110[1]" (identifier "iVar4") (= "=") (subscript_expression "piStackY_1110[1]" (identifier "piStackY_1110") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (if_statement "if (0 < *(int *)(iVar4 + 0x14)) {\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar4 + 0x14))" (( "(") (binary_expression "0 < *(int *)(iVar4 + 0x14)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar4 + 0x14)" (* "*") (cast_expression "(int *)(iVar4 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    iVar5 = 0;\n    piVar12 = piStackY_1110 + 2;\n    do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));\n  }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar12 = piStackY_1110 + 2;" (assignment_expression "piVar12 = piStackY_1110 + 2" (identifier "piVar12") (= "=") (binary_expression "piStackY_1110 + 2" (identifier "piStackY_1110") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    } while (iVar5 < *(int *)(iVar4 + 0x14));" (do "do") (compound_statement "{\n      while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }\n      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);\n      pbVar11 = (byte *)*piVar12;\n      pbVar17 = pbVar11 + uVar25;\n      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);\n      if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }\nLAB_00018bb4:\n      iVar5 = iVar5 + 1;\n      iVar4 = piStackY_1110[1];\n      piVar12 = piVar12 + 1;\n    }" ({ "{") (while_statement "while (*piVar12 == 0) {\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }" (while "while") (parenthesized_expression "(*piVar12 == 0)" (( "(") (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = iVar5 + 1;\n        piVar12 = piVar12 + 1;\n        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;\n      }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x14) <= iVar5)" (( "(") (binary_expression "*(int *)(iVar4 + 0x14) <= iVar5" (pointer_expression "*(int *)(iVar4 + 0x14)" (* "*") (cast_expression "(int *)(iVar4 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (<= "<=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_00018bd0;" (goto "goto") (statement_identifier "LAB_00018bd0") (; ";"))) (} "}"))) (expression_statement "iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);" (assignment_expression "iVar4 = InadequacyList__getContributionToken(iVar4,iVar5)" (identifier "iVar4") (= "=") (call_expression "InadequacyList__getContributionToken(iVar4,iVar5)" (identifier "InadequacyList__getContributionToken") (argument_list "(iVar4,iVar5)" (( "(") (identifier "iVar4") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "pbVar11 = (byte *)*piVar12;" (assignment_expression "pbVar11 = (byte *)*piVar12" (identifier "pbVar11") (= "=") (cast_expression "(byte *)*piVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (expression_statement "pbVar17 = pbVar11 + uVar25;" (assignment_expression "pbVar17 = pbVar11 + uVar25" (identifier "pbVar17") (= "=") (binary_expression "pbVar11 + uVar25" (identifier "pbVar11") (+ "+") (identifier "uVar25"))) (; ";")) (expression_statement "uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);" (assignment_expression "uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" (* "*") (cast_expression "(uint *)(*(int *)(iVar4 + 0x28) + 0x80)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x28) + 0x80)" (( "(") (binary_expression "*(int *)(iVar4 + 0x28) + 0x80" (pointer_expression "*(int *)(iVar4 + 0x28)" (* "*") (cast_expression "(int *)(iVar4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x28)" (( "(") (binary_expression "iVar4 + 0x28" (identifier "iVar4") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if (pbVar11 < pbVar17) {\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }" (if "if") (parenthesized_expression "(pbVar11 < pbVar17)" (( "(") (binary_expression "pbVar11 < pbVar17" (identifier "pbVar11") (< "<") (identifier "pbVar17")) () ")")) (compound_statement "{\n        pbVar21 = pbVar11;\n        do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);\n      }" ({ "{") (expression_statement "pbVar21 = pbVar11;" (assignment_expression "pbVar21 = pbVar11" (identifier "pbVar21") (= "=") (identifier "pbVar11")) (; ";")) (do_statement "do {\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        } while (pbVar27 < pbVar17);" (do "do") (compound_statement "{\n          while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }\n          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;\n          if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;\n          while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }\n          pbVar17 = pbVar11 + uVar25;\n          pbVar21 = pbVar27;\n        }" ({ "{") (while_statement "while( true ) {\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar20 = (uint)*pbVar21;\n            pbVar27 = pbVar21 + 1;\n            if (uVar20 != 0) break;\nLAB_00018ae4:\n            pbVar21 = pbVar27;\n            if (pbVar17 <= pbVar27) goto LAB_00018bb4;\n          }" ({ "{") (expression_statement "uVar20 = (uint)*pbVar21;" (assignment_expression "uVar20 = (uint)*pbVar21" (identifier "uVar20") (= "=") (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21"))) (; ";")) (expression_statement "pbVar27 = pbVar21 + 1;" (assignment_expression "pbVar27 = pbVar21 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar20 != 0) break;" (if "if") (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00018ae4:\n            pbVar21 = pbVar27;" (statement_identifier "LAB_00018ae4") (: ":") (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" (identifier "pbVar21") (= "=") (identifier "pbVar27")) (; ";"))) (if_statement "if (pbVar17 <= pbVar27) goto LAB_00018bb4;" (if "if") (parenthesized_expression "(pbVar17 <= pbVar27)" (( "(") (binary_expression "pbVar17 <= pbVar27" (identifier "pbVar17") (<= "<=") (identifier "pbVar27")) () ")")) (goto_statement "goto LAB_00018bb4;" (goto "goto") (statement_identifier "LAB_00018bb4") (; ";"))) (} "}"))) (expression_statement "uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;" (assignment_expression "uVar22 = ((int)pbVar21 - (int)pbVar11) * 8" (identifier "uVar22") (= "=") (binary_expression "((int)pbVar21 - (int)pbVar11) * 8" (parenthesized_expression "((int)pbVar21 - (int)pbVar11)" (( "(") (binary_expression "(int)pbVar21 - (int)pbVar11" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11"))) () ")")) (* "*") (number_literal "8"))) (; ";")) (if_statement "if ((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;" (if "if") (parenthesized_expression "((uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)))" (( "(") (binary_expression "(uVar23 <= uVar22) ||\n             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))" (parenthesized_expression "(uVar23 <= uVar22)" (( "(") (binary_expression "uVar23 <= uVar22" (identifier "uVar23") (<= "<=") (identifier "uVar22")) () ")")) (|| "||") (parenthesized_expression "(pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))" (( "(") (binary_expression "pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" (identifier "pbVar27") (<= "<=") (binary_expression "pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" (identifier "pbVar11") (+ "+") (parenthesized_expression "((int)pbVar21 - (int)pbVar11 & 0x1fffffff)" (( "(") (binary_expression "(int)pbVar21 - (int)pbVar11 & 0x1fffffff" (binary_expression "(int)pbVar21 - (int)pbVar11" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (- "-") (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11"))) (& "&") (number_literal "0x1fffffff")) () ")")))) () ")"))) () ")")) (goto_statement "goto LAB_00018ae4;" (goto "goto") (statement_identifier "LAB_00018ae4") (; ";"))) (while_statement "while( true ) {\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar22 = uVar22 + 1;\n            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }\n            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;\n            uVar20 = (uint)*pbVar21;\n          }" ({ "{") (expression_statement "uVar22 = uVar22 + 1;" (assignment_expression "uVar22 = uVar22 + 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }" (if "if") (parenthesized_expression "(((int)uVar20 >> (-uVar22 & 7) & 1U) != 0)" (( "(") (binary_expression "((int)uVar20 >> (-uVar22 & 7) & 1U) != 0" (parenthesized_expression "((int)uVar20 >> (-uVar22 & 7) & 1U)" (( "(") (binary_expression "(int)uVar20 >> (-uVar22 & 7) & 1U" (binary_expression "(int)uVar20 >> (-uVar22 & 7)" (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20")) (>> ">>") (parenthesized_expression "(-uVar22 & 7)" (( "(") (binary_expression "-uVar22 & 7" (unary_expression "-uVar22" (- "-") (identifier "uVar22")) (& "&") (number_literal "7")) () ")"))) (& "&") (number_literal "1U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);\n              uVar20 = (uVar2 >> 5) - puVar10[1];\n              if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }\n            }" ({ "{") (expression_statement "puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);" (assignment_expression "puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4)" (identifier "puVar10") (= "=") (pointer_expression "*(undefined4 **)(iVar1 + uVar22 * 4 + -4)" (* "*") (cast_expression "(undefined4 **)(iVar1 + uVar22 * 4 + -4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + uVar22 * 4 + -4)" (( "(") (binary_expression "iVar1 + uVar22 * 4 + -4" (binary_expression "iVar1 + uVar22 * 4" (identifier "iVar1") (+ "+") (binary_expression "uVar22 * 4" (identifier "uVar22") (* "*") (number_literal "4"))) (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (expression_statement "uVar20 = (uVar2 >> 5) - puVar10[1];" (assignment_expression "uVar20 = (uVar2 >> 5) - puVar10[1]" (identifier "uVar20") (= "=") (binary_expression "(uVar2 >> 5) - puVar10[1]" (parenthesized_expression "(uVar2 >> 5)" (( "(") (binary_expression "uVar2 >> 5" (identifier "uVar2") (>> ">>") (number_literal "5")) () ")")) (- "-") (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (uVar20 < (uint)puVar10[2]) {\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }\n              else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" (if "if") (parenthesized_expression "(uVar20 < (uint)puVar10[2])" (( "(") (binary_expression "uVar20 < (uint)puVar10[2]" (identifier "uVar20") (< "<") (cast_expression "(uint)puVar10[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);\n                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);\n              }" ({ "{") (expression_statement "puVar18 = (uint *)(puVar10[3] + uVar20 * 4);" (assignment_expression "puVar18 = (uint *)(puVar10[3] + uVar20 * 4)" (identifier "puVar18") (= "=") (cast_expression "(uint *)(puVar10[3] + uVar20 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10[3] + uVar20 * 4)" (( "(") (binary_expression "puVar10[3] + uVar20 * 4" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "uVar20 * 4" (identifier "uVar20") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);" (assignment_expression "*puVar18 = *puVar18 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (binary_expression "*puVar18 | 1 << (uVar2 & 0x1f)" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (| "|") (binary_expression "1 << (uVar2 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar2 & 0x1f)" (( "(") (binary_expression "uVar2 & 0x1f" (identifier "uVar2") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" (else "else") (compound_statement "{\n                (**(code **)*puVar10)(puVar10,uVar2);\n                pbVar11 = (byte *)*piVar12;\n              }" ({ "{") (expression_statement "(**(code **)*puVar10)(puVar10,uVar2);" (call_expression "(**(code **)*puVar10)(puVar10,uVar2)" (parenthesized_expression "(**(code **)*puVar10)" (( "(") (pointer_expression "**(code **)*puVar10" (* "*") (pointer_expression "*(code **)*puVar10" (* "*") (cast_expression "(code **)*puVar10" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))))) () ")")) (argument_list "(puVar10,uVar2)" (( "(") (identifier "puVar10") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "pbVar11 = (byte *)*piVar12;" (assignment_expression "pbVar11 = (byte *)*piVar12" (identifier "pbVar11") (= "=") (cast_expression "(byte *)*piVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;" (if "if") (parenthesized_expression "((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3)))" (( "(") (binary_expression "(uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))" (parenthesized_expression "(uVar23 == uVar22)" (( "(") (binary_expression "uVar23 == uVar22" (identifier "uVar23") (== "==") (identifier "uVar22")) () ")")) (|| "||") (parenthesized_expression "(pbVar27 <= pbVar11 + (uVar22 >> 3))" (( "(") (binary_expression "pbVar27 <= pbVar11 + (uVar22 >> 3)" (identifier "pbVar27") (<= "<=") (binary_expression "pbVar11 + (uVar22 >> 3)" (identifier "pbVar11") (+ "+") (parenthesized_expression "(uVar22 >> 3)" (( "(") (binary_expression "uVar22 >> 3" (identifier "uVar22") (>> ">>") (number_literal "3")) () ")")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar20 = (uint)*pbVar21;" (assignment_expression "uVar20 = (uint)*pbVar21" (identifier "uVar20") (= "=") (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21"))) (; ";")) (} "}"))) (expression_statement "pbVar17 = pbVar11 + uVar25;" (assignment_expression "pbVar17 = pbVar11 + uVar25" (identifier "pbVar17") (= "=") (binary_expression "pbVar11 + uVar25" (identifier "pbVar11") (+ "+") (identifier "uVar25"))) (; ";")) (expression_statement "pbVar21 = pbVar27;" (assignment_expression "pbVar21 = pbVar27" (identifier "pbVar21") (= "=") (identifier "pbVar27")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar27 < pbVar17)" (( "(") (binary_expression "pbVar27 < pbVar17" (identifier "pbVar27") (< "<") (identifier "pbVar17")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00018bb4:\n      iVar5 = iVar5 + 1;" (statement_identifier "LAB_00018bb4") (: ":") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar4 = piStackY_1110[1];" (assignment_expression "iVar4 = piStackY_1110[1]" (identifier "iVar4") (= "=") (subscript_expression "piStackY_1110[1]" (identifier "piStackY_1110") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < *(int *)(iVar4 + 0x14))" (( "(") (binary_expression "iVar5 < *(int *)(iVar4 + 0x14)" (identifier "iVar5") (< "<") (pointer_expression "*(int *)(iVar4 + 0x14)" (* "*") (cast_expression "(int *)(iVar4 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00018bd0:\n  piStackY_1110 = (int *)*piStackY_1110;" (statement_identifier "LAB_00018bd0") (: ":") (expression_statement "piStackY_1110 = (int *)*piStackY_1110;" (assignment_expression "piStackY_1110 = (int *)*piStackY_1110" (identifier "piStackY_1110") (= "=") (cast_expression "(int *)*piStackY_1110" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piStackY_1110" (* "*") (identifier "piStackY_1110")))) (; ";"))) (if_statement "if (piStackY_1110 == (int *)0x0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(piStackY_1110 == (int *)0x0)" (( "(") (binary_expression "piStackY_1110 == (int *)0x0" (identifier "piStackY_1110") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_00018a68;" (goto "goto") (statement_identifier "LAB_00018a68") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal)) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier))))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) 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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (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: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (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: (pointer_expression argument: (identifier)) right: (binary_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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (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 (subscript_expression argument: (identifier) index: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (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: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal)))) (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (identifier) (identifier))))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))))) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) condition: (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: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_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))))))) (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)) value: (parenthesized_expression (binary_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)) value: (parenthesized_expression (binary_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)) value: (parenthesized_expression (binary_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)) value: (parenthesized_expression (binary_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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (identifier) (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) consequence: (compound_statement (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (identifier) (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (number_literal)) right: (number_literal))))) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_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: (number_literal)) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (pointer_expression argument: (identifier)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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: (type_identifier) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (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 (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (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))))) condition: (parenthesized_expression (binary_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: (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (return_statement (identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) body: (compound_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: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_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: (identifier) right: (number_literal)))))))))) (labeled_statement label: (statement_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 (return_statement (number_literal)))) (goto_statement label: (statement_identifier)))))

uint MASKED(undefined4 *param_1,uint param_2,uint *param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  uint *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  undefined1 *puVar9;
  undefined4 *puVar10;
  byte *pbVar11;
  int *piVar12;
  int *piVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  byte *pbVar17;
  uint *puVar18;
  uint *puVar19;
  undefined4 unaff_s0;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  int *unaff_s1;
  uint uVar23;
  int iVar24;
  undefined4 unaff_s2;
  uint uVar25;
  int *piVar26;
  byte *pbVar27;
  undefined4 uVar28;
  undefined *puVar29;
  code *pcVar30;
  code *pcVar31;
  int *piStackY_1110;
  uint uStack_10d8;
  uint auStack_1078 [1024];
  undefined4 uStack_78;
  uint uStack_74;
  uint uStack_70;
  int *piStack_6c;
  undefined4 uStack_2c;
  
  if ((int)param_3 < *(int *)(param_1[1] + 0x14)) {
    if (param_1[(int)param_3 + 2] == 0) {
      return 1;
    }
    if (param_4 != 0) {
      iVar1 = InadequacyList__getContributionToken(param_1[1],param_3);
      pbVar17 = (byte *)param_1[(int)param_3 + 2];
      uVar25 = param_2 + 7 >> 3;
      pbVar11 = pbVar17 + uVar25;
      uVar23 = *(uint *)(*(int *)(iVar1 + 0x28) + 0x80);
      if (pbVar17 < pbVar11) {
        pbVar21 = pbVar17;
        do {
          while( true ) {
            uVar2 = (uint)*pbVar21;
            pbVar27 = pbVar21 + 1;
            if (uVar2 != 0) break;
LAB_000182bc:
            pbVar21 = pbVar27;
            if (pbVar11 <= pbVar27) {
              return 0;
            }
          }
          uVar20 = ((int)pbVar21 - (int)pbVar17) * 8;
          if ((param_2 <= uVar20) ||
             (pbVar27 <= pbVar17 + ((int)pbVar21 - (int)pbVar17 & 0x1fffffff))) goto LAB_000182bc;
          while( true ) {
            uVar20 = uVar20 + 1;
            if ((((int)uVar2 >> (-uVar20 & 7) & 1U) != 0) &&
               (piVar12 = *(int **)(param_4 + uVar20 * 4 + -4), piVar12 != (int *)0x0)) {
              uVar2 = (uVar23 >> 5) - piVar12[1];
              if (uVar2 < (uint)piVar12[2]) {
                uVar2 = *(uint *)(piVar12[3] + uVar2 * 4) >> (uVar23 & 0x1f) & 1;
              }
              else {
                uVar2 = (**(code **)(*piVar12 + 0xc))(piVar12,uVar23);
              }
              if (uVar2 != 0) {
                return 1;
              }
              pbVar17 = (byte *)param_1[(int)param_3 + 2];
            }
            if ((param_2 == uVar20) || (pbVar27 <= pbVar17 + (uVar20 >> 3))) break;
            uVar2 = (uint)*pbVar21;
          }
          pbVar11 = pbVar17 + uVar25;
          pbVar21 = pbVar27;
        } while (pbVar27 < pbVar11);
      }
    }
    return 0;
  }
  puVar29 = PTR_0008d624 + 0x7fd0;
  FUN_00017fd0();
  piVar12 = *(int **)(puVar29 + 0x75b74);
  piStack_6c = (int *)*piVar12;
  puVar19 = param_3;
  iVar1 = map_goto(*param_1,*(undefined4 *)(param_2 + 0x80));
  piVar13 = *(int **)(&_gp_1 + iVar1 * 4);
  puVar18 = (uint *)piVar13[2];
  puVar3 = (uint *)(((uint)param_3 >> 5) - piVar13[1]);
  if (puVar3 < puVar18) {
    uVar23 = *(uint *)(piVar13[3] + (int)puVar3 * 4) >> ((uint)param_3 & 0x1f) & 1;
  }
  else {
    puVar18 = param_3;
    uVar23 = (**(code **)(*piVar13 + 0xc))();
  }
  if (uVar23 == 0) {
    iVar4 = Sbitset__new_on_obstack(param_1[9],unaff_s2);
    *unaff_s1 = iVar4;
    uStack_78 = 0;
    uStack_74 = 0x400;
    do {
      puVar19 = (uint *)0x400;
      piVar13 = *(int **)(param_4 + iVar1 * 4);
      puVar18 = auStack_1078;
      uStack_74 = (**(code **)(*piVar13 + 0x74))(piVar13,auStack_1078,0x400,&uStack_78);
      if (uStack_74 == 0) break;
      uStack_70 = 0;
      do {
        puVar18 = (uint *)0x0;
        puVar3 = (uint *)auStack_1078[uStack_70];
        puVar19 = puVar3;
        iVar4 = ielr_item_has_lookahead(param_1,0,puVar3,param_3,uStack_2c,unaff_s0);
        if (iVar4 != 0) {
          pbVar11 = (byte *)(*unaff_s1 + ((uint)puVar3 >> 3));
          *pbVar11 = (byte)(1 << (~(uint)puVar3 & 7)) | *pbVar11;
        }
        uStack_70 = uStack_70 + 1;
      } while (uStack_70 < uStack_74);
    } while (uStack_74 == 0x400);
  }
  if (piStack_6c == (int *)*piVar12) {
    return uVar23;
  }
  pcVar30 = *(code **)(puVar29 + 0x75b50);
  piVar12 = piStack_6c;
  uStack_10d8 = (*pcVar30)();
  if (piVar12 != (int *)0x0) {
    iVar1 = *(int *)(pcVar30 + 0x74fd8);
    piVar13 = *(int **)(pcVar30 + 0x75964);
    uStack_10d8 = 0;
    iVar4 = *(int *)(pcVar30 + 0x74fd8);
    iVar5 = *(int *)(pcVar30 + 0x74fd8);
    iVar6 = *(int *)(pcVar30 + 0x74fd8);
    iVar7 = *(int *)(pcVar30 + 0x74fd8);
    iVar8 = *(int *)(pcVar30 + 0x74fd8);
    do {
      if (0 < (int)puVar19) {
        puVar3 = (uint *)0x0;
        do {
          iVar14 = *piVar13;
          puVar9 = *(undefined1 **)(iVar14 + 0x14);
          if (puVar9 < *(undefined1 **)(iVar14 + 0x18)) {
            *(undefined1 **)(iVar14 + 0x14) = puVar9 + 1;
            *puVar9 = 0x20;
          }
          else {
            (**(code **)(pcVar30 + 0x75834))(iVar14,0x20);
          }
          puVar3 = (uint *)((int)puVar3 + 1);
        } while (puVar19 != puVar3);
      }
      (**(code **)(pcVar30 + 0x75818))
                (*piVar13,1,iVar4 + 0x1204,uStack_10d8,**(undefined4 **)(piVar12[1] + 0x10));
      iVar14 = (**(code **)(pcVar30 + 0x7510c))(*(undefined4 *)(piVar12[1] + 0x1c));
      iVar15 = piVar12[1];
      if (0 < *(int *)(iVar15 + 0x14)) {
        piVar26 = piVar12 + 2;
        iVar24 = 0;
        do {
          iVar15 = InadequacyList__getContributionToken(iVar15,iVar24);
          uVar28 = *(undefined4 *)(*(int *)(iVar15 + 0x28) + 0x80);
          if (-2 < (int)puVar19) {
            iVar15 = 0;
            do {
              iVar16 = *piVar13;
              puVar9 = *(undefined1 **)(iVar16 + 0x14);
              if (puVar9 < *(undefined1 **)(iVar16 + 0x18)) {
                *(undefined1 **)(iVar16 + 0x14) = puVar9 + 1;
                *puVar9 = 0x20;
              }
              else {
                (**(code **)(pcVar30 + 0x75834))(iVar16,0x20);
              }
              iVar15 = iVar15 + 1;
            } while (iVar15 != (int)puVar19 + 2U);
          }
          iVar15 = InadequacyList__getShiftContributionIndex(piVar12[1]);
          if (iVar15 != iVar24) {
            (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar1 + 0x124c,uVar28);
            if (iVar14 != -1) {
              (**(code **)(pcVar30 + 0x75818))
                        (*piVar13,1,iVar5 + 0x1280,
                         *(undefined4 *)
                          (*(int *)(*(int *)(*(int *)(piVar12[1] + 0x10) + 0xc) + (iVar14 + 2) * 4)
                          + 4));
              iVar14 = (**(code **)(pcVar30 + 0x75114))
                                 (*(undefined4 *)(piVar12[1] + 0x1c),iVar14 + 1);
              if (iVar24 < *(int *)(piVar12[1] + 0x14)) {
                if (*piVar26 == 0) {
                  (**(code **)(pcVar30 + 0x758f4))(iVar7 + 0x12a0,1,8,*piVar13);
                }
                else {
                  (**(code **)(pcVar30 + 0x758f4))(iVar6 + 0x12ac,1,9);
                  Sbitset__fprint(*piVar26,puVar18,*piVar13);
                }
                (**(code **)(pcVar30 + 0x75830))(10,*piVar13);
                goto LAB_000188d8;
              }
              FUN_00017fd0();
            }
            iVar1 = 0x252;
            pcVar31 = *(code **)(pcVar30 + 0x757e0);
            uVar23 = *(int *)(pcVar30 + 0x74fd8) + 0x11b4;
            piStackY_1110 = (int *)(*(int *)(pcVar30 + 0x74fd8) + 0x1264);
            (*pcVar31)();
            (**(code **)(pcVar31 + 0x74da0))(iVar1);
            if (piStackY_1110 == (int *)0x0) {
              return 0;
            }
            uVar25 = uVar23 + 7 >> 3;
            goto LAB_00018a68;
          }
          (**(code **)(pcVar30 + 0x75818))(*piVar13,1,iVar8 + 0x122c,uVar28);
LAB_000188d8:
          iVar15 = piVar12[1];
          iVar24 = iVar24 + 1;
          piVar26 = piVar26 + 1;
        } while (iVar24 < *(int *)(iVar15 + 0x14));
      }
      piVar12 = (int *)*piVar12;
      uStack_10d8 = uStack_10d8 + 1;
    } while (piVar12 != (int *)0x0);
  }
  return uStack_10d8;
LAB_00018a68:
  iVar4 = piStackY_1110[1];
  if (0 < *(int *)(iVar4 + 0x14)) {
    iVar5 = 0;
    piVar12 = piStackY_1110 + 2;
    do {
      while (*piVar12 == 0) {
        iVar5 = iVar5 + 1;
        piVar12 = piVar12 + 1;
        if (*(int *)(iVar4 + 0x14) <= iVar5) goto LAB_00018bd0;
      }
      iVar4 = InadequacyList__getContributionToken(iVar4,iVar5);
      pbVar11 = (byte *)*piVar12;
      pbVar17 = pbVar11 + uVar25;
      uVar2 = *(uint *)(*(int *)(iVar4 + 0x28) + 0x80);
      if (pbVar11 < pbVar17) {
        pbVar21 = pbVar11;
        do {
          while( true ) {
            uVar20 = (uint)*pbVar21;
            pbVar27 = pbVar21 + 1;
            if (uVar20 != 0) break;
LAB_00018ae4:
            pbVar21 = pbVar27;
            if (pbVar17 <= pbVar27) goto LAB_00018bb4;
          }
          uVar22 = ((int)pbVar21 - (int)pbVar11) * 8;
          if ((uVar23 <= uVar22) ||
             (pbVar27 <= pbVar11 + ((int)pbVar21 - (int)pbVar11 & 0x1fffffff))) goto LAB_00018ae4;
          while( true ) {
            uVar22 = uVar22 + 1;
            if (((int)uVar20 >> (-uVar22 & 7) & 1U) != 0) {
              puVar10 = *(undefined4 **)(iVar1 + uVar22 * 4 + -4);
              uVar20 = (uVar2 >> 5) - puVar10[1];
              if (uVar20 < (uint)puVar10[2]) {
                puVar18 = (uint *)(puVar10[3] + uVar20 * 4);
                *puVar18 = *puVar18 | 1 << (uVar2 & 0x1f);
              }
              else {
                (**(code **)*puVar10)(puVar10,uVar2);
                pbVar11 = (byte *)*piVar12;
              }
            }
            if ((uVar23 == uVar22) || (pbVar27 <= pbVar11 + (uVar22 >> 3))) break;
            uVar20 = (uint)*pbVar21;
          }
          pbVar17 = pbVar11 + uVar25;
          pbVar21 = pbVar27;
        } while (pbVar27 < pbVar17);
      }
LAB_00018bb4:
      iVar5 = iVar5 + 1;
      iVar4 = piStackY_1110[1];
      piVar12 = piVar12 + 1;
    } while (iVar5 < *(int *)(iVar4 + 0x14));
  }
LAB_00018bd0:
  piStackY_1110 = (int *)*piStackY_1110;
  if (piStackY_1110 == (int *)0x0) {
    return 0;
  }
  goto LAB_00018a68;
}

